SSI 注入全称Server-Side Includes Injection,即服务端包含注入。SSI 是类似于 CGI,用于动态页面的指令。SSI 注入允许远程在 Web 应用中注入脚本来执行代码。

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

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

1.1 启用SSI

**示例:Nginx 配置SSI功能**

在http段中加入下面几句即可:

ssi on;ssi_silent_errors off;ssi_types text/shtml;

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

IIS和Apache都可以开启SSI功能,具体可参考:Apache、Nginx 服务配置服务器端包含(SSI)

1.2 SSI语法

首先,介绍下SHTML,在SHTML文件中使用SSI指令引用其他的html文件(#include),此时服务器会将SHTML中包含的SSI指令解释,再传送给客户端,此时的HTML中就不再有SSI指令了。比如说框架是固定的,但是里面的文章,其他菜单等即可以用#include引用进来。

①显示服务器端环境变量

本文档名称:

现在时间:

显示IP地址:

②将文本内容直接插入到文档中

注:file包含文件可以在同一级目录或其子目录中,但不能在上一级目录中,virtual包含文件可以是Web站点上的虚拟目录的完整路径

③显示WEB文档相关信息(如文件制作日期/大小等)

文件最近更新日期:

文件的长度:

④直接执行服务器上的各种程序(如CGI或其他可执行程序)

'

使用exec执行服务端端命令

5.2 漏洞挖掘

运气好,刚好遇到个某SRC的。

"-->'-->`--><

执行命令

获取服务器端配置信息

"-->'-->`--><

反弹shell

执行反弹shell

0x06 SSI防御

  • 关闭服务器SSI功能
  • 过滤相关SSI特殊字符(`,#,-,",'`)

喜欢安全的朋友,可以关注转发,私信我交流讨论

nginx反代web页面没有正常显示_web漏洞-SSI注入漏洞深入详解相关推荐

  1. Nginx反代Mogilefs分布式储存示例

    2019独角兽企业重金招聘Python工程师标准>>> 一.分布式存储系统简介 随着信息技术不断的发展,给我们带来便利的同时,不断增加的数据量级.信息之间的连接关联越来越复杂.数据访 ...

  2. nps内网穿透服务器搭建教程(ip显示阿里云的ip)-小宇特详解

    nps内网穿透服务器搭建教程(ip显示阿里云的ip)-小宇特详解 一共有两部分,一部分是windows安装,一部分是linux系统(使得ip显示自己的阿里云). 前期准备 1.一台云服务器 2.配置安 ...

  3. cpu显示无效查询 wmic_Windows WMIC命令使用详解(附实例)

    执行"wmic"命令启动WMIC命令行环境.这个命令可以在XP或 .NET Server的标准命令行解释器(cmd.exe).Telnet会话或"运行"对话框中 ...

  4. web漏洞-SQL注入漏洞、目录遍历漏洞、文件下载漏洞

    这里用到的是Pikachu漏洞练习平台 一.SQL注入漏洞-数字型注入 SQL注入漏洞简介 在owasp发布的top10排行榜里,注入漏洞一直是危害排名第一的漏洞,其中注入漏洞里面首当其冲的就是数据库 ...

  5. Java web 开发的概念、环境配置、创建项目过程详解(Eclipse)

    Java Web 开发 Java Web 开发概念 搭建过程 详解 在eclipse创建Dynamic Web Project 创建时选择Tomcat的版本 创建项目成功 eclipse环境下如何配置 ...

  6. C语言字符集中可显示字符,C++_C语言转义字符实例详解,在字符集中,有一类字符具有 - phpStudy...

    C语言转义字符实例详解 在字符集中,有一类字符具有这样的特性:当从键盘上输入这个字符时,显示器上就可以显示这个字符,即输入什么就显示什么.这类字符称为可显示字符,如a.b.c.$.+和空格符等都是可显 ...

  7. html web form id,小程序如何获取多个formId实现详解

    小程序如何获取多个formId实现详解 发布时间:2020-09-03 08:04:34 来源:脚本之家 阅读:135 作者:jANE2160 很多人使用过form和button的多层嵌套来实现点击一 ...

  8. Linux执行yum不显示时间,Linux停的yum命令详解(朝花夕拾)

    yum是干什么的使用redhat,fedora的linuxer肯定都为rpm著名的dependency hell而头疼(这也是所有基于rpm发行版都有的问题).foo is needed by bar ...

  9. php study 直接显示代码_PHP获取文件大小的方法详解(附视频)

    本篇文章主要给大家介绍PHP获取文件大小以及封装获取正常大小的具体方法. 对于初入门的PHP新手来说,PHP获取文件大小这个功能实现,或许有一定的难度.但是相信新手小白们在看过本篇文章介绍后,一定能轻 ...

最新文章

  1. Vim 删除不包含指定字符串的行及统计匹配个数
  2. STM32cube HAL库 UART串口中断方式收发任意长度 调试笔记
  3. c# vscode 配置_使用VSCode开发C#项目
  4. tomcat和http简介
  5. 针对双系统ubuntu16.04卡死及系统没有声音解决方法
  6. 尤其是java程序员(转载)_JAVA程序员 学习任务(转载)
  7. 信息学奥赛一本通(1090:含k个3的数)
  8. 实现OO的最后一公里
  9. ASN.1编解码:asn1c-ORAN-E2AP
  10. python数据可视化字段_python数据爬取及数据可视化分析
  11. sql 2008 清空数据库日志
  12. File Finder pro Mac版重复文件查找器使用方法
  13. Data crossstore between Mongo and JPA
  14. mysql图文混排设计方案_平面设计图文混排技巧,看完再也不用担心排版了
  15. 零基础自学软件测试-项目经验-电商项目实战-测试用例设计-促销中心
  16. 〖Python自动化办公篇⑰〗- PPT 文件自动化 - PPT 插入表格与图片
  17. GOM登录器技术研究,闪退、掉线的原因分析和解决
  18. zend framework 1.5.2 中实现梅花雪1.0树状菜单
  19. 详解Django的CSRF认证
  20. python3今日头条App电商数据抓取

热门文章

  1. 【Spring】No suitable HttpMessageConverter repsonse type
  2. JMH 性能测试框架
  3. 【mysql】解决MySQL GPG密钥过期问题
  4. 面试官这Redis夺命连环12问,谁顶得住?
  5. MySQL与PostgreSQL比较,哪个更好、我们该选用哪个?
  6. 引入 Gateway 网关,这些坑一定要学会避开!!!
  7. 挖出一个面试刷题的宝藏资源,赶紧收下了~
  8. 配置数据引擎(BDE、SQL Link)的简单方法 /制做快速按钮条的方法/建立临时表的方法
  9. vue res返回html,vue 组件内获取actions的response方式
  10. 《C Primer Plus 第五版》读书笔记