郑重声明: 本文所有安全知识与技术,仅用于探讨、研究及学习,严禁用于违反国家法律法规的非法活动。对于因不当使用相关内容造成的任何损失或法律责任,本人不承担任何责任。 如需转载,请注明出处且不得用于商业盈利。
💥👉点赞❤️ 关注🔔 收藏⭐️ 评论💬💥
更多文章戳👉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/passwd | C:\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.json , config.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 实践技巧与进阶绕过
-
工具使用:使用
curl
等命令行工具可以方便地发送编码后的请求,避免浏览器自动解码的问题。 -
混合编码:有时仅对部分字符编码(如只编码点号
.%2e
)或混合使用编码与明文字符(如..%2f
)就能成功绕过。 -
双重编码:对于更严格的过滤器,可以尝试对已经编码的字符串进行二次编码(例如,将
%2e
再次编码为%252e
),以绕过简单的解码检测逻辑。 -
上下文考量:编码的有效性取决于目标服务器/应用如何处理输入。Apache、IIS、Nginx等对请求的解析和解码方式存在差异,需要根据目标环境调整Payload。
1.1.5.4 防御视角
-
安全开发:应在验证输入之前对输入进行标准化(解码),确保检测逻辑覆盖所有可能的字符表示形式。
-
纵深防御:部署WAF(Web应用防火墙)时,应配置其不仅检测明文字符,也要能识别常见的编码变体。
💥创作不易💥求一波暴击👉点赞❤️ 关注🔔 收藏⭐️ 评论💬
您的支持是我创作最大的动力!