GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Y4tacker/JavaSec: a rep for documenting my study, may be from 0 to 0.1

BranchesTags
Open more actions menu

Latest commit

 

History

759 Commits
759 Commits

Folders and files

NameName
Last commit message
Last commit date
0.开发学习/SpringBoot2
0.开发学习/SpringBoot2
 
 
1.基础知识
1.基础知识
 
 
11.Spring
11.Spring
 
 
12.Shiro
12.Shiro
 
 
13.回显相关技术学习
13.回显相关技术学习
 
 
16.漏洞复现
16.漏洞复现
 
 
17.模板引擎+表达式相关/el表达式绕waf的trick
17.模板引擎+表达式相关/el表达式绕waf的trick
 
 
2.反序列化专区
2.反序列化专区
 
 
3.FastJson专区
3.FastJson专区
 
 
4.Weblogic专区
4.Weblogic专区
 
 
5.内存马学习
5.内存马学习
 
 
6.JavaAgent
6.JavaAgent
 
 
7.Struts2专区
7.Struts2专区
 
 
8.关于Tomcat的一些分享
8.关于Tomcat的一些分享
 
 
9.JDBC Attack
9.JDBC Attack
 
 
docs
docs
 
 
其他
其他
 
 
填坑文件夹
填坑文件夹
 
 
比赛反思/2022
比赛反思/2022
 
 
.gitignore
.gitignore
 
 
AGENTS.md
AGENTS.md
 
 
LICENSE
LICENSE
 
 
README.md
README.md
 
 

Repository files navigation

JavaSec

JavaSec

0.For Me

仅仅只是想写给自己看

一个记录我Java安全学习过程的仓库,本仓库不是真正意义上的教学仓库(rep中的内容都是我在平时的一些笔记没有很强逻辑性,内容水平自然也是参差不齐,可能有些对我来说很简单的便忽略不计对其他人来说却是难点,因此作为一个学习目录的话可能会好很多),单纯这是笔者简单记一些笔记,顺便见证自己从0到0.1的过程吧,另外后面如果看到一些好的东西在学习完之后也会贴上链接,少了很多介绍性的东西,以后等厉害了再慢慢补充吧.当然如果感觉还不错的话,师傅们记得给个 Star 呀 ~

@Y4tacker

2021年10月18日,梦的开始

1.基础篇

1.1 Java安全基础技术补充(建议优先掌握)

  • JVM 规范与字节码基础(必修)
    • The Java Virtual Machine Specification (Java SE 17)(官方 JVM 规范,理解类加载、字节码验证、方法调用语义)
    • Java Platform, Standard Edition VM Guide (JDK 17)(JVM 调优与运行机制入门)
  • Java语言与并发内存模型(必修)
    • Java Language Specification(语言行为、反射/泛型/异常等语义来源)
    • JEP 290: Filter Incoming Serialization Data(反序列化防护基础,Java 安全核心知识点)
  • 常见漏洞知识体系(必修)
    • OWASP Top 10: 2021(Web 应用通用风险基线)
    • CWE-502: Deserialization of Untrusted Data(Java 反序列化高频风险权威定义)
    • OWASP: XML External Entity Prevention Cheat Sheet(XXE 防护建议,可对应本仓库 XXE 学习)
  • Java Web 运行时与组件安全(必修)
    • Jakarta Servlet Specification(理解 Filter/Servlet/Listener 生命周期,对内存马与链路分析非常关键)
    • Apache Tomcat Documentation(容器行为与安全配置参考)
  • 依赖与供应链安全(建议尽早)
    • OWASP Dependency-Check(Java 依赖漏洞扫描基础工具)
    • Maven: Introduction to the Dependency Mechanism(理解传递依赖,定位 gadget 来源)
  • 编码防护与审计基线(建议配合实战)
    • OWASP Java Security Cheat Sheet
    • OWASP Code Review Guide(建立 Java 代码审计检查项)

1.2 建议学习顺序(面向 Java 安全)

  1. JVM/JLS 基础 -> 2. 类加载与反射/动态代理 -> 3. 序列化与 JEP 290 -> 4. Servlet/Tomcat 生命周期 -> 5. 常见漏洞体系(OWASP/CWE)-> 6. 依赖与供应链安全。

  • Java反射
    • 补充:通过反射修改用final static修饰的变量
  • Java动态代理
  • JNDI注入
  • 反序列化
  • 类加载器与双亲委派模型
  • 两种实现Java类隔离加载的方法(当然同名目录下也有pdf,防止以后站不在了)
  • ClassLoader(类加载机制)
  • SPI学习
  • JavaAgent
  • Java9模块化特性
  • JMX
    • JMX补充学习这哥们写的不错
  • JDWP远程执行命令
  • Tomcat中容器的pipeline机制(学了以后更好帮助Tomcat-Valve类型内存马理解)
  • ASM学习+Class文件结构了解+JVM一些简单知识
  • Xpath注入
  • JSTL(看菜鸟教程即可)
  • JEP290基础概念
  • Java中的XXE
    • XML 相关漏洞风险研究(关于XML结构方面的介绍可以看看这篇文章,浅显易懂)
    • XML外部实体注入(XXE)攻击方式汇总(关于XXE可以延伸继续看看)
    • No-FTP:高版本JDK如何通过XXE-OOB读取多行文件(Windows)
    • 绕过WAF保护的XXE(一些通用的流量混淆方式)
  • 通过反射扫描被注解修饰的类
  • 低版本下Java文件系统00截断
  • 有趣的XSS之Normalize
  • 红队-java代码审计生命周期(带你简单了解审计)

2.反序列化

很早前学了,后面补上,更多是说一点关键的东西,不会很详细,好吧这里再拓展成反序列化专区好了

如果想系统学习CC链、CB链的话这部分还是推荐p牛的Java安全漫谈,我只是简单写写便于自己复习而已(这部分看我下面的share并不适合新人,过了这么久看过网上很多文章还是觉得P牛写的更适合新人)

2.1 反序列化基础技术补充(建议先补理论再看链子)

  • 官方机制与防护入口(必修)
    • Java Object Serialization Specification(序列化协议、readObject/writeObject、serialVersionUID等基础语义)
    • JEP 290: Filter Incoming Serialization Data(全局/上下文过滤器设计思路)
  • 漏洞定义与防御基线(必修)
    • CWE-502: Deserialization of Untrusted Data(风险定义、常见后果与缓解建议)
    • OWASP Deserialization Cheat Sheet(工程侧防护 checklist)
  • 工具与实践(建议配合靶场)
    • ysoserial(理解 gadget chain 构造与触发路径的经典工具)

2.2 建议学习顺序(反序列化)

  1. 先读序列化规范 -> 2. 理解 ObjectInputStream 触发路径 -> 3. 学 URLDNS/CC 等入门链 -> 4. 学 JEP 290 与白名单过滤 -> 5. 再看特定框架(Hessian/XStream/SnakeYAML)利用。
  • Java 反序列化取经路(强推)
  • Java反序列化之URLDNS
  • CommonsCollections1笔记
  • CommonsCollections2笔记
  • CommonsCollections3笔记
  • CommonsCollections5笔记
  • CommonsCollections6-HashSet笔记
  • CommonsCollections6-HashMap笔记
  • CommonsCollections6-Shiro1.2.4笔记
  • CommonsCollections7笔记
  • CommonCollectionsWithoutChainedTransformer
  • 使用TemplatesImpl改造CommonsCollections2
  • 网上看到的套娃CommonsCollections11
  • CommonsBeanutils1笔记
  • CommonsBeanutils1-Shiro(无CC依赖)
  • FileUpload1-写文件\删除文件
  • C3P0利用链简单分析
  • C3P0Tomcat不出网利用(思路就是之前高版本JNDI注入的思路)
  • 反制Ysoserial0.0.6版本-JRMP
  • SnakeYAML反序列化及可利用Gadget
  • SnakeYAML出网探测Gadget(自己瞎琢磨出来的,不过在1.7以下版本就不行)
  • XStream反序列化学习
  • 解决反序列化serialVesionUID不一致问题(BestMatch:打破双亲委派对jbxz用工具最方便)
  • 自己搞的把ROME利用链长度缩小4400-1320(Base64)
  • JDK7u21
  • AspectJWeaver写文件
  • 反序列化在渗透测试当中值得关注的点
  • UTF-8 Overlong Encoding导致的安全问题(在绕过流量设备上非常有帮助)
  • 构造java探测class反序列化gadget
    • 对URLDNS探测class的补充(为什么本地明明没有这个类却有"DNS解析")
  • 利用Swing构造反序列化SSRF/RCE(JDK CVE-2023-21939)
  • Hessian反序列化
    • Hessian 反序列化知一二

    • hessian-only-jdk利用补充

    • hessian-onlyjdk-jdk11+jdk.jfr.internal.Utils利用补充

3.Fastjson/Jackson专区

可以对比jackson简单学习下,这里我也会简单提一下jackson的一些利用,当然不会很详细,但是会简单列出一些触发原理,而且有些payload是共通的,这里也不以收集各个依赖下利用的payload为主

3.1 JSON反序列化基础技术补充(Fastjson / Jackson)

  • Jackson(必修)
    • Jackson Polymorphic Deserialization CVE Criteria(官方维护者对“可利用条件”的边界说明)
    • Jackson Polymorphic Deserialization Docs(@JsonTypeInfo 与 Default Typing 的行为)
  • Fastjson(必修)
    • fastjson2 官方仓库(默认安全策略与新版本能力演进)
    • fastjson2 features_cn 文档(了解 AutoType 等特性开关,避免误配)
  • 通用风险视角(建议)
    • OWASP API Security Top 10(将 JSON 反序列化问题放到 API 风险体系中看)

3.2 建议学习顺序(Fastjson / Jackson)

  1. 先搞清楚类型系统与自动类型机制 -> 2. 看历史漏洞成因与补丁策略 -> 3. 再学利用链触发细节 -> 4. 最后沉淀黑/白盒识别与加固 checklist。
  • Jackson

    • Jackson的利用触发及小细节(比较鸡肋仅作为学习了解)

    • Jackson原生反序列化Gadgets(实用)

      • Jackson构造过程会触发利用导致中断可通过重写类解决(附上demo学习)
      • 从JSON1链中学习处理JACKSON链的不稳定性(使用JdkDynamicAopProxy让触发更稳定)
  • Fastjson

    • Fastjson基本用法

    • Fastjson1.1.15-1.2.4与BCEL字节码加载

    • Fastjson1.22-1.24反序列化分析之JNDI

    • Fastjson1.22-1.24反序列化分析之TemplateImpl

    • Fastjson1.2.25-1.2.41补丁绕过(用L;绕过、需要开启autotype)

    • Fastjson1.2.25-1.2.42补丁绕过(双写L;绕过、需要开启autotype)

    • Fastjson1.2.25-1.2.43补丁绕过(用左中括号绕过、需要开启autotype)

    • Fastjson1.2.25-1.2.45补丁绕过(mybatis的3.x版本且<3.5.0、需要开启autotype)

    • Fastjson1.2.25-1.2.47绕过

    • Fastjson1.2.48-1.2.68反序列化漏洞

    • Fastjson1.2.68不使用ref引用,不用parseObject触发get方法

    • 关于blackhat2021披露的fastjson1.2.68链的一些细节,防止公众号以后找不到同目录下有备份

    • 2021L3HCTF中关于Fastjson1.2.68的骚操作

    • 一些有趣的Trick

    • fastjson低版本不出网利用(常规很简单的炒陈饭看看就行)

    • FastJson与原生反序列化(一)

    • FastJson与原生反序列化(二)

    • Fastjson低版本不出网利用(常规很简单的炒陈饭看看就行)

    • Fastjson与原生反序列化

  • 其他

    • Java JSON解析特性分析
    • 黑盒判断目标的fastjson版本
    • fastjson探测class/如何判断是fastjson、jackson、gson
    • 记一次 Fastjson Gadget 寻找

4.Weblogic专区(虽然也挖了一堆,暂时不想写)

  • T3协议学习

  • CVE-2015-4852复现分析

  • Weblogic使用ClassLoader和RMI来回显命令执行结果

  • Weblogic SSRF Involving Deserialized JDBC Connection

5.内存马学习专区

  • 基础知识

    • Shell中的幽灵王者—JAVAWEB 内存马 【认知篇】

    • JavaWeb与Tomcat介绍

    • Tomcat-Listener型内存马

    • Tomcat-Filter型内存马

    • Tomcat-Servlet型内存马

    • Tomcat-Valve内存马

    • Tomcat-Upgrade内存马

    • WebSocket代理内存马

    • Executor内存马的实现

    • 浅谈 Java Agent 内存马(网上看到大师傅写的很详细直接搬运工了)

    • SpringBoot内存马学习-通过添加新路由

    • 利用intercetor注入Spring内存马

    • Timer型内存马

    • 看不见的Jsp-Webshell(有点像平时CTF里面php的不死马的效果)

    • 看不见的 Jsp-WebShell 第二式增强之无痕

    • Spring cloud gateway通过SPEL注入内存马

      • Java安全攻防之Spring Cloud Gateway攻击Redis
  • Tools

    • 一款支持高度自定义的 Java 内存马生成工具(配合这个学习别人的内存马构造)

6.JavaAgent学习专区

  • Java Instrument插桩技术初体验
  • PreMain之addTransformer与redefineClasses用法学习
  • AgentMain(JVM启动后动态Instrument)
  • 通过JVMTI实现C/C++的JavaAgent交互

后面因为一些原因打算更系统学习,感觉在这里面直接添加有点臃肿,故开了一个新的repo来记录整个学习阶段,移步RaspLearning

7.Struts2学习专区

一开始不想搞这个是因为很少人用了,后面想了一下可以具体看看struts2当中对OGNL策略如何做提升处理学学别人的绕过(Ps:不教怎么复现搭建环境)

  • Struts2简介与漏洞环境搭建
  • S2-001学习(由于是第一篇我还是分析的比较详细,后面不会重复本篇里面的一些流程内容)
  • S2-002学习(太鸡肋了感觉实战也比较难出现)
  • S2-003学习(比较有趣的一个洞很多小细节)
  • S2-005学习(通过Ognl将上下文_memberAccess中的acceptProperties设为空绕过)
  • S2-007学习(字符串拼接导致OGNL解析)
  • S2-008学习(很鸡肋,稍微有点用的有开启devMode解析任意Ognl)

后面突然觉得调试的过程很无聊我也不感兴趣,更感兴趣的是关于Struts当中Ognl的攻防所以后面更偏向于这方面研究,而不再具体跟踪中间的调用过程

  • S2-015学习(静态方法受限制以及没有setAllowStaticMethodAccess后如何绕过)
  • S2-032学习(清空_memberAccess当中excludedXXX限制通过构造函数调用/使用DefaultMemberAccess覆盖SecurityMemberAccess绕过限制)
  • S2-045学习(通过container获取全局共享的OgnlUtil实例来清除SecurityMemberAccess当中属性的限制)
  • S2-057学习(突破#context被删除限制,从attr作用域获取context对象)
  • S2-066学习(变量覆盖的有趣的例子)
  • S2-067学习

8.关于Tomcat的一些小研究

  • JSTL的可利用点

  • 一次jsp的奇异探索

  • Tomcat写文件新利用思路

  • 两个关于Tomcat的问题

  • Java文件上传大杀器-绕waf(针对commons-fileupload组件)

  • 探寻Tomcat文件上传流量层面绕waf新姿势

  • Tomcat上传.war触发JNDI

  • Servlet的线程安全问题

9.JDBC Attack

关于Make JDBC Attacks Brilliant Again的简单记录,当我们在 JDBC Connection URL可控的情况下,攻击者可以进行什么样的攻击?这部分可以配合探索高版本 JDK 下 JNDI 漏洞的利用方法来进行拓展攻击

  • MySQL-JDBC-反序列化漏洞

    • (补充各版本区别)MySQL JDBC 客户端反序列化漏洞分析
    • 对fnmsd关于detectCustomCollations触发点的版本纠正
  • H2-RCE

  • ModeShape-JNDI

  • IBM DB2-JNDI

  • Apache Derby可触发反序列化

  • SQLite SSRF

  • PostgreSQL-RCE(敌不动我不动,你先发poc我放心)

    • Make JDBC Attacks Brilliant Again 番外篇(作为上面Postgresql的拓展)
  • Hive-RCE

  • 2023BalckHat Asia上补充关于informix-sqli、db2、cloudspanner、avatica、snowflake的利用姿势

  • JDBC利用链结合原生反序列化的思路

  • JDBC Attack URL 绕过合集

10.关于JNDI的整理

因为比较重要单独列出来了

  • Java RMI 攻击由浅入深(深入源码,师傅写的很好)
  • 如何绕过高版本 JDK 的限制进行 JNDI 注入利用
    • (自己写的流程补充)高低版JDK下的JNDI注入绕过流程跟踪
  • 探索高版本 JDK 下 JNDI 漏洞的利用方法
  • JNDI jdk高版本绕过—— Druid

11.Spring

  • 浅谈SpringWeb请求解析过程(很不错的文章把低版本一些绕过的特性基本都提到了)
  • 浅谈Spring与安全约束SecurityConstraint
  • SpirngBoot下结合Tomcat实现无OOB方式下的回显
  • 低版本SpringBoot-SpEL表达式注入漏洞复现分析
  • SpringCloud-SnakeYAML-RCE(高版本不可用)
  • Spring Boot Vulnerability Exploit Check List
  • SSRF to Rce with Jolokia and Mbeans
  • CVE-2022-22947 SpringCloudGateWay 远程代码执行
  • Spring Cloud Function-SPEL(利用面不大)
  • SpringMVC框架任意代码执行漏洞(CVE-2010-1622)分析
  • Spring Beans RCE分析(CVE-2022-22965)(我还是喜欢叫Spring4shell,自己懒得写了,这篇还可以,稍微注意下AccessLogValve这个类WBS)
  • Spring Data MongoDB SpEL表达式注入(CVE-2022-22980)(能看但是有些逻辑还是讲得很混乱总体而已还是好的作为参考即可)
  • SpringBoot全局注册Filter过滤XSS
  • Springboot devtools反序列化(难点在于secret的获取,当然比如有actuator端点暴露情况下就会变得容易)
  • 浅谈Spring中的Controller参数的验证机制(注意Hibernate Validator的正确配置)

12.Shiro

  • Shiro RememberMe 漏洞检测的探索之路(长亭的一些总结非常不错)
  • Shiro另类检测方式
  • 浅谈Shiro执行任意反序列化gadget的方案
  • CVE-2010-3863权限绕过(通过/./admin绕过/admin,/abc/../admin)
  • CVE-2016-6802权限绕过(通过/abc/../y4tacker/admin绕过)
  • Shiro550-TemplatesImpl(CC6-Shiro)
  • CommonsBeanutils与无 commons-collections的Shiro反序列化利用
  • 另类的shiro检验key的检测方式
  • shiro反序列化漏洞攻击拓展面--修改key
  • Tomcat-Header长度受限突破shiro回显
  • Spring下Shiro<1.5.0权限绕过(/unauthorize/)
  • CVE-2020-13933特殊场景权限绕过(通过/unauthorize/%3b)
  • SpringBoot2.3.0下Shiro<=1.5.1权限绕过(通过/aa;/%2e%2e/unauthorize绕过对/unauthorize拦截,当然也可以不用目录穿越/;y4tacker/unauthorize也可以)
  • Spring-Shiro1.5.2 Bypass(通过/unauthorize/a%252Fa绕过对/unauthorize/*的权限限制)
  • 记一次 Shiro 的实战利用(突破限制shiro 550利用payload的长度,这种方式不能很好对抗检测文件落地,其实也可以配合上下文一些无害属性多次set写入加载)

13.回显相关技术学习

  • 通杀漏洞利用回显方法-linux平台
  • linux下java反序列化通杀回显方法的低配版实现
  • Tomcat中一种半通用回显方法
  • 半自动化挖掘request实现多种中间件回显

14. JSPWebshell

  • JSP-Webshells集合(三梦的总结挺全面的利用点)
  • JspWebShell新姿势解读
  • jsp新webshell的探索之旅
  • JspWebshell编码混淆篇(unicode和html实体编码那些就懒得写了技术性不强)

15.Waf

  • Java文件上传大杀器-绕waf(针对commons-fileupload组件)
  • 探寻Java文件上传流量层面waf绕过姿势系列一
  • 探寻Java文件上传流量层面waf绕过姿势系列二
  • Java反序列化数据绕WAF之加大量脏数据 | 回忆飘如雪 (gv7.me)
  • Java反序列化脏数据新姿势-对大师傅的姿势补充(个人的小研究)
  • Fastjson词法引擎绕waf
  • RCE via SSTI on Spring Boot Error Page with Akamai WAF Bypass

16.漏洞复现

  • Apache
    • Apache Commons Configuration 远程代码执行(虽然是配置文件RCE但也有学习意义)
    • Apache Spark shell command injection vulnerability via Spark UI(之前很早前在我的各个知识星球分享了)
    • Apache Commons JXPath 远程代码执行
    • Apache Commons Text 远程代码执行
    • Log4j2-RCE分析
      • Log4j2不出网检测(靠类型转换、危害有限思路值得学习)
    • Apache Flink RCE via jar/plan API Endpoint in JDK8
    • Apache Dubbo 反序列化漏洞(CVE-2023-23638)分析及利用探索
    • Apache Dubbo反序列化漏洞(CVE-2023-23638)完整利用及工程化实践
    • Apache Airflow: Bypass permission verification to view task instances of other dags(CVE-2023-42663)
    • Apache Jackrabbit RMI 远程代码执行漏洞分析(CVE-2023-37895)(这个漏洞适合了解RMI攻击的基础)
    • Apache ActiveMQ Jolokia远程代码执行不依赖JDK打法
    • Apache OFBiz
      • Apache OFBiz漏洞 CVE-2023-49070 的前世今生(非常详细)
      • Apache OFBiz未授权命令执行浅析(CVE-2023-51467)
  • Oracle
    • Oracle E-Business Suite Unauthenticated RCE
    • Exploiting an Order of Operations Bug to Achieve RCE in Oracle Opera
    • Oracle Access Manager Pre-Auth RCE (CVE-2021–35587 Analysis)
  • Spring
    • Spring-Kafka-POC-CVE-2023-34040
  • Nacos
    • Aliababa Nacos hessian JRaft反序列化(文章里提到的只能打一次有误,后经过研究可以打多次)
      • Nacos 多次打非完美方案(这人也没完全考虑到容错,但是网上暂时只有这人的,实际上在构建WriteRequest缺少setOperation)(慎用!别把别人打崩了!)
  • Adobe
    • CVE-2023-29298: Adobe ColdFusion Access Control Bypass
    • Analysis CVE-2023-29300: Adobe ColdFusion Pre-Auth RCE
  • Smartbi
    • 浅析Smartbi逻辑漏洞
    • 浅析Smartbi逻辑漏洞(2)
    • 浅析Smartbi逻辑漏洞(3)
  • CrushFTP
    • CrushFTP Unauthenticated Remote Code Execution(CVE-2023-43177)
    • 浅析CrushFTP之VFS逃逸
    • CrushFTP Unauthenticated Remote Code Execution(CVE-2024-4040)
    • CrushFTP后利用提权分析(CVE-2024-4040)
  • Others
    • HtmlUnit-RCE
    • openfire鉴权绕过漏洞原理解析(主要是学习jetty对%u002e请求的解析支持)
    • Metabase-Pre auth RCE
    • Ivanti Sentry Authentication Bypass
    • 浅析GeoServer property 表达式注入代码执行(CVE-2024-36401)
    • UNAUTHENTICATED SERVER SIDE REQUEST FORGERY & CRLF INJECTION IN GEOSERVER WMS(CRLF注入的好例子)
    • JetBrains TeamCity 任意代码执行漏洞分析(CVE-2023-42793)
    • JetBrains TeamCity权限绕过(CVE-2024-23917)(这篇文章还讲解了一些容器与SpringBoot的流程知识)
    • SysAid On-Prem Software(CVE-2023-47246)
    • MCMS属性覆盖全版本Bypass分析(又又又是一个属性覆盖带来的漏洞)
    • Atlassian Confluence-Remote Code Execution(CVE-2023-22527)
    • Jenkins文件读取漏洞拾遗(CVE-2024-23897)

17.模板引擎+表达式相关

  • 模板引擎

    • velocity 模板注入

    • freemarker 模板注入

    • pebble模板注入

    • thymeleaf模板注入

    • 国产Jfinal用的Enjoy模板引擎主要研究不出网利用

    • Beetl3.15.0以下模板注入(高版本仍然有办法Rce)

  • 表达式

    • EL表达式

      • 普通EL表达式命令回显的简单研究

      • 一种新型Java一句话木马的实现

      • el表达式绕waf的trick

18.各框架对URI处理的特性及Trick

  • Tomcat URL解析差异性导致的安全问题(网上看到的主要关注HttpServletRequest中几个解析URL的函数这个问题)
  • Tomcat中url解析特性
  • SpringBoot2.3.0以下路由%2e跨目录处理(可用于权限绕过)
  • 网上看到的Jetty的部分解析特性(支持%uxxx)
  • 浅谈JFinal的DenyAccessJsp绕过

19.ASM与JVM学习

  • JAVA虚拟机执行模型(关注引入了栈映射帧,用于加快虚拟机中类验证过程的速度)
  • What is a stack map frame
    • 这里比较有意思的是:Java 1.7引入了此选项以加速类验证。框架分为两部分:变量类型和堆栈类型。第一帧由方法类型描述。在每个GOTO / JUMP调用之后,您需要提供堆栈映射框架的更新描述。为了节省空间,可以使用SAME,APPEND等选项,也可以通过指定变量类型的FULL数组再次描述所有变量。
  • 为什么JVM需要DUP指令

20.议题

  • Hacking FernFlower
    • 议题相关代码

其他分享

  • JMX
    • JMX RMI攻击利用
    • 一次从jmx到rce
    • tomcat-jmxproxy-rce-exp(JMX with AccessLogValve)
  • GadgetInspector源码分析
  • CVE-2021-2471 JDBC-XXE漏洞分析
  • spring-messaging 远程代码执行漏洞分析
  • CVE-2020-9484 Tomcat-RCE漏洞分析报告(备注:三梦师傅的文章,提升了我对Tomcat配置的了解)
  • Java “后反序列化漏洞” 利用思路
  • 关于Servlet的线程安全问题
  • BypassSM
  • Spring Boot FatJar任意写目录漏洞导致Getshell
  • 利用TemplatesImpl执行字节码
  • 为什么补丁都喜欢打在resolveClass
  • Java沙箱绕过
  • 一种普遍存在于java系统的缺陷 - Memory DoS
  • 如何关闭百度的Rasp
  • 漫谈 JEP 290
  • Java Web —— 从内存中Dump JDBC数据库明文密码(还挺好玩的)
  • 如何带依赖打包Jar
  • 一些Java二次反序列化的点(持续收集)
    • 帆软channel接口反序列化漏洞分析(二次反序列化一些实战场景利用)
  • 自己写的OpenRasp分析
  • Apache Unomi 表达式注入攻防
  • JEXL3表达式注入
  • 利用JVMTI实现JAR包加密(还没看很牛逼就是了)
  • 安全同学讲Maven重打包的故事
  • 某软件监控页面RCE漏洞分析(虽然过于简单,但是可以借此了解下OA系统)
  • JDK-Xalan的XSLT整数截断漏洞利用构造
  • 某Cloud系统漏洞分析
  • 任意文件下载漏洞的利用思考(总结非常细!)
  • jdk新入口挖掘(新的toString链)

比赛反思

特地加了一栏吧,希望从比赛当中了解Java相关的东西学习一些新的点!

  • Codegate2022(关键词:绕过开头file协议读文件、xpath注入读系统配置)
  • SUSCTF2022(关键词:绕rasp、fastjson、xxe)
  • D^3CTF2022(关键词:ROME链缩短、Mybatis与Ognl)
  • 虎符CTF2022(关键词:Hessian反序列化、Rome二次反序列化、java.security.SignedObject#getObject、UnixPrintService命令执行、Tabby)
  • MRCTF2022(关键词:Kryo反序列化、Rome二次反序列化、内存马、Bypass SerialKiller黑名单-找替代类)
  • GoogleCTF2022(关键词:Log4j2、Bundle、ReDoS)
  • UIUCTF2022-Spoink(关键词:Pebble最新模板注入Bypass、Spring中无路由上传文件处理)
  • TetCTF2023&Liferay(CVE-2019-16891)(Pre-Auth RCE)

环境

  • 如何远程调试Weblogic
  • 使用idea进行tomcat源码调试
  • 一些国产系统的环境搭建问题

Todolist

  • 解决反序列化serialVesionUID不一致问题--已经拿下
  • Dubbo学习之后开启
  • 无文件落地Agent型内存马植入(Java内存攻击技术漫谈-Rebyond)
  • 自己对所有文件上传框架Trick总结
  • 消化腾讯大师傅写的关于文件上传waf

注意事项

  • 本仓库仅用于合法合规用途,严禁用于违法违规用途。
  • 本工具中所涉及的漏洞均为网上已公开。

优质博客

  • Y4tacker(自己的能不写吗)
  • 三梦
  • su18
  • landgrey
  • 回忆飘如雪

更多

About

a rep for documenting my study, may be from 0 to 0.1

Resources

Readme
Apache-2.0 license

Security policy

Security policy
Activity

Stars

2.3k stars

Watchers

29 watching

Forks

341 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.