当前位置: 首页 > article >正文

目录遍历漏洞-CVE-2021-41773

目录

简介

原理

例子

Apache路径穿越漏洞

环境搭建

漏洞原理

漏洞利用


简介

目录遍历漏洞(也称为路径遍历漏洞)是一种由于Web服务器或Web应用程序对用户输入的文件名称的安全性验证不足而导致的安全漏洞。

原理

目录遍历漏洞允许攻击者在未授权的状态下读取应用服务上的任意文件,包括应用程序代码和数据、后端系统的凭据以及敏感的操作系统文件等。在某些情况下,攻击者甚至可能能够写入服务器上的任意文件,从而修改应用程序数据或行为,并最终完全控制服务器。就比如说在web服务器上有个模块需要读取文件,读取文件时,攻击者可以输入路径../这样就去了当前所在目录的上一个路径。这样攻击者就可以访问一些危险路径。

例子

Apache路径穿越漏洞

环境搭建

在vulhub靶场中有相关环境

在GitHub中下载vulhub后,直接拉取即可

vulhub:Vulhub - Docker-Compose file for vulnerability environment

在这个文件夹下

使用docker compose up -d拉取

去服务器的8080端口,显示如下图所示证明搭建成功

漏洞原理

在 Apache HTTP Server 2.4.49 版本中,在对用户发送的请求中的路径参数进行规范化时,其使用的 ap_normalize_path() 函数会对路径参数先进行 url 解码,然后判断是否存在 ../ 路径穿越符。

当检测到路径中存在 % 字符时,若其紧跟的两个字符是十六进制字符,则程序会对其进行 url 解码,将其转换成标准字符,如 %2e 会被转换为 . 。若转换后的标准字符为 . ,此时程序会立即判断其后两字符是否为 ./ ,从而判断是否存在未经允许的 ../ 路径穿越行为。

如果路径中存在 %2e./ 形式,程序就会检测到路径穿越符。然而,当出现 .%2e/ 或 %2e%2e/ 形式,程序就不会将其检测为路径穿越符。原因是遍历到第一个 . 字符时,程序检测到其后两字符为 %2 而不是 ./ ,就不会将其判断为 ../ 。因此,攻击者可以使用 .%2e/ 或 %2e%2e/ 绕过程序对路径穿越符的检测,从而读取位于 Apache 服务器 web 目录以外的其他文件,或者读取 web 目录中的脚本文件源码,或者在开启了 cgi 或 cgid 的服务器上执行任意命令。

漏洞利用

使用curl发送payload

首先使用../尝试是否可以,发现不可以这就对应了上面的后端过滤

使用.%2e尝试,成功绕过


http://www.kler.cn/a/412969.html

相关文章:

  • 深入探讨 Redis 持久化机制:原理、配置与优化策略
  • IDEA:配置Serializable class without ‘serialVersionUID’ 找不到
  • docker 安装arm架构mysql8
  • RTR Chaptor10 上
  • AI 助力开发新篇章:云开发 Copilot 深度体验与技术解析
  • Next.js 独立开发教程(八):静态渲染与动态渲染的应用
  • C#基础31-35
  • 极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【一】
  • 『VUE』elementUI dialog的子组件created生命周期不刷新(详细图文注释)
  • 【go】查询某个依赖是否存在于这个代理
  • 【Python TensorFlow】进阶指南(续篇四)
  • 写一个流程,前面的圆点和线,第一个圆上面没有线,最后一个圆下面没有线
  • 初识java(3)
  • 深入理解 MySQL 锁机制:分类、实现与优化
  • 【AIGC】大模型面试高频考点-多模态RAG
  • 除了混合搜索,RAG 还需要哪些基础设施能力
  • 【小白学机器学习37】用numpy计算协方差cov(x,y) 和 皮尔逊相关系数 r(x,y)
  • 微信小程序蓝牙writeBLECharacteristicValue写入数据返回成功后,实际硬件内信息查询未存储?
  • EXISTS 和 IN 的使用方法、特性及查询效率比较
  • 开发中使用UML的流程_05 PIM-1:分析系统流程
  • QChart数据可视化
  • Vue 3 Teleport 教程
  • Epipolar-Free 3D Gaussian Splatting for Generalizable Novel View Synthesis 论文解读
  • 【接口封装】——7、连接并使用 MySQL 数据库
  • 统计词频
  • 深入解析:用Scala验证身份证号码的合法性