[RoarCTF 2019]Easy Java

原理

java的WEB-INF泄露
文件下载

解题过程

进入靶场是一个登录界面,查看页面原代码

发现help按钮是访问/Download?filename=help.docx

但是访问又会报错

试试用post请求访问,发现文件下载下来了,内容为:

这里就不会了,看了wp才知道是java源码泄露问题

WEB-INF是Java的WEB应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。 Tomcat的WEB-INF目录,每个j2ee的web应用部署文件默认包含这个目录。 Nginx在映射静态文件时,把WEB-INF目录映射进去,而又没有做Nginx的相关安全配置(或Nginx自身一些缺陷影响)。从而导致通过Nginx访问到Tomcat的WEB-INF目录(请注意这里,是通过Nginx,而不是Tomcat访问到的,因为上面已经说到,Tomcat是禁止访问这个目录的。)。 WEB-INF 主要包含以下文件或目录: WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则. WEB-INF/database.properties : 数据库配置文件 WEB-INF/classes/ : 一般用来存放Java类文件(.class) WEB-INF/lib/ : 用来存放打包好的库(.jar) WEB-INF/src/ : 用来放源代码(.asp和.php等) 漏洞成因: 通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。 漏洞检测以及利用方法: 通过找到web.xml文件,推断class文件的路径,最后得到class文件,再通过反编译class文件,得到网站源码。 找web.xml: 直接请求/WEB-INF/web.xml或者更换为POST请求

那么我们就用post请求来试试下载web.xml

用post请求/Download filename=/WEB-INF/web.xml


再次请求下载这个class文件

文件内看到一串base64编码,解码后得到flag

参考文章:https://blog.csdn.net/lzu_lfl/article/details/129887663
https://blog.csdn.net/cosmoslin/article/details/121399045


__EOF__

本文作者BEONTHE
本文链接https://www.cnblogs.com/BEONTHE/p/17747829.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:转载请注明来源
声援博主:UP UP UP !!!
posted @   圆弧状态  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示