WHMCS正在被{php}和Eval base64代码通过票据进行黑客攻击

WHMCS正在被{php}和Eval base64代码通过票据进行黑客攻击,php,apache,smarty,whmcs,mod-security2,Php,Apache,Smarty,Whmcs,Mod Security2,WHMCS使用Smarty作为模板系统,尽管它是一个伟大的模板系统,但它有一个缺陷,{php}标记。这些标记允许smarty直接在模板中解释PHP代码,或者在本例中,在创建新票证时通过票证系统解释PHP代码。这种黑客行为在WHMCS系统中经常发生,您可以尝试通过配置中的block text选项来阻止WHMCS中的代码。但大多数情况下,这是行不通的 发生的情况是WHMCS接受了票据,黑客在票据消息中添加了以下内容: {php}eval(base64_decode(encoded message))

WHMCS使用Smarty作为模板系统,尽管它是一个伟大的模板系统,但它有一个缺陷,
{php}
标记。这些标记允许smarty直接在模板中解释PHP代码,或者在本例中,在创建新票证时通过票证系统解释PHP代码。这种黑客行为在WHMCS系统中经常发生,您可以尝试通过配置中的block text选项来阻止WHMCS中的代码。但大多数情况下,这是行不通的

发生的情况是WHMCS接受了票据,黑客在票据消息中添加了以下内容:

{php}eval(base64_decode(encoded message));{\php}
因此smarty看到了
{php}
部分,并立即让php运行该命令。因此,它首先解码用base64编码的PHP。这将引出黑客试图运行的一些PHP函数/脚本

然后eval接管并实际评估PHP代码,并在服务器端运行它

很多黑客都是这样做的,他们运行他们知道可以在WHMC中工作的代码,然后获取数据库信息并将其回送到文件中。然后,他们只需通过浏览器URL获取此文件,并获取所需信息


这只适用于一些WHMCS安装,尽管WHMCS说最新版本不允许这样做,并且Smarty中禁用了{php},但有时黑客确实找到了绕过这一点的方法,并
eval
他们的代码。

这实际上是一个使用mod_security修复的非常简单的黑客攻击。首先,找到您的mod_security配置文件的位置,这一切都取决于您安装的mod_security和操作系统,但它通常被称为
modsec.conf
modsec2.conf
,有时是
security.conf
,但很少

您可以在大多数linux系统上使用
locate
命令(如果已安装)找到它

sudo updatedb
locate modsec.conf
or
locate modsec2.conf
如果您没有
定位
,则需要转到
/
目录并运行
查找
,这将需要一些时间,但有时面板会将其安装在奇怪的地方,而不仅仅是
/etc

cd /
find . -type f -iname 'modsec*.conf'
任何一种方法都可以找到配置文件。找到后,使用您最喜爱的编辑器编辑文件,并转到最底部添加以下内容:

SecRuleEngine On    
SecRule ARGS {php} "severity:4,log,deny"
SecRule ARGS eval "severity:4,log,deny"
SecRule ARGS base64_decode "severity:4,log,deny"
基本上是告诉它在
GET
POST
中过滤参数。就这样,现在重新启动apache:

CentOS:
service httpd restart

Ubuntu:
service apache2 restart
现在,您可能会认为这会阻止您在脚本中使用这些命令,而不是所有命令。这只会阻止这些单词通过
GET
POST
发送。如果有人尝试,他们会得到一个
不可接受的
错误,而且根本不起作用

这样,您就不必从防火墙或WHMC和潜在客户处屏蔽大量IP。

,默认情况下,它应该是关闭的

如果WHMCS要求使用
{php}
标记,那么他们[尽可能礼貌地说]非常迟钝,应该不再从事计费或任何其他软件的业务

编辑:是的。“嘿,看!我们为你打开了这个超级巨大的安全漏洞!”


您可能希望通过grep浏览模板文件来查找这些
{php}
标记的任何用法,因为它将指示您将通过堵塞这个安全漏洞而丢失的任何功能。

正确,正如我在下面所述,您可以这样做,但有时它不起作用,评估仍然可以通过。我知道这是一个事实,因为我们使用的是WHMC,我们已经关闭了很长时间,仍然在通过它获得一些票。没有以前那么多了,但还是挺过来了。最好的办法是使用modsec完全阻止它,这样它就永远不会到达PHP解释器。这是阻止它的最安全的方法。