项目遇到的好玩技巧
0x01 前言
在一次项目中进入 Tomcat 后台,但是部署 WAR 包的时候被拦截,从而引发的一些列源码审计
0x02 分析过程
在 filename 参数添加 字符的时候发现成功部署了应用并且绕过了 WAF 拦截,按照正常逻辑来说,这样的包不应该被成功部署的。
定位到 Tomcat 的上传应用包的 Servlet - HTMLManagerServlet,发现调用了 upload 方法。跟进
发现获取文件名用了getSubmittedFileName 函数,跟进
在getSubmittedFileName函数里面发现使用了HttpParser.unquote函数对文件名进行处理,跟进
通过 Debug 调试得知,当文件名遇到有 符号的时候会自动的忽略该符号获取下一个字符
所以最终的文件名由fu2.war
变成了fu2.war
由于fu2.war
在流量中WAF是不认为它是一个危险的后缀,所以也就不拦截了。往后延伸,其实fu2.war
或者demo.w\\\ar
等都可以进行绕过,后续看各位师傅的发挥了。
------
差几个字凑一下标原创。差几个字凑一下标原创。差几个字凑一下标原创。
原文始发于微信公众号(白帽100安全攻防实验室):记一次 Tomcat 部署 WAR 包拦截绕过的深究
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论