WHMCS 使用 Smarty 作为它的模板系统,虽然一个很棒的模板系统它有一个缺陷,即{php}
标签。这些标签允许 smarty 直接在模板中解释 PHP 代码,或者在这种情况下,在创建新工单时通过工单系统解释。这种 hack 一直发生在 WHMCS 系统中,您可以尝试通过配置中的阻止文本选项来阻止 WHMCS 中的代码。但大多数时候这不起作用。
发生的情况是 WHMCS 接受了票,并且黑客在票消息中添加了以下内容:
{php}eval(base64_decode(encoded message));{\php}
如此聪明的人看到了这个{php}
部分,立即让 PHP 运行该命令。所以它首先对base64编码的PHP进行解码。这将带出一些黑客试图运行的 PHP 函数/脚本。
然后 eval 接管并实际评估 PHP 代码并在服务器端运行它。
许多黑客采用这种方式,他们运行他们知道可以在 WHMCS 中运行的代码,然后获取数据库信息并将其回显到文件中。然后他们只是通过浏览器 URL 抓取这个文件并获得他们想要的信息。
这仅适用于某些 WHMCS 安装,尽管 WHMCS 表示最新版本不允许这样做,并且在 Smarty 中禁用了 {php},有时黑客确实会找到一种方法来绕过它和eval
他们的代码。