4-1〔O҉S҉C҉P҉ ◈ 研记〕❘ WEB应用攻击▸目录遍历漏洞-A

    郑重声明: 本文所有安全知识与技术,仅用于探讨、研究及学习,严禁用于违反国家法律法规的非法活动。对于因不当使用相关内容造成的任何损失或法律责任,本人不承担任何责任。 如需转载,请注明出处且不得用于商业盈利。 

    💥👉点赞❤️ 关注🔔 收藏⭐️ 评论💬💥 
    更多文章戳👉
Whoami!-CSDN博客🚀


𖤐 现在,我们渐入佳境了,保持耐心,继续前行 ! 

𖤐 𝓝𝓸𝔀 𝔀𝓮'𝓻𝓮 𝓱𝓲𝓽𝓽𝓲𝓷𝓰 𝓸𝓾𝓻 𝓼𝓽𝓻𝓲𝓭𝓮, 𝓴𝓮𝓮𝓹 𝓹𝓪𝓽𝓲𝓮𝓷𝓽 𝓪𝓷𝓭 𝓴𝓮𝓮𝓹 𝓶𝓸𝓿𝓲𝓷𝓰 𝓯𝓸𝓻𝔀𝓪𝓻𝓭!  


→ 信息收集

→ 漏洞检测

→ 初始立足点▸常见WEB应用攻击▸-----我们在这儿~ 🔥🔥🔥

→ 权限提升 

→ 横向移动

→ 报告/分析

→ 教训/修复  

目录

1 常见WEB应用攻击

1.1 目录遍历漏洞

1.1.1 绝对路径 vs 相对路径

1.1.2 目录遍历攻击原理

1.1.3 Linux目录遍历漏洞的识别与利用

1.1.4 Windows目录遍历攻击要点

1.1.4.1 Windows与Linux的差异

1.1.4.2 攻击流程与技术要点

1. 漏洞探测与确认

2. 常见敏感信息路径

3.Windows路径分隔符的利用策略

4. 挑战与难点

1.1.4.3 防御与测试建议

1.1.5 利用URL编码绕过目录遍历过滤机制

1.1.5.1 绕过原理

1.1.5.2 编码变换

1.1.5.3 实践技巧与进阶绕过

1.1.5.4 防御视角

💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬


1 常见WEB应用攻击

Web开发是当前IT领域需求最高的技能之一,然而多种安全漏洞在各类Web应用程序中反复出现。无论使用何种技术栈,这些常见漏洞都可能存在于已部署的应用程序中。主要攻击类型包括:

  • 📁 目录遍历 - 通过操纵文件路径访问未授权资源

  • 📄 文件包含漏洞 - 包含恶意文件执行代码

  • ⬆️ 文件上传攻击漏洞 - 上传恶意文件获取系统访问权

  • ⚡ 命令注入 - 在输入中注入系统命令执行

1.1 目录遍历漏洞

1.1.1 绝对路径 vs 相对路径

绝对路径:

特性说明
完整路径指定包括所有子目录在内的完整文件系统路径
全局引用可以从文件系统的任何位置引用绝对路径
起始标识以斜杠(/)开头,指定从根文件系统开始

示例演示:

# 查看当前目录
pwd
# 输出: /home/kali# 列出根目录下的所有文件和目录
ls /
# 输出包含: etc, home, usr, var等# 使用绝对路径访问/etc/passwd
cat /etc/passwd

相对路径:

特性说明
相对当前位置路径相对于当前工作目录
使用特殊符号使用../返回上级目录
灵活组合可组合多个../访问不同层级

示例演示:

# 列出上级目录(/home)的内容
ls ../# 列出根目录的内容(通过两级上级目录)
ls ../../# 使用相对路径访问/etc/passwd
cat ../../etc/passwd


1.1.2 目录遍历攻击原理

目录遍历(Directory Traversal)是一种常见的Web安全漏洞,攻击者通过构造特殊的路径参数,访问Web根目录以外的敏感文件。当Web应用程序未对用户输入(特别是包含../的路径)进行充分过滤或消毒时,此类攻击便可能发生。

关键机制:

  • Web服务器通常将特定常见的目录(如Linux系统中的/var/www/html)设置为Web根目录。

  • 正常访问:http://example.com/file.html → 服务器解析为/var/www/html/file.html

  • 存在漏洞时:攻击者可通过无限次使用../回溯至根目录,再结合常见Web路径猜测,访问如:SSH私钥、配置文件等敏感资源。

路径遍历技巧

  • 使用多个../:通过添加大量../确保到达根目录

    ../../../../../../etc/passwd

  • 编码特殊字符:使用URL编码绕过简单过滤,在发送http请求的时候进行URL编码,

    %2e%2e%2f = ../
    %2e%2e/ = ../
    ..%2f = ../

防御措施:

  • 输入验证:严格验证用户提供的路径参数

  • 规范化检查:检查路径是否包含../等特殊序列

  • 权限限制:Web服务器进程以最小权限运行

  • 白名单机制:只允许访问特定目录下的文件


1.1.3 Linux目录遍历漏洞的识别与利用

由于篇幅所限,本内容见下一篇:"4-2〔O҉S҉C҉P҉ ◈ 研记〕❘ WEB应用攻击▸目录遍历漏洞-B"


1.1.4 Windows目录遍历攻击要点

1.1.4.1 Windows与Linux的差异
特性Linux 系统Windows 系统
测试文件/etc/passwdC:\Windows\System32\drivers\etc\hosts
路径分隔符正斜杠 (/)反斜杠 (\),URL中需注意编码
提权路径清晰(获取私钥→SSH登录)困难,缺乏直接等效方法
信息收集相对标准高度依赖对系统和应用的深入研究

1.1.4.2 攻击流程与技术要点
1. 漏洞探测与确认
  • 首选测试文件:用C:\Windows\System32\drivers\etc\hosts作为证明漏洞存在的标志文件。

  • 路径遍历符号:Windows 使用 ..\来回溯目录层级。

  • 分隔符尝试:由于 Web 应用程序解析方式的差异,必须同时尝试正斜杠 (../) 和反斜杠 (..\) 或其各种编码形式(如 ..%5c),以最大化成功几率。

2. 常见敏感信息路径

在Windows上成功利用目录遍历漏洞的核心在于精准定位包含敏感信息的文件。这需要攻击者具备丰富的知识储备。

信息类型关键文件路径价值
IIS 服务器配置C:\inetpub\wwwroot\web.config可能包含数据库连接字符串、API 密钥、身份验证凭据等。
应用程序配置文件依赖具体应用(如 appsettings.jsonconfig.ini同上,是获取应用层面敏感信息的主要来源。
IIS 访问日志C:\inetpub\logs\LogFiles\W3SVC1\*.log包含敏感请求数据、管理后台地址、甚至是明文传输的凭证。可用于进一步攻击。
操作系统文件C:\Windows\System32\config\SAM存储用户密码哈希,但通常被系统锁定,无法通过 Web 读取。
其他用户数据C:\Users\[用户名]\Desktop\passwords.txt (示例)依赖管理员疏忽,或存在任意敏感文件。
3.Windows路径分隔符的利用策略

①路径分隔符差异

Windows和Web在路径表示上存在根本性差异,这是Windows目录遍历攻击的特殊之处:

环境标准路径分隔符URL中的表现
Windows 文件系统反斜杠 (\)需要经过编码或转换
Web (RFC 1738)正斜杠 (/)原生支持

这种差异导致了许多Web应用程序的输入过滤逻辑可能存在缺陷,为我们提供了绕过机会。

②经典方法(直接使用反斜杠)

在攻击Windows目标时,不应只依赖一种分隔符,而应尝试多种组合:

示例

http://example.com?file=..\..\..\Windows\System32\drivers\etc\hosts
  • 风险:应用程序可能直接过滤了反斜杠字符。

③URL编码绕过(推荐尝试)

示例

http://example.com?file=..%5c..%5c..%5cWindows%5cSystem32%5chosts
  • %5c 是反斜杠 \ 的URL编码形式

  • 优势:可能绕过简单的字符串过滤逻辑

④混合分隔符攻击(高效绕过)

示例

http://example.com?file=..//..//..//..//windows\\system32\\config\\file.txt
  • 原理:混合使用 ../ 和 ..\,或者混合使用正斜杠和反斜杠

  • 优势

    • 可能绕过不完全的过滤机制,由于 // 只是路径分隔符的另一种表示方式,许多 Web 服务器会忽略它。

    • 不同的路径规范化处理方式可能会意外地使这种混合路径生效

⑤双重编码进阶绕过

示例

http://example.com?file=..%255c..%255cwindows%255csystem32%255chosts
  • %255c 是 %5c 的二次编码(% → %25),即最终代表 \

  • 用于绕过那些进行了多次解码操作的过滤机制

4. 挑战与难点
  • 无法列目录:目录遍历通常只能读取已知路径的文件,无法像本地shell一样列出目录内容来探索,这使得寻找敏感文件变得困难。

  • 权限限制:Web 服务器进程(如 IIS 应用程序池标识)权限较低,许多关键系统文件(如 SAM)无法访问。

  • 间接利用:在 Windows 上获取系统访问权限比 Linux 更困难。成功往往依赖于找到配置文件中的密码、日志中的敏感信息,或与其他漏洞(如文件上传)结合使用,而非直接获得远程 shell。


1.1.4.3 防御与测试建议
  • 防御方

    • 实施严格的输入验证,过滤所有 ../..\ 及其各种编码形式。

    • 将 Web 服务器进程的权限配置为最小权限原则

    • 定期审计服务器上的文件权限,确保敏感配置文件不被 Web 用户读取。

  • 攻击方/测试方

    • 信息收集是关键:首先识别 Web 服务器、开发框架、第三方组件,从而推测可能的配置文件路径。

    • 研究文档:查阅 Microsoft IIS 文档、常见框架(如 ASP.NET, WordPress)的文档,了解其默认配置和日志路径。

    • 双重尝试:在 Payload 中同时使用正斜杠和反斜杠进行测试。

    • 重点目标:优先尝试读取 web.config 和 IIS 日志文件,这最可能快速获得回报的路径。


1.1.5 利用URL编码绕过目录遍历过滤机制

1.1.5.1 绕过原理

      当常规的目录遍历序列(如../)被Web应用程序、服务器或防火墙过滤时,URL编码(百分比编码) 提供了一种有效的绕过手段。其核心原理在于:

  • 过滤机制缺陷:安全防护层通常只检测明文字符(如../),而可能忽略它们的编码表示(如%2e%2e/)。

  • 解码时机差异:编码后的请求在通过过滤器后,会被Web服务器或应用程序本身解码并解释为有效指令。

1.1.5.2 编码变换

通过对关键字符进行编码,可以绕过简单的字符串过滤:

明文字符URL编码作用
. (点)%2e替代目录遍历中的点号
/ (斜杠)%2f替代路径分隔符
\ (反斜杠)%5c在Windows目标中替代路径分隔符

示例Payload

  • 明文:../../../etc/passwd

  • 编码后:%2e%2e%2f%2e%2e%2f%2e%2e%2fetc%2fpasswd

1.1.5.3 实践技巧与进阶绕过
  1. 工具使用:使用curl等命令行工具可以方便地发送编码后的请求,避免浏览器自动解码的问题。

  2. 混合编码:有时仅对部分字符编码(如只编码点号.%2e)或混合使用编码与明文字符(如..%2f)就能成功绕过。

  3. 双重编码:对于更严格的过滤器,可以尝试对已经编码的字符串进行二次编码(例如,将%2e再次编码为%252e),以绕过简单的解码检测逻辑。

  4. 上下文考量:编码的有效性取决于目标服务器/应用如何处理输入。Apache、IIS、Nginx等对请求的解析和解码方式存在差异,需要根据目标环境调整Payload。

1.1.5.4 防御视角
  • 安全开发:应在验证输入之前对输入进行标准化(解码),确保检测逻辑覆盖所有可能的字符表示形式。

  • 纵深防御:部署WAF(Web应用防火墙)时,应配置其不仅检测明文字符,也要能识别常见的编码变体。


💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬

您的支持是我创作最大的动力!

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

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

相关文章

【Linux】归档、压缩、用户管理

1.归档tar(tape archiving program),最早是一个磁盘归档程序。tar命令用于文件的打包(归档),可以将若干😈文件或者目录😈打包成一个文件,既利于文件管理,也方便压缩和文件的网络传输…

9.18 丑数|换根dp

lc854 偶数之间的奇数个数 差值/2 先都变成偶数 把整个范围包起来,反正偶数不做数class Solution {public int countOdds(int low, int high) {if(low % 2 1){--low;}if(high % 2 1){high;}return (high - low) / 2;} }lc17.10摩尔投票class Solution { public:i…

PHP通过命令行调用Ghostscript把pdf转换成图片集

1.使用命令行在服务器上安装Ghostscript,网上教程很多按步骤操作就行。2.使用php执行命令行。/*** 使用Ghostscript命令行转换PDF为图片** param string $pdfUrl PDF文件URL* param string $folderName 存储目录名 (默认值:wenjianming)** return ar…

Spring Boot `@Service` 互相调用全攻略:`@Autowired` vs `@Resource`

Spring Boot Service 互相调用全攻略:Autowired vs Resource 在日常写 Spring Boot 项目的时候,经常会遇到一个问题:多个 Service 之间需要互相调用,到底该怎么写才优雅?用 Autowired?用 Resource&#xf…

c过渡c++应知应会(2)

c过渡c应知应会(2)1.缺省参数2.函数重载3.引用4.inline1.缺省参数 缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数时,如果没有指定实参,则采用该形参的缺省值,否则使用指定的实参,缺…

SSH连接排故排查

文章目录SSH连接排故排查案例1:解决思路排故过程故障模拟SSH连接排故排查 案例1: 你是某在线教育公司的运维工程师,负责维护 3 台应用服务器。今日上午 9 点,开发团队反馈无法通过 SSH 连接 10.1.8.10 服务器部署代码。该服务器…

Python爬虫实战——使用NetNut网页解锁器获取亚马逊电商数据的入门指南

摘要在当今数字化时代,电商数据蕴含着巨大的商业价值。亚马逊作为全球知名的电商平台,其上的商品信息、用户评价等数据对于市场分析、竞品研究等具有重要意义。然而,由于反爬虫机制的存在,直接获取亚马逊电商数据并非易事。本文将…

汽车多核架构中内存系统故障检测的改进算法

摘要随着半导体行业向纳米级方向发展,多核架构已成为主流趋势。然而,这一趋势也使得多核处理器面临诸多挑战,在一定程度上限制了其性能发挥。目前,汽车行业中的混合安全关键型系统普遍采用多核处理器。为满足新兴自动驾驶等级的需…

VastBase数据库Crash后使用gdb收集coredump信息

VastBase数据库Crash后使用gdb收集coredump信息🐘 数据库版本:VastBase G100 V3.0.8检查数据库崩溃后生成的core文件: [vbdbadbhost vastbase]$ ll -h core* -rw------- 1 vbdba vbdba 62G Aug 20 20:02 core-vastbase-162199-2025_08_20_19_…

【LeetCode 每日一题】2749. 得到整数零需要执行的最少操作数

Problem: 2749. 得到整数零需要执行的最少操作数 文章目录整体思路完整代码时空复杂度时间复杂度:O(1)空间复杂度:O(1)整体思路 这段代码旨在解决一个具有数学和位运算性质的问题:给定两个整数 num1 和 num2,找到最小的正整数 k&…

安卓开发工程师中高级知识点 —— 系统底层安全方向

一、AIDL 通信 Android Interface Definition Language 基于 Binder 实现跨进程通信(IPC),核心是通过定义接口生成代理类,屏蔽底层 Binder 通信细节 适用于跨进程服务调用(如系统服务、多App协作)。常见于后…

动环监控系统-机房高效运维

动环监控系统(全称为动力环境监控系统)是机房高效运维的核心工具,通过集成动力、环境、安防、IT设备等模块,结合智能告警、AI分析、3D可视化等技术,实现机房的全方位监控与管理。动力系统监控供电设备:实时…

知微传感Dkam系列3D相机SDK例程篇:CSharp设置相机工作模式

设置3D相机触发模式 写在前面 本人从事机器视觉细分的3D相机行业。编写此系列文章主要目的有: 1、便利他人应用3D相机,本系列文章包含公司所出售相机的SDK的使用例程及详细注释;2、促进行业发展及交流。设置触发模式及API说明 触发模式说明 知…

PHP 常用函数及用法

文章目录PHP 常用函数及用法一、字符串处理函数1. 字符串基础操作2. 字符串查找与替换3. 字符串分割与连接4. 字符串大小写转换5. 字符串格式化二、数组操作函数1. 数组基础操作2. 数组遍历与查找3. 数组修改与排序4. 数组过滤与合并三、文件操作函数1. 文件读写2. 文件和目录信…

yum命令--obsoletes与--allowerasing两者的区别

在 YUM(Yellowdog Updater Modified)包管理工具中,–obsoletes 和 --allowerasing 是两个与包升级 / 安装相关的选项,它们的功能和使用场景有明显区别: 1. --obsoletes(默认启用)作用&#xff1…

Day24_【深度学习(3)—PyTorch使用(1)—张量的创建和类型转换】

一、创建张量1.张量基本创建方式torch.tensor 根据指定数据创建张量 (最重要)torch.Tensor 根据形状创建张量, 其也可用来创建指定数据的张量torch.IntTensor、torch.FloatTensor、torch.DoubleTensor 创建指定类型的张量1.1 torch.tensor# 方式一&…

阿里云图像编辑大模型开发部署

与阿里云一起轻松实现数智化让算力成为公共服务:用大规模的通用计算,帮助客户做从前不能做的事情,做从前做不到的规模。让数据成为生产资料:用数据的实时在线,帮助客户以数据为中心改变生产生活方式创造新的价值。图像…

查看磁盘分区并新建一个分区,挂载分区

linux系统磁盘df -h查看文件系统的磁盘的空间占用情况,常用于快速检查磁盘使用率:df -h-h是说把磁盘空间以G位单位,如果直接用df也是可以的,只不过单位是块,看的不明显du -sh /home/查看/home目录下总共占用了多大的空…

vscode单击暂时预览文件 双击持续打开文件

直接单击文件列表中的文件,会在编辑器中以预览模式打开 文件标签会显示为斜体,表示是预览状态 当您单击另一个文件或开始编辑时,预览文件会自动关闭 在 settings.json 中添加,mac通过cmd,实现。 json {"workbench.editor.ena…

设计模式-桥接模式04

什么是桥接模式? 桥接模式就是把事物的两个方面(两个变化的维度)分开管理,让它们可以分别自由变化,然后通过一个“桥”把它们连接起来。举个生活中的例子 想象一下你在买鞋子: 鞋子有不同的款式&#xff08…