在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用<!--#exec cmd="id" -->语法执行任意命令。
参考链接:
https://httpd.apache.org/docs/2.4/howto/ssi.html
https://www.w3.org/Jigsaw/Doc/User/SSI.html
漏洞环境
运行一个支持SSI与CGI的Apache服务器:
漏洞复现
正常上传PHP文件是不允许的,我们可以上传一个shell.shtml文件:
shell.shtml内容如下:
<!--#exec cmd="ls & pwd" -->