SSI 注入漏洞

news2024/11/19 12:33:34

0x00漏洞描述

SSI 英文是 Server Side Includes 的缩写,翻译成中文就是服务器端包含的意思。从技术角度上说,SSI 就是在 HTML 文件中,可以通过注入注释调用的命令或指针。SSI 具有强大的功能,只要使用一条简单的 SSI 命令就可以实现整个网站的内容更新,时间和日期的动态显示,以及执行 shell 和 CGI 脚本程序等复杂的功能。SSI 可以称得上是那些资金短缺、时间紧张、工作量大的网站开发人员的最佳帮手。

服务器端包含提供了一种对现有 HTML 文档增加动态内容的方法。Apache 和 IIS 都可以通过配置支持 SSI,在网页内容被返回给用户之前,服务器会执行网页内容中的 SSI 标签。在很多场景中,用户输入的内容可以显示在页面中,比如一个存在反射 XSS 漏洞的页面,如果输入的 payload 不是 XSS 代码而是 SSI 标签,服务器又开启了 SSI 支持的话就会存在 SSI 漏洞。

0x01检测条件

1、Web 服务器已支持 SSI。

2、Web 应用程序在返回 HTML 页面时,嵌入用户输入。

3、参数值未进行输入清理。

0x02检测方法

①、黑盒测试

通过信息收集技术,了解我们的检测目标运行哪些类型的 Web 服务器,查看检测网站的内容来猜测是否支持 SSI,由于 .shtml 文件后缀名是用来表明网页文件是否包含 SSI 指令的,因此如果该网站使用了 .shtml 文件,那说明该网站支持 SSI 指令。然而 .shtml 后缀并非强制规定的,因此如果没有发现任何 .shtml 文件,并不意味目标网站没有 SSI 注入漏洞。

接下来的步骤就是是否可以进行 SSI 注入攻击,还有恶意代码的注入点。我们需要找到运行用户输入的每一个页面,并确认应用程序是否正确验证了所提交的输入,反之则确认是否存在按输入原样显示的数据(如错误信息、论坛发帖等)。除了常见的用户提供的数据外,还要考虑 HTTP 请求头Cookie 内容。

示例:

GET/HTTP/1.0

Referer:<!--#exec cmd="/bin/psax"-->

User-Agent: <!--#virtualinclude="/proc/version"-->

②、白盒测试

1、是否使用 SSI 指令,如果使用,则 Web 服务器就启动了 SSI 支持。这就导致 SSI 注入至少成为需要调查的潜在问题;

2、用户输入、Cookie 内容和 HTTP 标题头在哪里处理;

3、如何处理输入、使用什么样的过滤方式、应用程序不允许什么样的字符通过、考虑了多少种编码方式。使用 grep 执行这些步骤,找到源代码中的正确关键字(SSI 指令、CGI 环境变量、涉及用户输入的变量任务、过滤函数等等)。

0x03案例演示

buuctf 的题目:[BJDCTF2020]EasySearch 1

具体可看 CSDN 文章:渗透测试练习题解析 7 (CTF web)第一题

文章内容支持 .shtml、按输入原样输出,种种迹象表明该网站存在 SSI 注入漏洞,那么我们在 username 文本框中输入恶意代码

<!--#exec cmd="id" -->

还可以利用 SSI 注入执行反弹 Shell

0x04防御方法

1、清除用户输入,禁止可能支持 SSI 的模式

2、过滤敏感字符,比如( < , > , # , - , " , '

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1867272.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu挂载window的网络共享文件夹爱

1.进入win10创建一个用户smb密码也是smb 2.右键进入文件夹共享 3.进入Ubuntu安装支持cifs-utils sudo apt update sudo apt install cifs-utils 4.sudo mkdir /mnt/shared 5.挂载&#xff1a; sudo mount -t cifs -o usernamesm bpasswordsmb //172.16.11.37(windowsIP)/s…

结构体(二)

今天来继续介绍我们有关结构体的相关知识 结构体的自引用 结构体的自引用&#xff0c;顾名思义嘛&#xff0c;就是在我们的结构体中再次引用该结构体&#xff0c;这一点跟我们的函数递归有异曲同工之妙&#xff0c;不了解函数递归的小伙伴可以移步到我之前做过的一期&#xf…

ElasticSearch索引架构与存储

关于ES官网的介绍: Elasticsearch provides near real-time search and analytics for all types of data. Whether you have structured or unstructured text, numerical data, or geospatial data, Elasticsearch can efficiently store and index it in a way that support…

django学习入门系列之第三点《案例 商品推荐部分》

文章目录 划分区域搭建骨架完整代码小结往期回顾 划分区域 搭建骨架 /*商品图片&#xff0c;父级设置*/ .slider .sd-img{display: block;width: 1226px;height: 460px; }<!-- 商品推荐部分 --> <!--搭建出一个骨架--> <div class"slider"><di…

openwrt igmp 适配

每弄完一次&#xff0c;过不多久就忘了&#xff0c;这次决心记下来。 openwrt 的igmpproxy 包是干嘛的&#xff1f;原来&#xff0c;组播包并不能穿透路由&#xff0c;也就是我们在wan端播放的组播视频流&#xff0c;lan端是没法收到的&#xff0c;igmpproxy就是用来打通wan端…

【Linux】进程信号_3

文章目录 八、进程信号2. 信号的保存3. 信号的处理 未完待续 八、进程信号 2. 信号的保存 实际执行信号的处理动作称为信号递达(Delivery) 信号从产生到递达之间的状态,称为信号未决(Pending)。 进程可以选择阻塞 (Block )某个信号。 被阻塞的信号产生时将保持在未决状态,直到…

网络问题排障专题-AF网络问题排障

目录 一、数据交换基本原理 1、ARP协议工作原理 数据包如图&#xff1a; 2、二层交换工作原理 简述核心概念&#xff1a; 二层交换原理-VLAN标签 3、三层交换工作原理 二、AF各种部署模式数据转发流程 1、路由模式数据转发流程 三、分层/分组逐一案例讲解 1、问题现…

自然语言处理——英文文本预处理

高质量数据的重要性 数据的质量直接影响模型的性能和准确性。高质量的数据可以显著提升模型的学习效果&#xff0c;帮助模型更准确地识别模式、进行预测和决策。具体原因包括以下几点&#xff1a; 噪音减少&#xff1a;高质量的数据经过清理&#xff0c;减少了无关或错误信息…

redis哨兵模式(Redis Sentinel)

哨兵模式的背景 当主服务器宕机后&#xff0c;需要手动把一台从服务器切换为主服务器&#xff0c;这就需要人工干预&#xff0c;费事费力&#xff0c;还会造成一段时间内服务不可用。这不是一种推荐的方式。 为了解决单点故障和提高系统的可用性&#xff0c;需要一种自动化的监…

【D3.js in Action 3 精译】1.2.2 可缩放矢量图形(一)

译注 由于 1.2.2 小节介绍 SVG 的篇幅过多&#xff0c;为了方便查阅&#xff0c;后续将分多个小节依次进行翻译。为了确保整个 1.2.2 小节的完整性&#xff0c;特意将上一篇包含的 SVG 小节的内容整理出来重新编排。敬请留意。 1.2.2 SVG - 可缩放矢量图形 可伸缩矢量图形&…

Django-开发一个列表页面

需求 基于ListView,创建一个列表视图,用于展示"BookInfo"表的信息要求提供分页提供对书名,作者,描述的查询功能 示例展示: 1. 数据模型 models.py class BookInfo(models.Model):titlemodels.CharField(verbose_name"书名",max_length100)authormode…

【STM32-存储器映射】

STM32-存储器映射 ■ STM32F1-4G地址空间分成8个块■ STM32F1-Block0■ STM32F1-Block1■ STM32F1-Block2■ STM32F1- ■ STM32F1-4G地址空间分成8个块 ■ STM32F1-Block0 有出厂 BootLoader 就可以使用串口下载程序。如Keil5图中IROM地址是0x8000000 开始 就是flash地址 ■ S…

安装vue开发者工具

浏览器控制台提示&#xff1a; 打开网址 GitHub - vuejs/devtools: ⚙️ Browser devtools extension for debugging Vue.js applications. 点击添加 上图地址&#xff1a;Installation | Vue Devtools 安装好了

线上民族传统服饰商城

摘 要 随着互联网的不断发展和普及&#xff0c;电子商务成为了人们生活中不可或缺的一部分。传统的线下购物方式逐渐被线上购物所取代&#xff0c;人们越来越习惯在互联网上购物。而民族传统服饰作为我国丰富多样的民族文化的重要组成部分&#xff0c;具有独特的艺术价值和商业…

不是KVM不支持精简置备的磁盘,而是VMM

正文共&#xff1a;999 字 11 图&#xff0c;预估阅读时间&#xff1a;1 分钟 书接上文&#xff08;不会吧&#xff01;KVM竟然不支持磁盘的精简置备&#xff01;&#xff1f;&#xff09;&#xff0c;我们已经掌握了通过“虚拟系统管理器VMM”创建虚拟机的基本方法&#xff0c…

vscode设置主题的颜色

点击主界面左下角的 展开的菜单中点击“themes” 点击“color themes” 选择颜色

windows USB 设备驱动开发-总章

通用串行总线 (USB) 提供可扩展的即插即用串行接口&#xff0c;确保外围设备的标准、低成本的连接。 USB 设备包括键盘、鼠标、游戏杆、打印机、扫描仪、存储设备、调制解调器、视频会议摄像头等。USB-IF 是一个特别兴趣组 (SIG)&#xff0c;负责维护官方 USB 规范、测试规范和…

浅谈Tomcat

文章目录 一、什么是Tomcat&#xff1f;二、Tomcat的下载安装三、使用tomcat访问资源 一、什么是Tomcat&#xff1f; Tomcat 就是一个 HTTP 服务器。 前面我们聊了HTTP服务器&#xff0c;像我们在网页输入URL&#xff0c;其实就是在给人家的HTTP服务器发送请求&#xff0c;既…

如何使用sr2t将你的安全扫描报告转换为表格格式

关于sr2t sr2t是一款针对安全扫描报告的格式转换工具&#xff0c;全称为“Scanning reports to tabular”&#xff0c;该工具可以获取扫描工具的输出文件&#xff0c;并将文件数据转换为表格格式&#xff0c;例如CSV、XLSX或文本表格等&#xff0c;能够为广大研究人员提供一个…

Renesas MCU使用SCI_I2C驱动HS3003

目录 概述 1 软硬件介绍 1.1 软件版本信息 1.2 认识HS3003 1.2.1 HS3003特性 1.2.2 HS3003寄存器 1.2.2.1 温湿度数据寄存器 1.2.2.2 参数寄存器 1.2.2.3 一个参数配置Demo 1.2.3 温湿度值转换 1.2.4 HS3003应用电路 1.2.4.1 PIN引脚定义 1.2.4.2 sensor 应用电路 …