zoukankan      html  css  js  c++  java
  • [BUUOJ记录] [RoarCTF 2019] Easy Java

    进入题目是一个登录页面,admin@admin888弱口令进去发现没啥东西,然后注意到一个文件下载的点:


    感觉可能存在任意文件读取漏洞,先尝试读取一下Java应用的配置文件WEB-INF/web.xml,直接请求发现Get方式不行,换Post就可以了:
    然后得到文件内容

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
             version="4.0">
    
        <welcome-file-list>
            <welcome-file>Index</welcome-file>
        </welcome-file-list>
    
        <servlet>
            <servlet-name>IndexController</servlet-name>
            <servlet-class>com.wm.ctf.IndexController</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>IndexController</servlet-name>
            <url-pattern>/Index</url-pattern>
        </servlet-mapping>
    
        <servlet>
            <servlet-name>LoginController</servlet-name>
            <servlet-class>com.wm.ctf.LoginController</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>LoginController</servlet-name>
            <url-pattern>/Login</url-pattern>
        </servlet-mapping>
    
        <servlet>
            <servlet-name>DownloadController</servlet-name>
            <servlet-class>com.wm.ctf.DownloadController</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>DownloadController</servlet-name>
            <url-pattern>/Download</url-pattern>
        </servlet-mapping>
    
        <servlet>
            <servlet-name>FlagController</servlet-name>
            <servlet-class>com.wm.ctf.FlagController</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>FlagController</servlet-name>
            <url-pattern>/Flag</url-pattern>
        </servlet-mapping>
    
    </web-app>
    

    顺便补一下Java Web的一些基础常识,引用王叹之师傅的总结,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:数据库配置文件
    

    WEB-INF/web.xml中我们看到有一个com.wm.ctf.FlagController包,然后我们就可以推测其class字节码文件的路径为WEB-INF/classes/com/wm/ctf/FlagController.class,因为Java中包名和类的源文件物理位置有关,包名表示目录结构,其中包名中的点代表子文件夹。
    POST方法读取FlagController类的class字节码文件得到:

    看到这里有一串base64密文,解码就可以得到flag。

    [ * ]博客中转载的文章均已标明出处与来源,若无意产生侵权行为深表歉意,需要删除或更改请联系博主: 2245998470[at]qq.com

  • 相关阅读:
    LODOP、C-LODOP注册号的区别
    Lodop强制分页LODOP.NewPage()和LODOP.NewPageA()
    c-lodop云打印实现手机打印 JS语句打印
    如何取消浏览器护眼色 Lodop打印图片有窗口颜色的边框
    PS中如何提高修改psd图片的效率(自动选择工具)
    Lodop如何打印直线
    Lodop打印控件 如何打印虚线
    Lodop窗口的按钮、权限,隐藏或设置功能不可用
    ArrayList与LinkedList区别
    URLDecoder与URLEncoder
  • 原文地址:https://www.cnblogs.com/yesec/p/15244799.html
Copyright © 2011-2022 走看看