记一次 Tomcat 部署 WAR 包拦截绕过的深究

admin 2022年6月17日11:02:48安全文章评论8 views527字阅读1分45秒阅读模式

项目遇到的好玩技巧

0x01 前言

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

记一次 Tomcat 部署 WAR 包拦截绕过的深究

0x02 分析过程

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

记一次 Tomcat 部署 WAR 包拦截绕过的深究


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

记一次 Tomcat 部署 WAR 包拦截绕过的深究

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

记一次 Tomcat 部署 WAR 包拦截绕过的深究

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

记一次 Tomcat 部署 WAR 包拦截绕过的深究

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

记一次 Tomcat 部署 WAR 包拦截绕过的深究

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

记一次 Tomcat 部署 WAR 包拦截绕过的深究

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

------

差几个字凑一下标原创。差几个字凑一下标原创。差几个字凑一下标原创。




记一次 Tomcat 部署 WAR 包拦截绕过的深究

原文始发于微信公众号(白帽100安全攻防实验室):记一次 Tomcat 部署 WAR 包拦截绕过的深究

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月17日11:02:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  记一次 Tomcat 部署 WAR 包拦截绕过的深究 http://cn-sec.com/archives/1123370.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: