1、基本情况
ThinkPHP5.1至5.2全版本存在远程代码执行漏洞。攻击者利用该漏洞,可在未经授权的情况下,对目标网站进行远程命令执行攻击。
2、攻击原理
该漏洞主要出现在ThinkPHP Request类的method方法中 (thinkphp/library/think/Request.php)。
通过以下代码:
$this->method = strtoupper($_POST[$this->config['var_method']]);
$method = strtolower($this->method);
$this->{$method} = $_POST;
覆盖覆盖$filter属性值。从而可以构造一个Payload:
c=system&f=whoami&_method=filter
此时会爆出一个警告级别的异常,导致程序终止。在public/index.php文件中跳过报错提示,可导致命令执行。
3、影响范围
ThinkPHP 5.1至 5.2全版本。
4、处置建议
1) 请关注ThinkPHP厂商版本更新,及时修复。
5、参考链接
1) http://www.thinkphp.cn