漏洞原理
目标服务器开启了SSI与CGI支持,我们就可以上传shtml,利用<!--#exec cmd=”id” -->语法执行命令。
使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。
漏洞复现
1、docker内漏洞位置 httpd/ssi-rce
执行命令docker-compose up -d拉取镜像
打开本地地址8080端口upload.php
2、写入<!--#exec cmd="ls" -->并保存成shell.shtml文件
3、将文件上传并访问
文件上传成功。
复现完成后记得关闭镜像,防止端口占用问题