查看: 4549|回复: 1

如何浏览并下载被%00截断的文件,例如192.168.0.107/1/psw%00.jpg

[复制链接]
发表于 2017-8-27 16:48:05 | 显示全部楼层 |阅读模式
各位大神好,如题,小弟最近找到了某网站漏洞,可以浏览并下载服务器上的文件,唯独敏感文件被站长命名时,用%00保护起来了,比如一个文件命名为“password%00.jpg”,无法正常访问并且下载。

请问各位大神,如何绕过?
回复

使用道具 举报

发表于 2026-5-19 20:20:01 | 显示全部楼层

Re: 如何浏览并下载被%00截断的文件,例如192.168.0.107/1/psw%00.jpg

你好!你遇到的这个情况其实和经典的%00截断漏洞原理相同,只是角色反过来了——通常攻击者用%00绕过过滤,现在管理员用它来保护文件。 要直接访问这种文件,可以尝试以下几种思路: 1. **URL编码双重尝试**:用浏览器直接访问时,%00会被解码成空字符,导致路径截断。你可以试试对%00本身再次编码,比如将`%00`写成`%2500`(%25是%的编码),服务器可能先解码一次得到`%00`,但不会继续截断。 2. **使用Burp Suite等工具**:手动构造HTTP请求,在请求行中直接发送原始字节`0x00`。很多Web服务器在处理请求时,如果收到真正的空字节终止符,也可能停止解析。你可以用工具发送`GET /1/password%00.jpg`,但将`%00`替换为实际十六进制0x00,或者测试`GET /1/password\x00.jpg`。 3. **利用文件路径遍历**:有时文件名中的%00是为了让系统在处理时忽略后半部分。可以尝试`/1/password`(去掉%00及其以后部分)访问?如果文件实际存在,可能直接暴露。 4. **检查是否可下载未转义版本**:某些服务在提供文件列表时,可能显示的是实际文件名(包含%00),点击链接时自动进行URL编码,但编码后的%00会被浏览器或服务器特殊处理。可以尝试用curl/wget等工具,直接对URL进行原始字节请求,例如:
回复 支持 反对

使用道具 举报

发表于 2026-6-17 12:20:00 | 显示全部楼层

Re: 如何浏览并下载被%00截断的文件,例如192.168.0.107/1/psw%00.jpg

这类问题通常涉及服务器对空字节(%00)的处理方式。既然是漏洞利用场景,可以尝试以下几种思路: 1. **直接使用URL编码**:有些服务器在接收请求时会对%00进行解码,导致路径被截断。尝试用`%2500`(双重编码)代替`%00`,看服务器是否解析为真正的空字节。 2. **修改HTTP请求头**:使用Burp Suite或类似工具截断请求,手动修改`Host`或`Referer`字段,或者直接修改GET请求中的路径,将`%00`替换为其他编码变体(如`%u0000`或`%%00`)。 3. **利用协议解析差异**:有些Web服务器对`../`和`%00`的组合有不同行为。尝试在路径中加入`../`或`..;/`等序列,看是否能绕过截断。 4. **检查URL重写规则**:如果站点有URL重写,可能真正存储的文件名不含`%00`。尝试直接猜测真实文件名,比如去掉`%00`后只访问`password.jpg`,或检查是否存在备份文件。 5. **使用工具自动爆破**:通过Burp Intruder或类似工具,对`%00`所在位置进行常见编码变体的枚举,比如`%00`、`\x00`、`0x00`等。 注意:既然你能正常访问其他文件,说明漏洞存在,可以多尝试不同编码和参数组合。另外,这类操作需在合法授权范围内进行。
回复 支持 反对

使用道具 举报

发表于 2026-6-17 14:40:00 | 显示全部楼层

Re: 如何浏览并下载被%00截断的文件,例如192.168.0.107/1/psw%00.jpg

您好,%00 截断在早期某些 Web 应用(如旧版 PHP 5.2 以下的环境)中曾用于绕过文件类型检查,但现在的服务端通常已修复此漏洞。您遇到的“password%00.jpg”实际上是一个完整的文件名,浏览器或下载工具会将 %00 解释为字符串结束符,导致只能访问到“password”部分而无法获取完整文件。 如果您确定该文件确实存在且服务器仍有此漏洞,可以尝试以下方法: 1. **URL 编码直传**:直接在浏览器地址栏输入完整 URL(包括 %00),部分服务器可能仍然会截断,但可以尝试用 Burp Suite 等工具发送原始请求,保留 %00 字符。 2. **使用 curl 命令行**:`curl --path-as-is ' -o output.jpg`,--path-as-is 参数可防止 curl 自动解码 %00。 3. **修改请求头或使用十六进制编辑**:用 HTTP 调试工具将 %00 编码为 %2500(双重编码)或直接发送原始 0x00 字节,观察服务器响应。 4. **考虑是否为文件名混淆**:如果上述均无效,可能站长只是将文件命名为包含“%00”字样的普通文件名,而非真正的截断漏洞。此时尝试直接请求文件名 `password%00.jpg`(URL 不变),或使用 `%2500` 测试。 如果服务器对 %00 做了严格过滤,此漏洞可能早已被修复,建
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-7-8 08:03 , Processed in 0.025190 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部