From a6e0f8cc3a63622b768c3b46297c66dc8a0a85f0 Mon Sep 17 00:00:00 2001
From: Y4tacker <56486273+Y4tacker@users.noreply.github.com>
Date: Mon, 10 Nov 2025 19:47:01 +0800
Subject: [PATCH 1/4] Update README.md
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add No-FTP:高版本JDK如何通过XXE-OOB读取多行文件(WIndows)
---
README.md | 1 +
1 file changed, 1 insertion(+)
diff --git a/README.md b/README.md
index 87f4e22..7b814d6 100644
--- a/README.md
+++ b/README.md
@@ -38,6 +38,7 @@
- [Java中的XXE](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/Java%E4%B8%AD%E7%9A%84XXE/index.md)
- [XML 相关漏洞风险研究(关于XML结构方面的介绍可以看看这篇文章,浅显易懂)](https://evilpan.com/2024/06/02/xml-vulnerabilities/)
- [XML外部实体注入(XXE)攻击方式汇总(关于XXE可以延伸继续看看)](https://tttang.com/archive/1813/)
+ - [No-FTP:高版本JDK如何通过XXE-OOB读取多行文件(Windows)](https://y4tacker.github.io/2025/11/10/year/2025/11/No-FTP-%E9%AB%98%E7%89%88%E6%9C%ACJDK%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87XXE-OOB%E8%AF%BB%E5%8F%96%E5%A4%9A%E8%A1%8C%E6%96%87%E4%BB%B6/)
- [绕过WAF保护的XXE(一些通用的流量混淆方式)](https://xz.aliyun.com/t/4059?accounttraceid=04ba92e87b2342b9a14daca5812cc52aoxob&time__1311=n4mx0DnDBiitiQo4GNulxU2nD9iBDc70ZAnYD)
- [通过反射扫描被注解修饰的类](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/%E9%80%9A%E8%BF%87%E5%8F%8D%E5%B0%84%E6%89%AB%E6%8F%8F%E8%A2%AB%E6%B3%A8%E8%A7%A3%E4%BF%AE%E9%A5%B0%E7%9A%84%E7%B1%BB/index.md)
- [低版本下Java文件系统00截断](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E4%BD%8E%E7%89%88%E6%9C%AC%E4%B8%8BJava%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F00%E6%88%AA%E6%96%AD/index.md)
From af88f96e0d11ed5c1430f2acd1862760ad34a056 Mon Sep 17 00:00:00 2001
From: Y4tacker <56486273+Y4tacker@users.noreply.github.com>
Date: Wed, 25 Mar 2026 22:19:59 +0800
Subject: [PATCH 2/4] docs: add layered AGENTS governance and docs index
---
.../AGENTS.override.md" | 25 +++++++
AGENTS.md | 74 +++++++++++++++++++
docs/DESIGN.md | 19 +++++
docs/FRONTEND.md | 8 ++
docs/PLANS.md | 16 ++++
docs/PRODUCT_SENSE.md | 15 ++++
docs/QUALITY_SCORE.md | 12 +++
docs/README.md | 27 +++++++
docs/RELIABILITY.md | 16 ++++
docs/SECURITY.md | 13 ++++
10 files changed, 225 insertions(+)
create mode 100644 "16.\346\274\217\346\264\236\345\244\215\347\216\260/AGENTS.override.md"
create mode 100644 AGENTS.md
create mode 100644 docs/DESIGN.md
create mode 100644 docs/FRONTEND.md
create mode 100644 docs/PLANS.md
create mode 100644 docs/PRODUCT_SENSE.md
create mode 100644 docs/QUALITY_SCORE.md
create mode 100644 docs/README.md
create mode 100644 docs/RELIABILITY.md
create mode 100644 docs/SECURITY.md
diff --git "a/16.\346\274\217\346\264\236\345\244\215\347\216\260/AGENTS.override.md" "b/16.\346\274\217\346\264\236\345\244\215\347\216\260/AGENTS.override.md"
new file mode 100644
index 0000000..906e296
--- /dev/null
+++ "b/16.\346\274\217\346\264\236\345\244\215\347\216\260/AGENTS.override.md"
@@ -0,0 +1,25 @@
+# AGENTS.override.md
+
+适用范围:`16.漏洞复现/`
+
+本文件补充根目录 `AGENTS.md`,详细正文见 `docs/DESIGN.md`、`docs/RELIABILITY.md`、`docs/SECURITY.md`。
+这里只写本目录局部规则,不重复全局规范。
+
+## 目录职责
+- 负责按漏洞编号沉淀复现笔记与关键截图。
+- 负责记录该漏洞的环境条件、复现路径与观察结果。
+
+## 不负责内容
+- 不承载仓库级方法论与全局规范(放到 `docs/`)。
+- 不作为通用 payload 字典或无上下文脚本堆放区。
+
+## 局部硬规则
+- 每个漏洞目录至少说明影响组件与版本区间。
+- 复现步骤必须包含前置条件与失败排查线索。
+- 对可能引导误用的内容,必须附合法使用提示。
+- 截图命名与步骤顺序保持一致,便于对照。
+
+## 改动落点
+- 新漏洞复现:优先新建 `16.漏洞复现/CVE-YYYY-NNNNN/`。
+- 既有漏洞补充:优先更新对应 CVE 目录下现有文档。
+- 共性方法论:不要写在本目录,改写到 `docs/`。
diff --git a/AGENTS.md b/AGENTS.md
new file mode 100644
index 0000000..cebc772
--- /dev/null
+++ b/AGENTS.md
@@ -0,0 +1,74 @@
+# AGENTS.md
+
+本文件是 JavaSec 仓库的**全局地图**,不是完整规范正文。
+
+## 仓库目标
+- Java 安全学习与研究笔记沉淀。
+- 以可复现、可检索、可扩展为目标维护知识目录。
+- 面向“人类开发者 + Agent”协作,优先保证改动落在正确层级。
+
+## 规则优先级
+1. 根目录 `AGENTS.md`(全局入口与默认流程)
+2. 目录级 `AGENTS.override.md`(局部差异与落点)
+3. `docs/` 主题文档(详细规则正文)
+
+补充:
+- override 只做补充,不推翻全局方向。
+- 同一条规则只在一个地方定义;其他地方只做摘要与跳转。
+
+## 默认工作流
+1. BDD:先定义要解决的问题与行为边界。
+2. TDD:先写或先明确验证方式,再进行改动。
+3. Implement:最小可行改动,避免跨目录漂移。
+4. Verify:自检链接、结构与可读性,再提交。
+
+## 快速决策
+- 不确定改动放哪里:先看 `docs/DESIGN.md`。
+- 不确定质量门槛:先看 `docs/QUALITY_SCORE.md`。
+- 涉及 exploit / payload / 风险描述:先看 `docs/SECURITY.md`。
+- 涉及稳定性与可复现:先看 `docs/RELIABILITY.md`。
+- 涉及执行计划与拆解:先看 `docs/PLANS.md`。
+
+## docs 主题文档入口
+- 文档总索引:`docs/README.md`
+- 架构边界:`docs/DESIGN.md`
+- 可靠性规则:`docs/RELIABILITY.md`
+- 安全约束:`docs/SECURITY.md`
+- 产品行为:`docs/PRODUCT_SENSE.md`
+- 质量标准:`docs/QUALITY_SCORE.md`
+- 计划管理:`docs/PLANS.md`
+- 前端相关(如有):`docs/FRONTEND.md`
+
+## 目录级 override
+- `16.漏洞复现/AGENTS.override.md`
+
+> 若后续目录出现稳定且重复发生的“局部落错层”问题,再新增 override。
+
+## 任务完成前最少检查
+- 改动是否落在正确目录层级。
+- 是否引入重复规则(与 `docs/` 或其他文档冲突)。
+- 新增链接是否可读、命名是否一致。
+- 涉及复现流程时,是否给出前置条件/版本信息/风险声明。
+- 提交信息是否能说明“改了什么、为什么改”。
+
+## 全局硬规则(少而硬)
+- 先定义验证方式,再动手改内容。
+- 不把目录局部规则写回根文档。
+- 外部引用尽量给出上下文,不仅贴链接。
+- 复现内容必须标注适用范围与合法使用边界。
+- 尽量结构化表达,减少脆弱的口语化约定。
+
+## 文档维护约定
+- 根文档保持短小,控制在快速浏览可读范围。
+- 主题规则写入 `docs/`,避免散落在各子目录。
+- 局部差异写入对应目录 `AGENTS.override.md`。
+- 目录级文档优先说明“负责什么/不负责什么/改动落点”。
+
+## 新增 override 的触发条件
+仅当以下条件明显成立时新增:
+- 该目录有稳定的独有边界。
+- 该目录常见错误可被提前约束。
+- 不写 override 会导致改动频繁落错层。
+
+## 一句话总结
+用根文档做地图、用 `docs/` 承载正文、用 override 记录局部差异。
diff --git a/docs/DESIGN.md b/docs/DESIGN.md
new file mode 100644
index 0000000..4061d21
--- /dev/null
+++ b/docs/DESIGN.md
@@ -0,0 +1,19 @@
+# DESIGN
+
+## 目标
+明确“内容放哪里、为什么放那里”,减少知识漂移。
+
+## 分层边界
+- 根 `AGENTS.md`:导航、优先级、默认流程。
+- `docs/*.md`:全局详细规则正文。
+- `
/AGENTS.override.md`:该目录独有差异。
+
+## 目录落点原则
+- 与具体漏洞复现强绑定的流程:放对应漏洞目录。
+- 与仓库通用方法论相关:放 `docs/`。
+- 与局部目录实践差异相关:放目录 override。
+
+## 反模式
+- 在多个文件重复定义同一规则。
+- 在根文档塞入长篇实现细节。
+- 在局部目录写全局规范。
diff --git a/docs/FRONTEND.md b/docs/FRONTEND.md
new file mode 100644
index 0000000..a846f13
--- /dev/null
+++ b/docs/FRONTEND.md
@@ -0,0 +1,8 @@
+# FRONTEND
+
+当前仓库以前端实现为主的内容较少,本文件作为保留位。
+
+若未来新增前端可视化内容,遵循:
+- 优先清晰展示学习路径与安全边界。
+- 交互说明优先于视觉装饰。
+- 示例默认不连接真实高风险目标。
diff --git a/docs/PLANS.md b/docs/PLANS.md
new file mode 100644
index 0000000..044d644
--- /dev/null
+++ b/docs/PLANS.md
@@ -0,0 +1,16 @@
+# PLANS
+
+## 使用场景
+当任务需要跨多个目录或分阶段推进时,先写计划再实施。
+
+## 推荐模板
+1. 目标:一句话定义交付结果。
+2. 范围:明确包含/不包含。
+3. 里程碑:按可验证节点拆分。
+4. 风险:列出已知不确定性。
+5. 验证:每阶段对应检查动作。
+
+## 执行原则
+- 计划尽量小步快跑。
+- 每次提交与一个里程碑绑定。
+- 完成后回写复盘,沉淀到 `docs/` 或目录文档。
diff --git a/docs/PRODUCT_SENSE.md b/docs/PRODUCT_SENSE.md
new file mode 100644
index 0000000..3802332
--- /dev/null
+++ b/docs/PRODUCT_SENSE.md
@@ -0,0 +1,15 @@
+# PRODUCT_SENSE
+
+## 面向读者体验
+- 默认读者是“有基础但不一定熟悉该点”的学习者。
+- 先给结论,再给原理,最后给复现步骤。
+
+## 内容结构建议
+- 背景(问题是什么)
+- 原理(为什么会发生)
+- 利用/防护(怎么做)
+- 边界(什么情况下不成立)
+
+## 一致性要求
+- 命名风格尽量统一。
+- 避免“只对作者自己可读”的缩写与省略。
diff --git a/docs/QUALITY_SCORE.md b/docs/QUALITY_SCORE.md
new file mode 100644
index 0000000..50d794a
--- /dev/null
+++ b/docs/QUALITY_SCORE.md
@@ -0,0 +1,12 @@
+# QUALITY_SCORE
+
+## 评分维度(提交前自检)
+- 正确性:信息是否可验证。
+- 完整性:是否覆盖前提、步骤、结果、边界。
+- 可读性:结构是否清晰、标题是否可检索。
+- 可维护性:是否减少重复规则与路径漂移。
+
+## 最低通过线
+- 不破坏现有目录结构。
+- 不引入规则冲突。
+- 新增内容有明确归属层级。
diff --git a/docs/README.md b/docs/README.md
new file mode 100644
index 0000000..24ec8e4
--- /dev/null
+++ b/docs/README.md
@@ -0,0 +1,27 @@
+# docs/README.md
+
+本目录是 JavaSec 的规则正文索引(Single Source of Truth)。
+
+## 推荐阅读顺序
+1. `DESIGN.md`:先理解仓库边界与目录落点。
+2. `RELIABILITY.md`:确认复现与记录的稳定性要求。
+3. `SECURITY.md`:了解安全边界与风险表达要求。
+4. `QUALITY_SCORE.md`:按统一标准做自检。
+5. `PLANS.md`:需要分阶段推进时使用。
+6. `PRODUCT_SENSE.md`:面向读者体验与内容行为约束。
+
+## 主题文档
+- `DESIGN.md`:架构边界与信息分层。
+- `RELIABILITY.md`:可复现、可验证、可维护。
+- `SECURITY.md`:合法性、最小披露、风险提示。
+- `PRODUCT_SENSE.md`:学习路径与读者体验。
+- `QUALITY_SCORE.md`:提交前质量评分清单。
+- `PLANS.md`:任务拆解、里程碑与回顾。
+- `FRONTEND.md`:前端相关内容(当前仓库少量使用)。
+
+## 子目录约定
+- `design-docs/`:深度设计附录。
+- `exec-plans/`:执行计划与技术债记录。
+- `generated/`:生成工件与自动化产物。
+- `product-specs/`:规格类文档。
+- `references/`:参考材料、历史记录、外部手册。
diff --git a/docs/RELIABILITY.md b/docs/RELIABILITY.md
new file mode 100644
index 0000000..8bd2989
--- /dev/null
+++ b/docs/RELIABILITY.md
@@ -0,0 +1,16 @@
+# RELIABILITY
+
+## 复现可靠性要求
+- 写明环境前置条件(JDK/中间件/依赖版本)。
+- 写明关键步骤和预期结果。
+- 明确失败路径(常见报错与排查方向)。
+
+## 文档可靠性要求
+- 标题与目录命名稳定,不随意改动。
+- 外链尽量补充摘要,避免“仅链接无上下文”。
+- 历史内容更新时保留迁移说明。
+
+## 提交前检查
+- 路径是否正确。
+- 链接是否有效。
+- 是否引入规则重复或冲突。
diff --git a/docs/SECURITY.md b/docs/SECURITY.md
new file mode 100644
index 0000000..e329de1
--- /dev/null
+++ b/docs/SECURITY.md
@@ -0,0 +1,13 @@
+# SECURITY
+
+## 合法与伦理边界
+- 所有复现与攻击链内容仅用于授权测试与学习研究。
+- 禁止将仓库内容用于未授权目标。
+
+## 内容最小披露原则
+- 给出必要的原理与复现信息,不鼓励无上下文投递 payload。
+- 风险高的内容优先强调防御视角与检测思路。
+
+## 编写约束
+- 标注影响范围、前提条件与限制。
+- 避免夸大“通杀”效果,结论需带约束条件。
From 905a28e527a756974362491c60a5276800f32cbb Mon Sep 17 00:00:00 2001
From: Y4tacker <56486273+Y4tacker@users.noreply.github.com>
Date: Wed, 25 Mar 2026 22:29:46 +0800
Subject: [PATCH 3/4] =?UTF-8?q?docs:=20=E7=A7=BB=E9=99=A4=E5=9F=BA?=
=?UTF-8?q?=E7=A1=80=E7=AF=87=E8=A1=A5=E5=85=85=E8=AF=B4=E6=98=8E=E6=AE=B5?=
=?UTF-8?q?=E8=90=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/README.md b/README.md
index 7b814d6..c07070a 100644
--- a/README.md
+++ b/README.md
@@ -16,6 +16,34 @@
## 1.基础篇
+### 1.1 Java安全基础技术补充(建议优先掌握)
+
+- **JVM 规范与字节码基础(必修)**
+ - [The Java Virtual Machine Specification (Java SE 17)](https://docs.oracle.com/javase/specs/jvms/se17/html/)(官方 JVM 规范,理解类加载、字节码验证、方法调用语义)
+ - [Java Platform, Standard Edition VM Guide (JDK 17)](https://docs.oracle.com/en/java/javase/17/vm/index.html)(JVM 调优与运行机制入门)
+- **Java语言与并发内存模型(必修)**
+ - [Java Language Specification](https://docs.oracle.com/javase/specs/)(语言行为、反射/泛型/异常等语义来源)
+ - [JEP 290: Filter Incoming Serialization Data](https://openjdk.org/jeps/290)(反序列化防护基础,Java 安全核心知识点)
+- **常见漏洞知识体系(必修)**
+ - [OWASP Top 10: 2021](https://owasp.org/Top10/2021/)(Web 应用通用风险基线)
+ - [CWE-502: Deserialization of Untrusted Data](https://cwe.mitre.org/data/definitions/502.html)(Java 反序列化高频风险权威定义)
+ - [OWASP: XML External Entity Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html)(XXE 防护建议,可对应本仓库 XXE 学习)
+- **Java Web 运行时与组件安全(必修)**
+ - [Jakarta Servlet Specification](https://jakarta.ee/specifications/servlet/)(理解 Filter/Servlet/Listener 生命周期,对内存马与链路分析非常关键)
+ - [Apache Tomcat Documentation](https://tomcat.apache.org/tomcat-9.0-doc/)(容器行为与安全配置参考)
+- **依赖与供应链安全(建议尽早)**
+ - [OWASP Dependency-Check](https://owasp.org/www-project-dependency-check/)(Java 依赖漏洞扫描基础工具)
+ - [Maven: Introduction to the Dependency Mechanism](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html)(理解传递依赖,定位 gadget 来源)
+- **编码防护与审计基线(建议配合实战)**
+ - [OWASP Java Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Java_Security_Cheat_Sheet.html)
+ - [OWASP Code Review Guide](https://owasp.org/www-project-code-review-guide/)(建立 Java 代码审计检查项)
+
+### 1.2 建议学习顺序(面向 Java 安全)
+
+1. JVM/JLS 基础 -> 2. 类加载与反射/动态代理 -> 3. 序列化与 JEP 290 -> 4. Servlet/Tomcat 生命周期 -> 5. 常见漏洞体系(OWASP/CWE)-> 6. 依赖与供应链安全。
+
+---
+
- [Java反射](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E5%8F%8D%E5%B0%84/%E5%8F%8D%E5%B0%84.md)
- [补充:通过反射修改用final static修饰的变量](https://github.com/Y4tacker/JavaSec/tree/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E9%80%9A%E8%BF%87%E5%8F%8D%E5%B0%84%E4%BF%AE%E6%94%B9%E7%94%A8final%E4%BF%AE%E9%A5%B0%E7%9A%84%E5%8F%98%E9%87%8F)
- [Java动态代理](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86.md)
From 18c9b75262872ccdb98d85e5722a838a3e2418bc Mon Sep 17 00:00:00 2001
From: Y4tacker <56486273+Y4tacker@users.noreply.github.com>
Date: Wed, 25 Mar 2026 22:40:36 +0800
Subject: [PATCH 4/4] =?UTF-8?q?docs:=20=E7=A7=BB=E9=99=A4Fastjson=E5=AE=89?=
=?UTF-8?q?=E5=85=A8=E5=85=AC=E5=91=8A=E9=93=BE=E6=8E=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
README.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 58 insertions(+)
diff --git a/README.md b/README.md
index 7b814d6..c5e0c44 100644
--- a/README.md
+++ b/README.md
@@ -16,6 +16,34 @@
## 1.基础篇
+### 1.1 Java安全基础技术补充(建议优先掌握)
+
+- **JVM 规范与字节码基础(必修)**
+ - [The Java Virtual Machine Specification (Java SE 17)](https://docs.oracle.com/javase/specs/jvms/se17/html/)(官方 JVM 规范,理解类加载、字节码验证、方法调用语义)
+ - [Java Platform, Standard Edition VM Guide (JDK 17)](https://docs.oracle.com/en/java/javase/17/vm/index.html)(JVM 调优与运行机制入门)
+- **Java语言与并发内存模型(必修)**
+ - [Java Language Specification](https://docs.oracle.com/javase/specs/)(语言行为、反射/泛型/异常等语义来源)
+ - [JEP 290: Filter Incoming Serialization Data](https://openjdk.org/jeps/290)(反序列化防护基础,Java 安全核心知识点)
+- **常见漏洞知识体系(必修)**
+ - [OWASP Top 10: 2021](https://owasp.org/Top10/2021/)(Web 应用通用风险基线)
+ - [CWE-502: Deserialization of Untrusted Data](https://cwe.mitre.org/data/definitions/502.html)(Java 反序列化高频风险权威定义)
+ - [OWASP: XML External Entity Prevention Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html)(XXE 防护建议,可对应本仓库 XXE 学习)
+- **Java Web 运行时与组件安全(必修)**
+ - [Jakarta Servlet Specification](https://jakarta.ee/specifications/servlet/)(理解 Filter/Servlet/Listener 生命周期,对内存马与链路分析非常关键)
+ - [Apache Tomcat Documentation](https://tomcat.apache.org/tomcat-9.0-doc/)(容器行为与安全配置参考)
+- **依赖与供应链安全(建议尽早)**
+ - [OWASP Dependency-Check](https://owasp.org/www-project-dependency-check/)(Java 依赖漏洞扫描基础工具)
+ - [Maven: Introduction to the Dependency Mechanism](https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html)(理解传递依赖,定位 gadget 来源)
+- **编码防护与审计基线(建议配合实战)**
+ - [OWASP Java Security Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Java_Security_Cheat_Sheet.html)
+ - [OWASP Code Review Guide](https://owasp.org/www-project-code-review-guide/)(建立 Java 代码审计检查项)
+
+### 1.2 建议学习顺序(面向 Java 安全)
+
+1. JVM/JLS 基础 -> 2. 类加载与反射/动态代理 -> 3. 序列化与 JEP 290 -> 4. Servlet/Tomcat 生命周期 -> 5. 常见漏洞体系(OWASP/CWE)-> 6. 依赖与供应链安全。
+
+---
+
- [Java反射](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E5%8F%8D%E5%B0%84/%E5%8F%8D%E5%B0%84.md)
- [补充:通过反射修改用final static修饰的变量](https://github.com/Y4tacker/JavaSec/tree/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E9%80%9A%E8%BF%87%E5%8F%8D%E5%B0%84%E4%BF%AE%E6%94%B9%E7%94%A8final%E4%BF%AE%E9%A5%B0%E7%9A%84%E5%8F%98%E9%87%8F)
- [Java动态代理](https://github.com/Y4tacker/JavaSec/blob/main/1.%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86/%E5%8A%A8%E6%80%81%E4%BB%A3%E7%90%86.md)
@@ -51,6 +79,21 @@
如果想系统学习CC链、CB链的话这部分还是推荐p牛的[Java安全漫谈](https://github.com/phith0n/JavaThings),我只是简单写写便于自己复习而已(这部分看我下面的share并不适合新人,过了这么久看过网上很多文章还是觉得P牛写的更适合新人)
+### 2.1 反序列化基础技术补充(建议先补理论再看链子)
+
+- **官方机制与防护入口(必修)**
+ - [Java Object Serialization Specification](https://docs.oracle.com/en/java/javase/22/docs/specs/serialization/index.html)(序列化协议、`readObject/writeObject`、`serialVersionUID`等基础语义)
+ - [JEP 290: Filter Incoming Serialization Data](https://openjdk.org/jeps/290)(全局/上下文过滤器设计思路)
+- **漏洞定义与防御基线(必修)**
+ - [CWE-502: Deserialization of Untrusted Data](https://cwe.mitre.org/data/definitions/502.html)(风险定义、常见后果与缓解建议)
+ - [OWASP Deserialization Cheat Sheet](https://cheatsheetseries.owasp.org/cheatsheets/Deserialization_Cheat_Sheet.html)(工程侧防护 checklist)
+- **工具与实践(建议配合靶场)**
+ - [ysoserial](https://github.com/frohoff/ysoserial)(理解 gadget chain 构造与触发路径的经典工具)
+
+### 2.2 建议学习顺序(反序列化)
+
+1. 先读序列化规范 -> 2. 理解 `ObjectInputStream` 触发路径 -> 3. 学 URLDNS/CC 等入门链 -> 4. 学 JEP 290 与白名单过滤 -> 5. 再看特定框架(Hessian/XStream/SnakeYAML)利用。
+
- [Java 反序列化取经路(强推)](https://su18.org/post/ysuserial/)
- [Java反序列化之URLDNS](https://github.com/Y4tacker/JavaSec/blob/main/%E5%85%B6%E4%BB%96/Java%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B9%8BURLDNS/Java%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E4%B9%8BURLDNS.md)
- [CommonsCollections1笔记](https://github.com/Y4tacker/JavaSec/blob/main/2.反序列化专区/CommonsCollections1/CommonsCollections1.md)
@@ -92,6 +135,21 @@
可以对比jackson简单学习下,这里我也会简单提一下jackson的一些利用,当然不会很详细,但是会简单列出一些触发原理,而且有些payload是共通的,这里也不以收集各个依赖下利用的payload为主
+### 3.1 JSON反序列化基础技术补充(Fastjson / Jackson)
+
+- **Jackson(必修)**
+ - [Jackson Polymorphic Deserialization CVE Criteria](https://github.com/FasterXML/jackson/wiki/Jackson-Polymorphic-Deserialization-CVE-Criteria)(官方维护者对“可利用条件”的边界说明)
+ - [Jackson Polymorphic Deserialization Docs](https://github.com/FasterXML/jackson-docs/wiki/JacksonPolymorphicDeserialization)(`@JsonTypeInfo` 与 Default Typing 的行为)
+- **Fastjson(必修)**
+ - [fastjson2 官方仓库](https://github.com/alibaba/fastjson2)(默认安全策略与新版本能力演进)
+ - [fastjson2 features_cn 文档](https://github.com/alibaba/fastjson2/blob/main/docs/features_cn.md)(了解 AutoType 等特性开关,避免误配)
+- **通用风险视角(建议)**
+ - [OWASP API Security Top 10](https://owasp.org/API-Security/)(将 JSON 反序列化问题放到 API 风险体系中看)
+
+### 3.2 建议学习顺序(Fastjson / Jackson)
+
+1. 先搞清楚类型系统与自动类型机制 -> 2. 看历史漏洞成因与补丁策略 -> 3. 再学利用链触发细节 -> 4. 最后沉淀黑/白盒识别与加固 checklist。
+
- Jackson
- [Jackson的利用触发及小细节(比较鸡肋仅作为学习了解)](https://github.com/Y4tacker/JavaSec/blob/main/3.FastJson%E4%B8%93%E5%8C%BA/Jackson%E7%9A%84%E5%88%A9%E7%94%A8%E8%A7%A6%E5%8F%91/index.md)