记一次 Tomcat 部署 WAR 包拦截绕过的深究
2022-6-17 14:44:7 Author: www.secpulse.com(查看原文) 阅读量:24 收藏

项目遇到的好玩技巧

在一次项目中进入 Tomcat 后台,但是部署 WAR 包的时候被拦截,从而引发的一些列源码审计

在 filename 参数添加  字符的时候发现成功部署了应用并且绕过了 WAF 拦截,按照正常逻辑来说,这样的包不应该被成功部署的。

定位到 Tomcat 的上传应用包的 Servlet - HTMLManagerServlet,发现调用了 upload 方法。跟进

发现获取文件名用了getSubmittedFileName 函数,跟进

在getSubmittedFileName函数里面发现使用了HttpParser.unquote函数对文件名进行处理,跟进

通过 Debug 调试得知,当文件名遇到有  符号的时候会自动的忽略该符号获取下一个字符

所以最终的文件名由fu2.war 变成了fu2.war

由于fu2.war在流量中WAF是不认为它是一个危险的后缀,所以也就不拦截了。往后延伸,其实fu2.war 或者demo.w\\\ar等都可以进行绕过,后续看各位师傅的发挥了。

------

本文作者:白帽100安全攻防实验室

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/181277.html


文章来源: https://www.secpulse.com/archives/181277.html
如有侵权请联系:admin#unsafe.sh