0x00:介绍
SSI 是 Server Side Includes 的缩写,即服务端包含。我们都知道像后台语言 php、asp 等都有文件包含的函数 include,包含一些公共的函数库等。那么 html 也有这种包含的机制,我们可以把它叫做 SSI。SSI 还有一些使用情况例如,页面需要动态加入一些内容,这些内容常见的比如自己的 ip 地址,自己的位置信息等。SSI 默认的文件类型是 shtml,很多网站都是 shtml 网页,则可能启用了 SSI 功能,实现了 shtml 文件的包含。只不过这个技术好像并不常用。
0x01:开启 SSI
基本中间件对于 SSI 都是默认关闭的,如果网站有需求要用到 SSI 并开启后,那么我们便可以测试一下 SSI 注入。首先,先了解一下 SSI 开启的方法,以 Apache 为例,因为 SSI 在 Apache 中是以模块方式存在的,所以需要打开这个模块,打开 http.conf 配置文件,找到 LoadModule ssl_module 这一行去掉注释进行打开。
因为 SSI 主要用来包含 shtml 文件,所以同时也需要配置一下 SSI 支持的类型,找到 AddType text/html 这一行和 AddOutputFilter INCLUDES 这一行,去掉注释进行打开。
完事之后,最后再配置一下 Apache 下项目的 INCLUDE 包含权限,找到 Option +Indexes +FollowSymLinks 这一行,最后加个 + INCLUDES 即可(需重启)。