漏洞原理
shtml不是html而是一种服务器API,shtml是服务器动态产生的html。两者都是超文本格式,但shtml是一种用于SSI(Servcie Side Include ,服务器端包含指令)技术的文件,一般浏览器访问时会优先扫描依次shtml文件看有没有SSI指令存在,按服务器设定的规则去解释SSI指令,然后跟html一起被渲染。当shtml或shtm中不包含服务端可执行脚本时作用和html一样。在测试任意文件上传漏洞的时候,如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用`<!–#exec cmd=”id” –>`语法执行任意命令。
漏洞复现
(1)搭建漏洞环境
① cd /home/test/vulhub/httpd/ssi-rce
② Vi docker-compose.yml 将其中默认的8080端口改成一个没用过的端口
③ Docker-compose up -d 启动环境
(2)访问该页面并上传一个.php文件,报错
(3)上传一个.shtml文件,内容为<!--#exec cmd="date" -->,上传成功
标签:shtml,漏洞,html,SSI,复现,Apache,服务器,上传 From: https://www.cnblogs.com/koitoYuu/p/17135282.html