# OpenRASP

👋Hi There! This is a repository to record my study of Java Security

⭐I'd appreciate you lighting up the star (if you like this repository🙂)

repository: [https://github.com/p4d0rn/Java\_Zoo](https://github.com/p4d0rn/Java_Zoo)

gitbook: [https://p4d0rn.gitbook.io/java](https://p4d0rn.gitbook.io/java)

OpenJDK: https://hg.openjdk.org/jdk8u/jdk8u/jdk/tags

***

## Table of contents

* [About This Book](openrasp)

### 🍖Prerequisites

* 反射
  * [反射基本使用](../prerequisites/fan-she/reflection)
  * [高版本JDK反射绕过](../prerequisites/fan-she/reflection2)
  * [反射调用命令执行](../prerequisites/fan-she/exec)
  * [反射构造HashMap](../prerequisites/fan-she/reflect_hashmap)
  * [方法句柄](../prerequisites/fan-she/methodhandle)
* 类加载
  * [动态加载字节码](../prerequisites/lei-jia-zai/classloader)
  * [双亲委派模型](../prerequisites/lei-jia-zai/parents_delegate)
  * [BCEL](../prerequisites/lei-jia-zai/bcel)
  * [SPI](../prerequisites/lei-jia-zai/spi)
* RMI & JNDI
  * [RPC Intro](../prerequisites/rmi-and-jndi/rpc)
  * [RMI](../prerequisites/rmi-and-jndi/rmi)
  * [JEP 290](../prerequisites/rmi-and-jndi/jep)
  * [JNDI](../prerequisites/rmi-and-jndi/jndi)
* Misc
  * [Unsafe](../prerequisites/misc/unsafe)
  * [代理模式](../prerequisites/misc/proxy)
  * [JMX](../prerequisites/misc/jmx)
  * [JDWP](../prerequisites/misc/jdwp)
  * [JPDA](../prerequisites/misc/jpda)
  * [JVMTI](../prerequisites/misc/jvmti)
  * [JNA](../prerequisites/misc/jna)
  * [Java Security Manager](../prerequisites/misc/securitymanager)

### 👻Serial Journey

* [URLDNS](../serial-journey/urldns)
* [SerialVersionUID](../serial-journey/serialversionuid)
* Commons Collection 🥏
  * [CC1-TransformedMap](../serial-journey/commons-collection/cc1_transformedmap)
  * [CC1-LazyMap](../serial-journey/commons-collection/cc1_lazymap)
  * [CC6](../serial-journey/commons-collection/cc6)
  * [CC3](../serial-journey/commons-collection/cc3)
  * [CC2](../serial-journey/commons-collection/cc2)
* FastJson 🪁
  * [FastJson-Basic Usage](../serial-journey/fastjson/fastjsonbasic)
  * [FastJson-TemplatesImpl](../serial-journey/fastjson/fastjson_templatesimpl)
  * [FastJson-JdbcRowSetImpl](../serial-journey/fastjson/fastjson_jdbcrowsetimpl)
  * [FastJson-BasicDataSource](../prerequisites/lei-jia-zai/bcel)
  * [FastJson-ByPass](https://github.com/p4d0rn/Java_Zoo/blob/main/Deserial/FastJson_ByPass.md)
  * [FastJson与原生反序列化(一)](https://paper.seebug.org/2055/)
  * [FastJson与原生反序列化(二)](https://y4tacker.github.io/2023/04/26/year/2023/4/FastJson%E4%B8%8E%E5%8E%9F%E7%94%9F%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96-%E4%BA%8C/)
  * [Jackson的原生反序列化利用](../serial-journey/fastjson/jackson)
* Other Components
  * [SnakeYaml](../serial-journey/other-components/snakeyaml)
  * [C3P0](../serial-journey/other-components/c3p0)
  * [AspectJWeaver](../serial-journey/other-components/aspectjweaver)
  * [Rome](../serial-journey/other-components/rome)
  * [Spring](../serial-journey/other-components/spring)
  * [Hessian](../serial-journey/other-components/hessian)
  * [Hessian\_Only\_JDK](../serial-journey/other-components/hessian_only_jdk)
  * [Kryo](../serial-journey/other-components/kryo)
  * [Dubbo](../serial-journey/other-components/dubbo)

### 🌵RASP

* [JavaAgent](javaagent)
* [JVM](jvm)
* [ByteCode](bytecode)
* [JNI](jni)
* ASM 🪡
  * [ASM Intro](asm/asm0)
  * [Class Generation](asm/asm1)
  * [Class Transformation](asm/asm2)
* [Rasp防御命令执行](rasp1)
* [OpenRASP](openrasp)

### 🐎Memory Shell

* [Tomcat-Architecture](../memory-shell/tomcat)
* Servlet API
  * [Listener](../memory-shell/servlet-api/listener)
  * [Filter](../memory-shell/servlet-api/filter)
  * [Servlet](../memory-shell/servlet-api/servlet)
* Tomcat-Middlewares
  * [Tomcat-Valve](../memory-shell/tomcat-middlewares/valve)
  * [Tomcat-Executor](../memory-shell/tomcat-middlewares/executor)
  * [Tomcat-Upgrade](../memory-shell/tomcat-middlewares/upgrade)
* [Agent MemShell](../memory-shell/agent)
* [WebSocket](../memory-shell/websocket)
* [内存马查杀](https://blog.csdn.net/SimoSimoSimo/article/details/127700190)
* [IDEA本地调试Tomcat](../memory-shell/de_tomcat)

### ✂️JDBC Attack

* [MySQL JDBC Attack](../jdbc-attack/mysql)
* [H2 JDBC Attack](../jdbc-attack/h2)

### 🎨Templates

* [FreeMarker](../templates/freemarker)
* [Thymeleaf](../templates/thymeleaf)
* [Enjoy](../templates/enjoy)

### 🎏MessageQueue

* [ActiveMQ CNVD-2023-69477](../messagequeue/activemq)
* [AMQP CVE-2023-34050](../messagequeue/amqp)
* [Spring-Kafka CVE-2023-34040](../messagequeue/kafka)
* [RocketMQ CVE-2023-33246](https://github.com/p4d0rn/Java_Zoo/blob/main/MessageQueue/rocketmq.md)

### 🛡️Shiro

* [Shiro Intro](../shiro/shiro)
* [Request URI ByPass](../shiro/cve-2010-3863)
* [Context Path ByPass](../shiro/cve-2016-6802)
* [Remember Me反序列化 CC-Shiro](../shiro/cc-shiro)
* [CB1与无CC依赖的反序列化链](../shiro/cb1)

### 🍺Others

* [Deserialization Twice](../others/desertwice)
* [A New Blazer 4 getter RCE](../others/newgetter)
* [Apache Commons Jxpath](../others/jxpath)
* [El Attack](../others/elattack)
* [Spel Attack](../others/spel)
* [C3P0原生反序列化的JNDI打法](../others/c3p0)
* [Log4j](../others/log4j2)
* Echo Tech
  * [SpringBoot Under Tomcat](../others/echo-tech/sbtomcat)
* CTF 🚩
  * [长城杯-b4bycoffee (ROME反序列化)](../others/ctf/b4bycoffee)
  * [MTCTF2022(CB+Shiro绕过)](../others/ctf/mtctf2022)
  * [CISCN 2023 西南赛区半决赛 (Hessian原生JDK+Kryo反序列化)](../others/ctf/seacloud)
  * [CISCN 2023 初赛 (高版本Commons Collections下其他依赖的利用)](../others/ctf/deserbug)
  * [CISCN 2021 总决赛 ezj4va (AspectJWeaver写字节码文件到classpath)](../others/ctf/ezj4va)
  * [D^3CTF2023 (新的getter+高版本JNDI不出网+Hessian异常toString)](../others/ctf/d3java)
  * [WMCTF2023（CC链花式玩法+盲读文件）](../others/ctf/wmctf2023)
  * [第六届安洵杯网络安全挑战赛（CB PriorityQueue替代+Postgresql JDBC Attack+FreeMarker）](../others/ctf/axb2023)

### 🔍Code Inspector

* CodeQL 🧶
  * Tutorial
    * [Intro](../code-inspector/codeql/tutorial/intro)
    * [Module](../code-inspector/codeql/tutorial/module)
    * [Predicate](../code-inspector/codeql/tutorial/predicate)
    * [Query](../code-inspector/codeql/tutorial/query)
    * [Type](../code-inspector/codeql/tutorial/type)
  * CodeQL 4 Java
    * [Basics](../code-inspector/codeql/codeql-4-java/basics)
    * [DFA](../code-inspector/codeql/codeql-4-java/dfa)
    * [Example](../code-inspector/codeql/codeql-4-java/codeql4java)
* SootUp ✨
  * [Intro](../code-inspector/sootup/intro)
  * [Jimple](../code-inspector/sootup/jimple)
  * [DFA](../code-inspector/sootup/dfa)
  * [CG](../code-inspector/sootup/cg)
* Tabby 🔦
  * [install](../code-inspector/tabby/install)
* Theory
  * Static Analysis
    * [Intro](../code-inspector/theory/static-analysis/intro)
    * [IR & CFG](../code-inspector/theory/static-analysis/ir)
    * [DFA](../code-inspector/theory/static-analysis/dfa)
    * [DFA-Foundation](../code-inspector/theory/static-analysis/dfa-foundation)
    * [Interprocedural Analysis](../code-inspector/theory/static-analysis/inter)
    * [Pointer Analysis](../code-inspector/theory/static-analysis/pta)
    * [Pointer Analysis Foundation](../code-inspector/theory/static-analysis/pta-foundation)
    * [PTA-Context Sensitivity](../code-inspector/theory/static-analysis/pta-cs)
    * [Taint Anlysis](../code-inspector/theory/static-analysis/taint)
    * [Datalog](../code-inspector/theory/static-analysis/datalog)
