CTF—Java 反编译&XXE&反序列化

CTF—Java 反编译&XXE&反序列化_第1张图片
1.Java 常考点及出题思路:
考点技术:xxe,spel 表达式,反序列化,文件安全,最新框架插件漏洞等。

一般都会设法间接给出源码或相关配置提示文件,间接性源码或直接源码体现等形式,否则单纯黑盒难度比较大。

ctf web信息泄露总结:
参考:https://www.cnblogs.com/xishaonian/p/7628153.html
00x1 .ng 源码泄露
00x2 git 源码泄露
00x3 .DS_Store 文件泄漏
00x4 网站备份压缩文件
00x5 SVN 导致文件泄露
00x6 WEB-INF/web.xml 泄露
00x7 CVS 泄漏

必备知识点:
反编译,基础的 Java 代码认知及审计能力,熟悉相关最新的漏洞,常见漏洞等

2.Java 简单逆向解密-----【buuoReverse】----逆向源码

class文件直接拖到idea反编译一下,分析源码,编写py脚本解密。
CTF—Java 反编译&XXE&反序列化_第2张图片

3.【RoarCTF-2019-easy_java-buuoj】-配置到源码

首先打开题目发现URL可能存在任意文件下载漏洞,但是却无法以get方式下载请求,必须post请求下载,下载/WEB-INF/web.xml文件:
CTF—Java 反编译&XXE&反序列化_第3张图片
WEB-INF 主要包含以下文件或目录:

/WEB-INF/web.xml:Web 应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。
/WEB-INF/classes/:含了站点所有用的 class 文件,包括 servlet class 和非 servlet class,他们不能包含在 .jar 文件中。
/WEB-INF/lib/:存放 web 应用需要的各种 JAR 文件,放置仅在这个应用中要求使用的 jar 文件,如数据库驱动 jar 文件。
/WEB-INF/src/:源码目录,按照包名结构放置各个 java 文件。
/WEB-INF/database.properties:数据库配置文件。

web.xml下载后了解了目录结构,可以在利用任意文件下载,来下载flag文件的class(路径:com/ctf/FlagControllerfilename=/WEB-INF/classes/com/wm/ctf/FlagController)来反编译,之后加密base64得到flag。
CTF—Java 反编译&XXE&反序列化_第4张图片

4.网鼎杯 2020----青龙组----filejava----【ctfhub】

上传图片抓包后发现有filename,由此判断可能存在文件上传漏洞。
CTF—Java 反编译&XXE&反序列化_第5张图片
给到了下载地址,抓包后根据url有filename参数判断可能存在任意文件下载漏洞,抓包发现回显为无法读取,再试试本目录能否读取web.xml文件发现没有该文件,再目录遍历发现可以读取到web.xml文件, 由此根据web.xml的目录结构构造url读取各个文件。
CTF—Java 反编译&XXE&反序列化_第6张图片
下载到各个文件后,根据题目提示审计uploadservelt文件的源码
CTF—Java 反编译&XXE&反序列化_第7张图片
看到了:
CTF—Java 反编译&XXE&反序列化_第8张图片
在另一文件发现 flag 位置,之后审计与搜索关键字、参考文章,判断为xxe漏洞,构造payload:
CTF—Java 反编译&XXE&反序列化_第9张图片
参考:
https://xz.aliyun.com/t/7272
https://www.jianshu.com/p/73cd11d83c30
https://blog.spoock.com/2018/10/23/java-xxe/
https://www.cnblogs.com/tr1ple/p/12522623.html

5.网鼎杯 2020----朱雀组----Web-think_java----直接源码审计

不愧是国家赛事,难度极高,具体可以参考网上文章wp或者视频后半部分讲解。

你可能感兴趣的:(CTF,Java,linux,unix,vim)