BUUCTF--[RoarCTF 2019]Easy Java

题目很简单,需要记点新东西

打开这个靶场,可以看到这个界面,很像用SQL注入的那种,但是不行,我们查看网页源代码,看看有没有,其他的信息

可以看到下面有一个链接,这个是登录界面那个help的,点开看一下

我们可以看到一个关键参数filename和路径Download,也就是这个地方我们需要知道一点新东西,是关于java--WEB-INF 目录泄露的,他将与下载漏洞相结合。

我门要访问的就是WEB-INF/web.xml ,这个目录作用就是应用程序部署描述文件 ,他前面WEB-INF这个目录的作用是**核心配置与类文件目录,**这两个文件是无法直接访问的。

通过download这个路径,这个download这个路径就是他留给我们的后门,因为开发者没有做任何的限制,而利用传参的参数是filename

那么接下来就要去下载WEB-INF/web.xml 文件找到下一步的信息,这里我们需要利用post请求,直接get会被拦截。我们利用burp抓包修改

这里一定要加Content-Type: application/x-www-form-urlencoded

改 POST 请求时,只改请求方法不补这个头,服务器直接无视 Body 参数

可以看到我们下载到了WEB-INF/web.xml文件,打开看看

往下看可以看到重要信息FlagController

根据 Java 类文件存储规则,包路径com.wm.ctf对应文件系统路径com/wm/ctf/

由此我们构建最终payload

html 复制代码
filename=/WEB-INF/classes/com/wm/ctf/FlagController.class

服务器上只存 .class 文件,不存 .java 源码, 想拿到代码,必须下载 .class,再反编译回源码

我们将下载好的文件用记事本打开,可以看到一串base64编码

解码的到最终flag

flag{8b4a56a3-cb96-4e50-89eb-72c3d9df9b55}

相关推荐
组合缺一1 小时前
Solon AI Harness 首次发版
java·人工智能·ai·llm·agent·solon
AlunYegeer2 小时前
MyBatis 传参核心:#{ } 与 ${ } 区别详解(避坑+面试重点)
java·mybatis
少许极端2 小时前
算法奇妙屋(四十)-贪心算法学习之路7
java·学习·算法·贪心算法
危笑ioi2 小时前
helm部署skywalking链路追踪 java
java·开发语言·skywalking
夕除2 小时前
Mysql--15
java·数据库·mysql
smileNicky2 小时前
Linux 系列从多节点的catalina 日志中统计设备调用频次
java·linux·服务器
赵丙双3 小时前
spring boot 排除自动配置类的方式和原理
java·spring boot·自动配置
8Qi83 小时前
LeetCode热题100--45.跳跃游戏 II
java·算法·leetcode·贪心算法·编程
bilI LESS3 小时前
Spring Boot接收参数的19种方式
java·spring boot·后端