黑盒渗透实战指南:路径遍历漏洞完整挖掘流程
路径遍历(Path Traversal)是Web渗透中最经典、最高频的文件读取漏洞。漏洞本质是攻击者利用可控参数,诱导服务器读取本地任意文件。本文从黑盒实战角度,完整梳理从参数探测、漏洞确认、绕过防御到高价值文件提取的标准化挖掘流程,适合渗透测试人员日常漏洞挖掘与复盘。
阶段一:目标侦察与漏洞端点定位
路径遍历漏洞只出现在具备文件读取、下载、加载、包含功能的接口中。黑盒测试的第一步,就是精准筛选高危参数与请求位置。
1. 高危参数筛选(Burp 历史记录过滤)
在流量记录中重点观察包含文件、路径、加载功能的参数:
文件类:file、filename、doc、image、pdf
路径类:path、folder、dir、root
功能类:load、read、import、download、template
2. 容易被忽略的隐蔽注入点
不只是普通GET参数,所有可控内容都可能存在漏洞:
REST 路由路径:接口路径末尾的文件名可被替换为遍历Payload。
POST 请求体:JSON、表单中的文件名字段。
HTTP 请求头:Cookie、UA、Referer 若被后台用于日志写入或文件读取,同样可以触发漏洞。
阶段二:建立访问基线,确认文件调用逻辑
在漏洞测试前,必须先明确服务器正常响应和异常响应的区别,避免误报、漏报。
1. 正常基线记录
请求合法文件,记录状态码、返回长度、返回类型,作为参照标准。
2. 异常错误诱导
请求一个不存在的文件,观察是否爆出系统级报错。如果出现文件未找到异常、程序报错堆栈,说明当前参数直接参与服务器文件读取逻辑,大概率存在路径遍历风险,同时可能直接泄露网站物理路径。
阶段三:分层Fuzz测试与主流防御绕过方案
确认存在文件调用逻辑后,按照由浅入深的顺序测试,逐层绕过WAF与代码过滤。
1. 基础明文遍历测试
使用多层上级目录跳转符,适配未知网站目录深度,系统会自动识别根目录,不会因为层数过多报错。
Linux:../../../../../../etc/passwd
Windows:../../../../../../windows/win.ini
2. 绝对路径绕过相对路径拦截
若网站拦截 ../,直接使用系统绝对路径读取文件,绕过目录跳转限制。
Payload:/etc/passwd、C:/windows/win.ini
3. 单次替换过滤绕过(嵌套绕过)
很多代码只做一次字符替换,清空 ../,不会循环过滤。利用嵌套字符可以重组出新的跳转路径。
Payload:....//....//etc/passwd
4. 编码差异绕过WAF
网关、WAF解码一次、后端代码再解码一次,双重解码会导致特征失效。
单次编码、双重编码、特殊Unicode编码,均可绕过常规字符拦截。
5. 白名单校验绕过
前缀校验绕过:保留合法目录前缀,后面拼接目录跳转逃逸。
后缀校验绕过:利用空字符截断,后端校验后缀合法,实际读取敏感系统文件。
Payload:../../../etc/passwd%00.png
阶段四:漏洞验证与高价值文件提取
漏洞确认不能只看200状态码,需要通过页面特征内容判断,避免误报。
1. 系统文件验证(漏洞确证)
Linux 经典验证文件:/etc/passwd、/etc/issue、/proc/version
Windows 经典验证文件:win.ini、boot.ini
2. 深度利用:读取配置实现提权
漏洞验证成功后,进一步读取网站核心配置文件,获取账号密码、密钥、数据库配置:
Java/Tomcat:读取 web.xml、application.properties
PHP 站点:读取 config.php、wp-config.php
Node 站点:读取 .env 环境配置
服务器高危文件:历史命令记录、SSH私钥,可直接实现服务器横向与权限接管。
总结
路径遍历黑盒挖掘的核心逻辑:找文件功能接口 → 确认文件调用逻辑 → 分层绕过过滤 → 读取系统与配置文件。多数防御仅做简单字符过滤,绕过成本极低。在实战渗透中,该漏洞往往是拿下服务器权限、获取核心凭据的关键入口。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)