SSI全称(Server Side Includes),是在HTML静态页面中使用的指令,当页面在服务器端执行的时候可以进行服务端解析的。
这种方式可以让我们在存在的HTML页面里面动态的生成内容,而不是在整个执行了CGI等服务器端技术的接触上进行动态页面服务。在返回请求的页面(包含SSI指令),服务器会处理这些指令,并用处理的结果替换指令,然后把页面返回。
包含文件
利用条件当网站上传为黑名单时,并且支持SSI解析:
asp
cer
cdx
htr
等文件时, 上传一个shtml
文件, 内容为:
<!--#include file="conn.asp"-->
直接请求这个shtml
文件, conn.asp
就一览无遗, 数据库路径也就到手啦!
我在本地试验成功!在我的iis目录下建了一个test.stm
文件,内容为:
<!--#include file="ok.asp"-->
又在同一目录下放了一个我的一个木马文件ok.asp
,在浏览器中请求test.stm
,没有什么反映,一片空白。
但是一查看源代码,恢复其中为asp
文件的内容!
这样我们就可以利用这个来获取要入侵的站点的conn
文件来获得数据库路径,
但是一个前提是服务器的对stm
或者shtml
shtm
的扩展没有删除。
这里包含的是当前的目录 有点鸡肋 但是路径其实也可以跳跃从而去包含其他子目录中的文件。
官方:file
包含文件可以在同一级目录或其子目录中,但不能在上一级目录中,virtual
包含文件可以是Web
站点上的虚拟目录的完整路径 。
利用:其实我们这边还可以上层目录 比如./../../conn.asp
这个作用就很大了 我们可以尝试去包含数据库的账号和密码 这样能够帮我们getshell的几率增大 数据库外链的话 利用率更能增大