网络安全进阶学习第六课——服务器解析漏洞

文章目录

  • 1、概念
  • 2、Apache解析漏洞 CVE-2017-15715
  • 3、Apache AddHandler解析漏洞
  • 4、IIS6 解析漏洞(`;`)
  • 5、IIS6 解析漏洞(`*.asp/目录`)
  • 6、IIS7 解析漏洞(ISAP或CGI的模式下)
  • 7、nginx解析漏洞(cgi.fix_pathinfo)
  • 8、nginx解析漏洞(%00空字节)
  • 9、总结
    • 1)轻量级检测绕过
    • 2)路径/文件扩展名检测绕过
    • 3)文件内容检测方式


1、概念

解析漏洞主要是一些特殊文件被Apache、IIS、Nginx等Web服务器在某种情况下解释成脚本文件格式并得以执行而产生的漏洞


2、Apache解析漏洞 CVE-2017-15715

影响范围:2.4.0~2.4.29版本

此漏洞形成的根本原因,在于 , 正则表达式中 , 正则表达式中 ,正则表达式中不仅匹配字符串结尾位置,也可以匹配\n 或 \r ,在解析PHP时,1.php\x0A将被按照PHP后缀进行解析,导致绕过一些服务器的安全策略。

上传文件test.php. 抓包 修改 php后面的点(2e) 为 换行(0a)
访问 test.php%0a


3、Apache AddHandler解析漏洞

Apache默认一个文件可以有多个后缀名,每次识别从右到左识别,当最右边的后缀无法识别时,则继续向左识别。mime.types中记录apache可识别的后缀名

添加AddHandler,使得任何文件只要包含.php后缀名的文件都会被当作php文件解析为了使php文件可以被解析,用户自己添加了AddHandler:AddHandler application/xhttpd-php .php


4、IIS6 解析漏洞(;

基于文件名:该版本默认会将*.asp;.jpg此种格式的文件名,当成asp解析。

原理是服务器默认不解析 ; 号及其后面的内容相 当于截断


5、IIS6 解析漏洞(*.asp/目录

基于文件夹名,该版本默认会将 *.asp/目录下的所有文件当成asp解析。

当在网站下建立文件夹的名字为*.asp、*.asa、*.cer、*.cdx 文件夹,那么其目录内的任何扩展名的文件都会被IIS当做asp文件来解释并执行。

注意:微软不认为这一个是漏洞,因为正常情况下,是无法创建 *.asp 命名的文件夹的。


6、IIS7 解析漏洞(ISAP或CGI的模式下)

服务器是使用IIS7环境,并且在ISAP或CGI的模式下,在任意文件,如test.jpg后面加上 /.php ,会自动将test.jpg解析为php文件。

例如:127.0.0.1/test.jpg/.php 会被解析成 127.0.0.1/test.php


7、nginx解析漏洞(cgi.fix_pathinfo)

nginx查看url,得到.php结尾,将路径传递给php fastcgi处理程序,nigin传递给php的路径为
在这里插入图片描述

php根据url映射,在服务器寻找xxx.php文件,但是xxx.php文件不存在,由于cgi.fix_pathinfo是默认开启。php会继续检查 路径存在的文件,并将多余部分当作PATH_INFO,接着找到文件存在.jpg文件,后以php形式执行.jpg内容,并将/xxx.php 存储在PATH_INFO后丢弃。
在这里插入图片描述

  • 举例来说:
    1)上传了一个图片木马文件:upload/1.jpg
    2)然后访问方式是:upload/1. jpg /1.jlkk/1.php
    3)这时后系统会从后面开始找,先去找1.php,没找到;接着往前找1.jlkk,也没找到;再往前找1. jpg,找到了。
    4)系统就会把找到的1.jpg来当成是最后的一个1.php来当成PHP文件执行。

8、nginx解析漏洞(%00空字节)

Nginx如下版本: 0.5.*、0.6.*、0.7 <= 0.7.65、0.8 <= 0.8.37 该漏洞不受cgi.fix_pathinfo影响,当其为0时,依旧解析。

  1. 生成一个upload/info.jpg格式的木马文件
  2. 使用burp抓包,访问info.jpg,修改为info.jpg…php , 在16进行模式下,修改jpg后面的 . ,为00
  3. 访问时就直接访问upload/info.jpg .php
  4. 这时就直接会把info.jpg当成info.php来执行。

9、总结

从攻击者的角度来给上传分类:

1)轻量级检测绕过

a.绕过前端JavaScript检测:使用Burp抓包改包。
b.绕过服务器端MIME类型检测:使用Burp抓包改包。

2)路径/文件扩展名检测绕过

黑名单检测方式

  • 文件名大小写绕过;
  • 名单列表绕过;
  • 特殊文件名绕过;
  • 0x00截断绕过;
  • .htaccess文件攻击;
  • 本地文件包含漏洞;
  • Apache解析漏洞;
  • IIS解析漏洞;
  • Nginx解析漏洞;

白名单检测方式

  • 0x00截断绕过;
  • 本地文件包含漏洞;
  • Apache解析漏洞;
  • IIS解析漏洞;
  • Nginx解析漏洞;

3)文件内容检测方式

对文件进行恶意代码注入,再配合解析漏洞(或文件包含漏洞)。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023年6月第4周大模型荟萃

2023年6月第4周大模型荟萃 2023.6.30版权声明&#xff1a;本文为博主chszs的原创文章&#xff0c;未经博主允许不得转载。 1、腾讯云首次公布大模型进展 6月19日&#xff0c;腾讯云召开行业大模型及智能应用技术峰会&#xff0c;首次公布腾讯云行业大模型研发进展&#xff0…

QT下载太慢,在线安装太慢的解决方案

实现效果 步骤1 下载在线安装的客户端&#xff0c;可以从qt.io&#xff08;qt-unified-windows-x64-4.6.0-online.exe&#xff09;下载&#xff0c;速度稍慢&#xff0c;但是大小也才38MB左右。 觉得下载太慢的小伙伴可以使用我提供的代下载版本&#xff0c;你们可以校验文件…

峰会来袭 | CAD模型转换工具选择的难点和关键点解答

作为世界顶尖的3D软件开发SDK和CAD模型转换工具——HOOPS Exchange已问世十多年&#xff0c;深受开发者好评&#xff0c;并在工业测量、机械加工、造船设计等领域都有广泛的应用。 本次峰会将围绕CAD软件造型技术的多样性、CAD模型数据解析的难点、3D模型转换的经典问题等&…

IDEA+springboot+jpa+Layui+Mysql销售考评系统源码

IDEAspringbootjpaLayuiMysql销售考评系统源码 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.评分结果3.评分管理4.添加评分5.用户管理6.添加用户7.角色管理8.添加角色8.销售管理9.添加销售 三、部分代码UserDao.javaUserController.javaUser.java 四、其他获取源码 一、…

黑芝麻智能科技、上海紫先面试(部分)(未完全解析)

黑芝麻智能科技 Hystrix可以限流吗&#xff1f;客户端限流&#xff0c;是限制对下游&#xff08;被调用方&#xff09;的访问&#xff0c;不是对本服务限流。从HystrixCommand的.withExecutionIsolationStrategy(ExecutionIsolationStrategy.SEMAPHORE)也可以看出来&#xff0c…

STM32外设系列—ESP8266(WIFI)

文章目录 一、ESP8266简介二、固件库烧录三、常用AT指令四、访问API4.1 获取IP地址4.2 GET天气信息4.3 访问结果展示 五、实战项目5.1 串口配置5.2 检测WIFI模块连接状态5.3 发送配置指令5.4 解析天气信息 六、成果展示 一、ESP8266简介 ESP8266是嵌入式和物联网开发中常用的模…

MySQL子查询

&#x1f607;作者介绍&#xff1a;一个有梦想、有理想、有目标的&#xff0c;且渴望能够学有所成的追梦人。 &#x1f386;学习格言&#xff1a;不读书的人,思想就会停止。——狄德罗 ⛪️个人主页&#xff1a;进入博主主页 &#x1f5fc;专栏系列&#xff1a;进入MySQL专栏知…

Jenkins邮件配置报错com.sun.mail.smtp.SMTPSenderFailedException: 501

Jenkins邮件配置&#xff0c;配置完成各种信息之后&#xff0c;“通过发送测试邮件测试配置”点击Test configuration&#xff0c;报错 1、报错信息 com.sun.mail.smtp.SMTPSenderFailedException: 501 mail from address must be same as authorization userat com.sun.mail…

Xcode 15 beta 3 (15A5195k) 发布下载 - Apple 平台 IDE

Xcode 15 beta 3 (15A5195k) 发布下载 - Apple 平台 IDE (visonOS 1 beta 已发布) 7 月 5 日&#xff08;北京时间今日凌晨&#xff09;已发布。 IDE for iOS/iPadOS/macOS/watchOS/tvOS/visonOS 请访问原文链接&#xff1a;https://sysin.org/blog/apple-xcode-15/&#xf…

Flutter生命周期小结

Flutter 中的生命周期&#xff0c;包含以下几个阶段&#xff1a; createState &#xff0c;在 StatefulWidget 中创建 State 的方法&#xff0c;当 StatefulWidget 调用时会触发 createState 。initState &#xff0c;在 State 初始化时调用&#xff0c;因此可以在此期间执行 …

Python 基于招聘数据可视化系统

1 简介 Python 基于招聘数据可视化系统&#xff0c;视频效果如下&#xff1a; 基于Python的招聘信息可视化系统&#xff0c;附源码 随着国内的经济不断的快速发展&#xff0c;现在学生的就业压力也在逐年增加&#xff0c;网络上的招聘信息非常的丰富&#xff0c;但是对于学生而…

Flutter基础控件

Text:文字 Text("Flutter") Text是最常用也是最基础的&#xff0c;目前学习阶段只用来加载文字数据&#xff0c;更多属性和样式设置请查看源码自己探索。 Button:按钮 ElevatedButton:普通按钮 ElevatedButton(onPressed: () {if (kDebugMode) {print("Elevat…

安装和配置nginx(含https)

文章目录 安装Nginx配置单独的配置&#xff1a;https配置 nginx为什么可以处理高并发 安装Nginx sudo yum update sudo yum install epel-release sudo yum install nginx sudo systemctl start nginx安装好后可以打开自己的域名 看一下默认的页面 配置 具体参考Link 位置 …

软件工程——第7章实现知识点整理

本专栏是博主个人笔记&#xff0c;主要目的是利用碎片化的时间来记忆软工知识点&#xff0c;特此声明&#xff01; 文章目录 1.实现由哪两个部分组成&#xff1f; 2.编码是什么&#xff1f;所选用的程序设计语言对程序的哪些特性有着深远影响&#xff1f; 3.软件测试在软件生…

Python编程实现针对回撤的交易策略

在金融交易市场上&#xff0c;回撤是一个常见的现象。因此&#xff0c;对于投资者来说&#xff0c;研究和设计针对回撤的交易策略是非常必要的。本文将介绍如何使用Python编程实现针对回撤的交易策略&#xff0c;以帮助投资者更好地进行交易。 一、回撤分析 在设计针对回撤的…

Cisco Catalyst 9000 Series Switches, IOS-XE Release Dublin-17.11.1 ED

Cisco Catalyst 9000 Series Switches, IOS-XE Release Dublin-17.11.1 ED Cisco Catalyst 9000 交换产品系列 请访问原文链接&#xff1a;https://sysin.org/blog/cisco-catalyst-9000/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;…

Basler相机一丢包就断开问题解决

问题描述&#xff1a; 两个相机&#xff0c; 一个相机aca2500-14gm连接电脑主板100M网卡没问题&#xff0c;帧率3帧&#xff0c;但是不会断。 一个相机aca2500-14gm连接USB转网口&#xff08;千兆&#xff09;&#xff0c;pylon Viewer采图丢包严重并且几秒后相机断开。 解决…

Centos 7 下安装Redis

官网地址&#xff08;英文&#xff09;&#xff1a;Redis 官网地址&#xff08;中文&#xff09;&#xff1a;CRUG网站 or redis中文文档 Redis源码地址&#xff1a;GitHub - redis/redis: Redis is an in-memory database that persists on disk. The data model is key-v…

数据结构-排序

数据结构排序 1 知识框架2 插入排序2.1 直接插入排序2.2 折半插入排序2.3 希尔排序 3 交换排序3.1 冒泡排序3.2 快排 4 选择排序4.1 简单选择排序4.2 堆排序 5 归并和基数排序5.1 归并排序5.2 基数排序 1 知识框架 算法的稳定性&#xff1a;&#xff1b;两个相同的元素在排序算…

swiftUI和swift的区别

概述 SwiftUI是苹果公司推出的一种用于构建iOS、macOS、watchOS和tvOS应用程序界面的框架。它是基于Swift编程语言开发的&#xff0c;旨在简化UI开发过程并提供实时预览功能&#xff0c;使开发人员可以更快地构建出漂亮的应用程序界面。 Swift是苹果公司推出的一种面向对象的…