Apache SSI 远程命令执行漏洞复现
Apache SSI 远程命令执行漏洞复现
一、漏洞描述
当目标服务器开启了SSI与CGI支持,我们就可以上传shtml,利用<!--#exec cmd=”id” -->语法执行命令。
使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为"服务器端嵌入"或者叫"服务器端包含",是一种类似于ASP的基于服务器的网页制作技术。默认扩展名是 .stm、.shtm 和 .shtml。
二、漏洞环境搭建与复现
1、使用docker搭建漏洞环境,启动环境
docker-compose build
docker-compose up -d
2、浏览器访问http://172.17.0.1:8080/upload.php,即可看到一个上传表单。
3、上传一个php文件,提示不支持的上传的类型
4、上传一个shell.shtml文件
<!--#exec cmd="id" -->
5、浏览器访问上传的文件,下图可以看到成功执行代码,说明存在远程命令执行漏洞