[RoarCTF 2019]Easy Java

[RoarCTF 2019]Easy Java

首先进入主页有个登录框,但是底下有个help, 感觉不是很对劲点进去看看,

/Download?filename=help.docx 感觉是一个文件遍历尝试对 filename 进行爆破失败。。。

回显的基本上都是java.io.FileNotFoundException:{爆破的文件名}

换个思路,用POST传参试试 (看了大佬的WP) 发现可以下载文件

那就把javaweb的/WEB-INF/web.xml 下载下来

/WEB-INF/详解

 WEB-INF主要包含一下文件或目录: 
/WEB-INF/web.xml:Web应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。 
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非servlet class,他们不能包含在 .jar文件中 
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件 
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。 
/WEB-INF/database.properties:数据库配置文件

Tips: servlet:Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容

web.xml关键性代码

   <servlet>
        <servlet-name>FlagController</servlet-name>
        <servlet-class>com.wm.ctf.FlagController</servlet-class>
   </servlet>

Tips: Java语言的命名规则就是按照网站域名结构来命名包文件的

com.wm.ctf.FlagController => /com/wm/ctf/FlagController.class

Payload

?filename=/WEB-INF/classes/com/wm/ctf/FlagController.class

JD-GUI反编译一下

base64解码

漏洞成因

漏洞成因:通常一些web应用我们会使用多个web服务器搭配使用,解决其中的一个web服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致web.xml等文件能够被读取。漏洞检测以及利用方法:通过找到web.xml文件,推断class文件的路径,最后直接class文件,在通过反编译class文件,得到网站源码。一般情况,jsp引擎默认都是禁止访问WEB-INF目录的,Nginx 配合Tomcat做均衡负载或集群等情况时,问题原因其实很简单,Nginx不会去考虑配置其他类型引擎(Nginx不是jsp引擎)导致的安全问题而引入到自身的安全规范中来(这样耦合性太高了),修改Nginx配置文件禁止访问WEB-INF目录就好了: location ~ ^/WEB-INF/* { deny all; } 或者return 404; 或者其他!

https://blog.csdn.net/RABCDXB/article/details/115255362

https://blog.csdn.net/m0_63705566/article/details/123214229

posted @ 2023-03-20 15:38  張冰冰  阅读(8)  评论(0编辑  收藏  举报