欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > SSI的介绍及语法

SSI的介绍及语法

2024/10/24 12:25:16 来源:https://blog.csdn.net/weixin_39762423/article/details/141166759  浏览:    关键词:SSI的介绍及语法

目录

  • 1. 介绍
  • 2. 配置使用
    • 2.1 启用SSI
    • 2.2 SSI语法
  • 3. SSI注入


1. 介绍


SSI:Server Side Includes,服务器端包含。

SSI是前乳HTML页面中的指令,在页面被提供时,由服务器进行运算,以对现有html页面增加动态生成的内容,而无需通过CGI程序提供整个页面,或者使用其他动态技术。

从技术角度上,SSI就是在HTML文件中,可以通过注释行调用的命令或指针,即允许通过在HTML页面注入脚本或者远程执行任意代码。



2. 配置使用


2.1 启用SSI


  1. apache

    默认apache不开启SSI,SSI这种技术很少使用了。如果应用中没有用到SSI,关闭服务器对SSI的支持就可以。

  2. IIS

    IIS也可以开启SSI功能。

  3. Nginx

    在http段加入下面内容:

    ssi on;
    ssi_silent_errors off;
    ssi_types text/shtml;
    


2.2 SSI语法


SHTML文件:

在SHTML文件中使用SSI指令(#incldue)引用其他的HTML文件,此时服务器会将SHTML中包含的SSI指令解释,再传送给客户端。此时的HTML中就不再含有SSI指令了。

  1. <#echo>:显示服务器端环境变量
    1. 本文档名称:<!--#echo var="DOCUMENT_NAME"-->
    2. 现在时间:<!--#echo var="DATE_LOCAL"-->
    3. 显示IP地址:<! #echo var="REMOTE_ADDR"-->
  2. <#include>:将文本内容直接插入到文档中
    1. file包含文件:<!--#include file="文件名称"-->
    2. virtual包含文件:<!--#include virtual="文件名称”-->
    3. file包含文件可以再同一级目录或者其子目录中,但是不能在上一级目录中;virtual包含文件可以是web站点上的虚拟目录的完整路径。
  3. 显示web文档相关信息
    1. 文件最近更新日期:<!--#flastmod file="文件名称"-->
    2. 文件的长度:<!--#fsize file="文件名称"–--
  4. <#exec>:直接执行服务器上的各种程序
    1. 其他可执行程序:<!--#exec cmd="cat /etc/passd"-->
    2. CGI:<!--#exec cgi="/cgi-bin/access_log.cgi"-->
    3. 将某一个外部程序的输出插入到页面中,可以插入CGI程序或者是常规应用程序的输入,这取决于参数是cmd还是cgi。



3. SSI注入


SSI注入的条件:

  1. web服务器支持SSI。
  2. web应用程序未对相关SSI关键字做过滤。
  3. web应用程序在返回响应的HTML页面时,嵌入用户输入。

漏洞场景:

在很多业务中,用户输入的内容会展示在页面中。

比如:一个存在反射型XSS漏洞的页面,如果输入的payload不是xss代码,而是SSI的标签,同事服务器又开启了对SSI的支持的话,就会存在SSI漏洞。



版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com