BUUCTF在线评测 学习
[RoarCTF 2019]Easy Java1
打开一看一个登录页面
点击Login
好在有个help可以点击,点击后网页是这样的,文件找不到?
打开F12发现是200返回,但却是文件找不到
修改请求方式为POST试一下,竟然可以返回了
该题目是JAVA的,猜测是web工程
那么修改下文件下载,获取下WEB-INF/web.xml ,竟然真的返回了
返回的web.xml内容如下,可以发现有一个FlagController,可能答案就是这个
<?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>
我以为答案可能就是这个访问链接了,结果页面500错误,可以看见
java.lang.NoClassDefFoundError类定义错误的,类加载器在加载该类
java.security.SecureClassLoader.defineClass校验class文件定义就报错了,可能该出题的人也知道该文件会给答题者下载了,可能接下来就是class文件反编译看源码了,然后特意修改了该class文件,这样class不能反编译,简单来说就是该class文件只是一个普通文件,用来混淆答案flag
http://faf88ae4-c967-49fb-a60f-403026c96b9f.node4.buuoj.cn:81/Flag
web工程的classes目录是 WEB-INF/classses/
web.xml配置文件可以看见com.wm.ctf.FlagController ,那么对应目录为
WEB-INF/classes/com/wm/ctf/FlagController.class
send发送后可以看见返回了文件
可以看见一串字符串如下:
ZmxhZ3tlNTgyMmZhYi01ZmJmLTQzNjgtOGZiMS0xZDJlZGU0NjFmMTZ9Cg==
==号结尾的感觉就像base64编码的,使用base64在线编码解码工具
解码后得到答案 flag{e5822fab-5fbf-4368-8fb1-1d2ede461f16}