传统后端漏洞----(Web Server) 解析漏洞

news2024/11/18 6:01:24

笔记

  • 前言
  • IIS解析漏洞
    • 文件夹解析漏洞
      • 原理
      • 限制条件
    • ";" 分号截断漏洞
      • 原理
    • IIS解析漏洞检测
      • IIS 文件夹解析漏洞检测
      • IIS 分号截断漏洞检测
    • 防御手段
  • Nginx解析漏洞
    • Nginx 文件类型错误解析漏洞导致任意PHP代码执行
      • 原理
      • Nginx 空字节解析漏洞导致任意文件可解析(CVE-2013-4547)
      • 原理
      • 受该漏洞影响的Nginx版本:
    • Nginx解析漏洞检测
    • Nginx 解析漏洞的防御
  • Apache 解析漏洞
    • 配置错误导致的Apache解析漏洞
      • 该漏洞产生原因
    • Apache HTTPD 换行解析漏洞(CVE-2017-15715)
      • 原理
      • 该漏洞产生原因
    • Apache解析漏洞检测
    • Apache解析漏洞的防御
  • 解析漏洞的防御

前言

  • 这几天各种技术面试接踵而至,压得我喘不过气了!然后面试官问了我这个解析漏洞原理和利用方式以及防御手段,当然同时还问了好几个Top10漏洞!

IIS解析漏洞

文件夹解析漏洞

原理

  • 在IIS 5.x 和6.x下,对于目录名称为“x.asp”中的任何内容,包括“1.jpg”这样的图片资源文件,都会被当作ASP文件解析

限制条件

  • 需要同时存在文件夹解析漏洞和网站允许创建恶意文件夹(管理员权限)两个漏洞利用点,缺少任何一个都无法成功利用。

“;” 分号截断漏洞

原理

  • IIS 6.0 下,会将“1.asp;.jpg”这样的文件当作ASP文件解析。
  • 计算机对文件扩展名的理解上来说,文件扩展名是以最后一个“ . ”的后面内容为依据的,这个文件被网站过滤程序理解成了图片
  • IIS 会认为分号即是结尾,后面的内容被“截断”了,认为这是ASP文件,及时使用了“白名单”过滤,也允许可以进行绕过。

IIS解析漏洞检测

IIS 文件夹解析漏洞检测

  • 通过在网站根目录下创建“a.asp”文件夹,并在其中创建“1.jpg”,文件内容填写ASP代码。然后远程访问 http://target.com/a.asp/1.jpg,验证文件是否能够被当作ASP解析,以判断漏洞存在是否

IIS 分号截断漏洞检测

  • 可以上传“1.asp;.jpg” 文件,然后远程访问http://target.com/1.asp;.jpg,验证文件是否能够被当做ASP解析

防御手段

  • 漏洞源于IIS 服务器本身存在缺陷。可以升级IIS 服务器版本和打补丁

Nginx解析漏洞

Nginx 文件类型错误解析漏洞导致任意PHP代码执行

原理

  • 服务器上任意一个已存在的文件,包括用户上传的图片、附件等,都可以被PHP-FPM解析,导致任意PHP代码执行漏洞(国内知名安全团队80sec提出)
    在这里插入图片描述
  • Nginx会将用户请求的HTTP数据包解析生成CGI环境变量,并通过FastCGI协议发送给PHP-FPM的9000端口;PHP-FPM通过这些CGI环境变量,定于到用户需要执行的PHP文件并执行,将返回结果在通过FastCGI协议的返回包返回给Nginx服务器。

Nginx 空字节解析漏洞导致任意文件可解析(CVE-2013-4547)

原理

  • Nginx在遇到“%00空字节”时,与后端FastCGI处理不一致,导致可以在图片中可以嵌入PHP代码,然后通过访问“xxx.jpg%00.php”来执行其中的代码。

受该漏洞影响的Nginx版本:

  • 0.8.41-1.4.3/1.5.0-1.5.7

Nginx解析漏洞检测

  • Nginx 解析漏洞的表现形式就是任意文件都可以让PHP解释器执行。
    通常,可以在目标站点中找到任意一个已知的静态文件,如“/robots.txt”。利用Burp Suite工具可以看到请求和响应的HTTP协议内容。
  • 正常情况下"/robots.txt"的Content-Type是“text/plain”
  • 如果访问“/robots.txt/.php”,其响应头字段Content-Type将变成PHP默认的“text/html”,并会增加PHP的指纹“X-Powered-By”
  • 通过这个特征,可以判断目标网站是否将静态文件分发给PHP执行。
  • 如果目标网站支持上传文件,攻击者用图片的形式上传一个WebShell命名为shell.jpg,并增加“/.php”访问,就成功实现了GetShell

Nginx 解析漏洞的防御

  • Nginx文件类型错误漏洞是由PATH_INFO变量所导致的,如果业务上并没有用到PATH_INFO功能,可以直接在PHP.INI配置文件中关闭fix_pathionfo。
  • 还可以在PHP-FPM中设置security.limit_extensions来限制PHP-FPM执行的PHP文件的扩展名,将其值设置为“.php”,则其他扩展名的文件不再会被作为PHP运行
  • security.limit_extensions = .php
  • 还可以在Nginx的配置文件中增加如下选项
    fastcgi_split_path_info ^(.+.php)(.*) ; N g i n x 将会按照正则表达式 “ ( . + . p h p ) ( . ∗ ) ; Nginx将会按照正则表达式“^(.+.php)(.*) ;Nginx将会按照正则表达式(.+.php)(.)”对,PATH进行分割,匹配到的第一项作为“ f a s t c g i s c r i p t n a m e ” , 第二项作为“ fastcgi_script_name”,第二项作为“ fastcgiscriptname,第二项作为fastcgi_path_info”
  • 对于Nginx空字节解析漏洞,可以通过升级Nginx版本来得到彻底修复

Apache 解析漏洞

配置错误导致的Apache解析漏洞

  • 通常指多扩展名导致任意代码执行的漏洞。类似Nginx解析漏洞,Apache解析漏洞也是由错误配置导致。也是因为这个原因,这个漏洞并不会在Apache核心代码中修复

  • AddHandler application/x-httpd-php .php

  • AddHandler cgi-script .cgi

  • AddHandler 在用户请求某扩展名的文件时,使用某处理器处理

该漏洞产生原因

  • 如果开发者在用户上传文件的时候用黑名单校验文件扩展名,攻击者可以通过上传包含不在黑名单也不被Apache识别的扩展名的文件名(如“sample.php.xyz”)来绕过校验,最后执行任意PHP代码。

Apache HTTPD 换行解析漏洞(CVE-2017-15715)

原理

代码片段
    <FileMatch  "[^.]+.php$">
        SetHandler application/x-httpd-php
    <FileMatch>
  • Apache使用的是Perl兼容的正则表达式库PCRE,其文档详细描述了“$”的语法
 $  assert end of string  (or line ,in multiline mode)
$     能够匹配到的三个内容
    1、一个字符串的结尾
    2、一个以换行符作为结尾的字符串的结尾部分
    3、在多行模式开启的情况下,匹配每一行的结尾
  • 不能仅仅将“KaTeX parse error: Undefined control sequence: \n at position 30: …,如果一个文件名是以“.php\̲n̲"结尾,(\n表示换行),他是…”的。

该漏洞产生原因

  • 如果开发者在用户上传文件的时候,以黑名单的形式校验文件扩展名,可以上传一个以“.php\n”为扩展名的PHP文件,这个扩展名可以绕过黑名单校验,同样也会被Apache作为PHP代码解析

Apache解析漏洞检测

利用条件

  • 1、网站存在文件上传的功能点
  • 2、文件上传以黑名单检测
    测试文件上传漏洞的时候,可以测试如下文件
    sample.php.xyz
    sample.php.jpeg
    sample.php\n
  • 上传并访问,如果能够执行PHP代码,则说明目标网站存在Apache 解析漏洞

Apache解析漏洞的防御

  • 1、白名单扩展名检测,并结合文件上传以后将文件重新命
  • 2、只取文件扩展名,对其进行检查,扩展名满足条件的情况下,使用uniqid()生成新文件名,并执行文件移动操作,最后保留在文件系统中的将是一个完全标准化的文件名,不会再触发Apache文件解析漏洞

解析漏洞的防御

  • 1、在选择Web Server 时,一定要使用最新版或确保安全的较新版本
  • 2、对于已经由业务运行,迁移Web Server存在业务中断风险的情况,需要及时打补丁
  • 3、如果要修改Web Server 的默认解析配置,应当充分了解其带来的安全风险的前提下再进行修改
  • 4、删除不必要的解析扩展名(如PHP3,php4等),避免攻击者通过上传可解析为脚本资源的扩展名来获取WebShell权限

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

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

相关文章

DB2:DB2TOP解析

文章目录 简介主界面功能介绍快捷设置数据库监控(d)表空间监控(Tablespace)&#xff08;t&#xff09;动态SQL监控(Dynamic SQL)(D)表监控&#xff08;T&#xff09;会话监控(session)(l)缓冲池监控(Bufferpool)(b)锁监控(Locks)(U)瓶颈监控(Bottleneck)(B)load监控(Utilities)…

FastDFS单机部署及SpringBoot整合

前言 FastDFS是一个开源的高性能分布式文件系统。它的主要功能包括&#xff1a;文件存储、文件同步和文件访问&#xff08;文件上传和文件下载&#xff09;&#xff0c;可以解决高容量和负载平衡问题。FastDFS应满足其服务基于文件的网站的要求&#xff0c;如照片共享网站和视…

数据安全服务,美创科技为“数字国贸” 筑牢安全防线

在数字经济蓬勃发展的当下&#xff0c;国有企业作为国民经济的“中流砥柱”&#xff0c;正以主力军和先行者之姿&#xff0c;以数字化转型创新作为引擎&#xff0c;驱动高质量发展。数字化进程持续深入&#xff0c;伴随数据要素多样流动&#xff0c;降低数据安全风险&#xff0…

UART I2C SPI CAN LIN 和ETH这些通讯外设的内在联系

这些不同的通讯手段之间其实有着许多隐藏的共性。 物理层到数据链路层扒一扒这些通讯手段的底层原理。 物理层与数据链路层这两个概念&#xff1a; ISO国际标准化组织在上世纪70年代末&#xff0c; 把计算机网络通信的整个框架描述成了一个七层的模型&#xff0c;并称之为OS…

数据备份技术------概述与总结

数据备份技术------概述与总结 数据备份技术------概述与总结备份技术的发展&#xff08;组网方式&#xff09;1、Host备份方式2、LAN备份方式3、LAN-free备份方式&#xff08;SAN&#xff09;4、Server-free备份方式5、Sever-less备份方式 备份技术的发展&#xff08;主流备份…

Springboot搭配Redis实现接口限流

目录 介绍 限流的思路 代码示例 必需pom依赖 自定义注解 redis工具类 redis配置类 主拦截器 注册拦截器 介绍 限流的需求出现在许多常见的场景中&#xff1a; 秒杀活动&#xff0c;有人使用软件恶意刷单抢货&#xff0c;需要限流防止机器参与活动 某 api 被各式各样…

人工智能系统的技术架构

一、架构图 1.基础层包括&#xff1a; 硬件设施、软件设施、数据资源。其中在硬件设施方面&#xff0c;做深度学习和神经网络训练时候往往会涉及到模型训练是在CPU还是GPU上面&#xff0c;在这个里面GPU就是做计算加速的&#xff0c;第二个是智能芯片&#xff0c;市面上出现的…

linux 系统 最详细 启动流程

文章目录 详细分析 系统启动过程主要流程阶段说明BIOSMBR(Stage 1 bootloader)GROUB(Stage 2 bootloader)kernelvmlinuzinitrd.img Init 详细分析 系统启动过程 主要流程 PC 启动主要流程&#xff0c;分为四个阶段&#xff1a; BIOS -> MBR -> GRUB -> KERNEL ->…

6.3.5 修改文件时间或创建新文件: touch

我们在 ls 这个指令的介绍时&#xff0c;有稍微提到每个文件在linux下面都会记录许多的时间参数&#xff0c; 其实是有三个主要的变动时间&#xff0c;那么三个时间的意义是什么呢&#xff1f; modification time &#xff08;mtime&#xff09;&#xff1a; 当该文件的“内容…

1.6、JAVA 分支结构 switch结构 for循环

1 分支结构 1.1 概述 顺序结构的程序虽然能解决计算、输出等问题 但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构 1.2 形式 1.3.1 练习&#xff1a;商品打折案例 创建包: cn.tedu.basic 创建类: TestDiscount.java 需求: 接收用户输入的原价。满1000打9折…

消息通知模块的设计原理

目录 介绍 一、数据库设计 公告消息记录应该全局唯一&#xff0c;还是为每个用户创建一条公告消息&#xff1f; 用MongoDB存储消息数据 1. 搞冷热数据分离&#xff0c;热数据定期归档 2. 冷数据存储一段时间后就销毁&#xff0c;释放存储空间 二、系统消息的发送与收…

肺癌的成因

中国医师协会 2023 年呼吸医师年会暨第二十二届中国呼吸医师论坛&#xff08;CACP 2023&#xff09;于 2023 年 6 月 15-18 日在大连如期举行。肺癌是我国目前发病率和死亡率最高的癌症&#xff0c;它的早期筛查和诊断十分关键。 丁香园呼吸时间特邀四川大学华西医院院长、呼吸…

软件测试报告办理解决方案分享,为什么要选择CMA认证或CNAS认可测试报告?

在进行软件测试时&#xff0c;合格的测试报告对于软件产品的质量保障至关重要。那么软件测试报告又该如何办理呢?软件企业为什么要选择CMA认证或CNAS认可的测试报告呢?因为CMA认证的测试报告和CNAS认可的测试报告都具有不可忽视的好处。 一、软件测试报告办理解决方案 1. 测…

我蒙了面试官一上来就说:请你介绍一下你测试过的项目

测试人员在找工作中&#xff0c;基本都会碰到让介绍项目的这种面试题&#xff0c;如何正确介绍自己的项目&#xff1f;需要做哪些技术准备&#xff1f; 今天这篇文章&#xff0c;围绕这些问题&#xff0c;跟大家一起聊一聊。 关于介绍自己的项目&#xff1f; 可以从以下几个方面…

赛效:如何将PDF文件分割成单页的PDF文档

1&#xff1a;打开wdashi点击PDF处理菜单里的“PDF分割”。 2&#xff1a;将本地PDF文件添加上去&#xff0c;在下方选择转换页码&#xff0c;在这里我们选择转换每一页。 3&#xff1a;点击右下角“开始转换”。 4&#xff1a;转换好后&#xff0c;点击绿色下载按钮将分割好的…

七、Docker安装MySQL/Tomcat/Redis等

学习参考&#xff1a;尚硅谷Docker实战教程、Docker官网、其他优秀博客(参考过的在文章最后列出) 目录 前言一、安装步骤二、Docker安装Tomcat2.1 搜索镜像2.2 拉取镜像2.3 查看镜像2.4 启动镜像&#xff08;端口映射&#xff09;2.5 停止容器2.6 移除容器 三、Docker安装MySQL…

23年下半年软考软件测评师难考吗?最近考虑要不要考?

软考中级难度是适中的&#xff0c;可以考啊&#xff01; 因为当代随着各种应用技术层出不穷&#xff0c;随着社会发展&#xff0c;需要大量的软件人才支持&#xff0c;同时软件的更新速度越来越快&#xff0c;市场竞争极其激烈。相关国际认证有微软的&#xff0c;Orical&#…

新西兰访问学者签证申请注意事项

新西兰是一个美丽而富有文化多样性的国家&#xff0c;许多学者都梦想着前往这里进行学术交流和研究。如果你计划申请新西兰的访问学者签证&#xff0c;以下是知识人网小编整理的一些你需要注意的事项&#xff1a; 1. 确认申请资格&#xff1a;在开始申请之前&#xff0c;确保你…

旧手机不要轻易扔掉,将其设置为无线网卡,不消耗流量

如果你有一部旧手机正在闲置着&#xff0c;或者正考虑要将其丢弃&#xff0c;那么请暂停一下。因为这个旧手机可以成为你的无线网卡&#xff0c;帮助你在家中或出行时实现更快的网络下载速度&#xff0c;而且毫不费流量。接下来&#xff0c;我将告诉你如何将旧手机变成无线网卡…

安装 Prometheus 指标存储 观测 dubbo /windows_exporter指标 windows 版本 其他系统换个语法思路一样

目录 下载 Prometheus 访问Prometheus Targets 发现服务 对应的 dubbo 指标就出来了 Dubbo脚手架生成个最简单的项目 导入 Prometheus 相关包 或者使用这个包即可 启动后就自动上报指标了 Windows_exporter or node_exporter 端口 9182 Prometheus 配置 windows_exp…