# javasec

![GitHub](https://img.shields.io/github/license/Maskhe/javasec) ![](https://img.shields.io/badge/%E5%85%AC%E4%BC%97%E5%8F%B7-%E4%B8%80%E4%B8%AA%E5%AE%89%E5%85%A8%E7%A0%94%E7%A9%B6%E5%91%98-brightgreen)

这是我在学习java安全审计的一些总结，每篇文章可能都不会很长，可能就只是讲一个知识点，但是文章越短，我才越容易坚持下去把这系列文章写完～

本系列文章不求把每个细节都覆盖到，但求把提到的每个知识点用通俗易懂的话阐述出来

文章体系规划(待完善）：

#### JAVA反射机制

[java反射机制](/javasec/1.java-fan-she-ji-zhi.md)

#### JAVA动态代理机制

[java动态代理](/javasec/java-dong-tai-dai-li.md)

#### JAVA序列化与反序列化机制

常见的pop gadgets以及一些反序列化漏洞案例

[java序列化与反序列化](/javasec/2.java-xu-lie-hua-yu-fan-xu-lie-hua.md)

[apache commons-collections中的反序列化利用链](/javasec/3.-apache-commonscollections-zhong-de-fan-xu-lie-hua.md)

[Apache Dubbo反序列化漏洞分析](/javasec/4.apache-dubbo-fan-xu-lie-hua-lou-dong-fen-xi.md)

[log4j的反序列化漏洞分析](/javasec/4.log4j-de-fan-xu-lie-hua.md)

#### IDEA调试技巧

[IDEA调试技巧1](/javasec/5.idea-tiao-shi-ji-qiao-1.md)

[IDEA调试技巧2——远程调试](/javasec/5.idea-tiao-shi-ji-qiao-2-yuan-cheng-tiao-shi.md)

#### RMI基础

[java rmi基础](/javasec/6.java-rmi-ji-chu.md)

#### 攻击RMI的方式

结合自己写的demo以及真实漏洞案例

[攻击rmi的方式](/javasec/7.-gong-ji-rmi-de-fang-shi.md)

#### JNDI注入

几句话讲解原理，再结合几个真实漏洞案例：fastjson、spring的jndi注入案例

[jndi注入](/javasec/8.jndi-zhu-ru.md)

[fastjson-1.2.24反序列化漏洞](/javasec/9.fastjson1.2.24-fan-xu-lie-hua-lou-dong.md)

#### JMX的安全问题

[jmx安全问题](/javasec/10.jmx-an-quan-wen-ti.md)

#### XXE

几种常见的解析xml的jar包，以及他们的漏洞点，防御手法

[XXE之DocumentBuilder](/javasec/14.xxe-zhi-documentbuilder.md)

[XXE之XML解析常用库的使用案例](/javasec/15.xxe-zhi-xml-jie-xi-chang-yong-ku-de-shi-yong-an-li.md)

[XXE之setFeature防御](/javasec/16.xxe-zhi-setfeature-fang-yu.md)

#### JDK中其它的一些反序列化

[XMLDecoder反序列化](/javasec/17.xmldecoder-fan-xu-lie-hua.md)

[Weblogic之XMLDecoder反序列化1（CVE-2017-3506)](/javasec/18.weblogic-zhi-xmldecoder-fan-xu-lie-hua-1cve20173506.md)

#### JAVA表达式安全问题

#### SQL注入

#### JWT安全问题

#### Spring框架基础知识

#### Struts2框架基础知识

#### SSRF

主要是各种方法，各个jar包

#### 各大大型应用、类库的漏洞

weblogic系列、spring系列、fastjson系列、jackson系列、solr、jboss、tomcat、struts2....

#### JVM基础

此部分内容虽是基础知识，但是对于漏洞挖掘也许并无多大助益，我在写作的过程中也只挑了我关注的内容，像jvm垃圾收集及调优部分内容就被我舍弃了

[1.Class文件的结构](/javasec/jvmclass-wen-jian-de-jie-gou.md)

[2.类加载机制](/javasec/jvm-lei-jia-zai-ji-zhi.md)

[3.jvm内存区域](/javasec/jvm-nei-cun-qu-yu.md)

[4.hotspot虚拟机对象探秘](/javasec/jvmhotspot-xu-ni-ji-dui-xiang-tan-mi.md)

[5.字节码指令](https://github.com/Esonhugh/javasecx/blob/master/字节码指令.md)

![](/files/Xl0BciDsZ9sypjqM3QXQ)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://esonhugh.gitbook.io/javasec/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
