会用Skill的人,已经把AI用成自动化系统了

admin 2026-04-18 07:36:14 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文介绍AIAgent系统中的Skill模块,将其定义为整合提示词逻辑、工具调用和任务流程的高级能力封装机制。通过PDF处理技能实例展示渐进式披露的三层架构设计(元数据层、指令层、资源层),并详细说明目录结构规范。文档包含大量可操作的Python代码示例,涵盖PDF文本提取、表格处理、页面旋转等实用功能,体现Skill模块如何将复杂任务转化为可复用的自动化工作流。 综合评分: 82 文章分类: AI安全,安全工具,安全开发,解决方案,安全运营


密码保护“`pythonfrom pypdf import PdfReader, PdfWriter

reader = PdfReader(“input.pdf”)writer = PdfWriter() for page in reader.pages:    writer.add_page(page)

添加密码writer.encrypt(“userpassword”, “ownerpassword”)

with open(“encrypted.pdf”, “wb”) as output:    writer.write(output)“`

快速参考

| 任务 | 最佳工具 | 命令/代码 ||——|———–|————–|| 合并 PDF | pypdf | writer.add_page(page) || 拆分 PDF | pypdf | 每个文件一页 || 提取文本 | pdfplumber | page.extract_text() || 提取表格 | pdfplumber | page.extract_tables() || 创建 PDF | reportlab | Canvas 或 Platypus || 命令行合并 | qpdf | qpdf --empty --pages ... || OCR 扫描的 PDF | pytesseract | 先转换为图像 || 填写 PDF 表单 | pdf-lib 或 pypdf (见 FORMS.md) | 见 FORMS.md |

下一步

  • 有关高级 pypdfium2 用法,请参阅 REFERENCE.md- 有关 JavaScript 库(pdf-lib),请参阅 REFERENCE.md- 如果需要填写 PDF 表单,请遵循 FORMS.md 中的说明- 有关故障排除指南,请参阅 REFERENCE.md
作用逻辑如下(以code Review)为例:

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM60GbXyEvOyV0F0ib8lmES59dY4QRIyWh9ibJlbibeOhpzRVtysQCEicOLemiaJZRqE7vXMApfylNrL966MC57M6yBuOJyJumC6HrCHI/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=1)

##### LAYER 3:主动探索(资源层)

第三层是关联文件/扩展资源,通常存放在技能目录中的其他文件夹(例如:references/、examples/、templates/),第三层与前面两层不同,它不会自动加载,而是由模型在需要时主动探索,例如:当模型在执行任务时发现需要更详细的API文档、示例代码、模板文件时就可以导航到这些关联文件中获取信息

扩展资源示例:

skill/ ├─ SKILL.md ├─ references/ │   ├─ apidocs.md │   ├─ styleguide.md ├─ templates/ │   ├─ reviewtemplate.md │   └─ reporttemplate.md └─ examples/     ├─ example1.md     └─ example2.md

作用逻辑示例:

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM62jHicHthd2yDBeSgicMOtwBKDxVf9OFzvxyjXoSyHamTvqnfQia5EJQErkibvKQt05TktDHLglsmzD9ibbydpmOaicicuttDMkgIxkW0/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=2)

#### 安装方式

##### 本地安装

在本地安装好Claude Code后,我们可以通过一下三种方式来安装Skills:

**方式1:自然语言安装**

我们可以找到需要安装的SKILL的GIthub项目地址,随后在Claude Code中输入命令让其安装即可,例如:

帮我安装skill,项目地址是:https://github.com/anthropics/skills/tree/main/skills/pdf

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM612BkAEhaOPKSche4DTLibr9fwtrQ3Uoia6vrC3UVGsGvDibzfCibZtcvV1n0fcamHFiaV9RDxSMiby9aGXYoygGWhmdCSVM88V1Ifds/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=3)

**方式二:人工手动安装**

Claude Code专门有一个文件夹用来管理所有的Skill文件,我们可以找到需要安装的SKILL的GIthub项目地址,随后下载SKILL包并解压到指定的目录下面即可使用,简易示例如下:

Step 1:下载SKILL到本地

https://skillsmp.com/zh/skills/unix2dos-skills-news-tracker-skill-md

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM60fIMiaWt7RaJnRzIYUE4AAdNZocrg6lTQhPhRYt2F2wh55gib0hpicCD5obzTtXsEteUthiavaOPukXCiblJhHicBLRdT8uxDicnbzCc/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=4)

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM60BbDOu3z8KnQcnsHEXZCLLog79ibFj5HLja9kiaRGgYStiaEX2zM9klAgdOJqCbHTianB7UicGaT1x1iaCWPfmkMuO4eJRWfPFAIfoM/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=5)

Step 2:将SKILLs解压后放到对应的目录(skill需要新建)

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM60E5MYCA4o5wmF4MnA2mt2JZBNS81x9nXK3uhwz499Y5xmh4OOicu5XSCQZfI4pCicUVwBvIsbVibmiaO65Me8PlG4N7OQkVApTlr4/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=6)

Step 3:随后让Claude Code来列出Skills

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM60vwvMicxqvToRaKmf13qoW4xNyDXuHULLZP6g9UxXqp3D7sGyicL84aCtY6aR4WQkShLeCAicYLlYMbzCKrfD2ntHqZgS8cEoupM/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=7)

备注:需要注意SKILL在不同操作系统中存放的路径各不相同

| 存储类型 | Windows路径 | Linux /macOS路径 | Skill 示例路径 | 使用范围 |
| --- | --- | --- | --- | --- |
| 全局Skill(个人级) | `C:\Users\用户名\.claude\skills\` | `~/.claude/skills/` | `~/.claude/skills/<skill-name>/SKILL.md` | 当前用户的所有项目都可以使用 |
| 项目Skill(项目级) | `项目路径\.claude\skills\` | `./.claude/skills/` | `.claude/skills/<skill-name>/SKILL.md` | 只对当前项目生效 |
| 插件Skill(插件级) | `<plugin>\skills\` | `<plugin>/skills/` | `<plugin>/skills/<skill-name>/SKILL.md` | 仅在插件启用的环境中生效 |

**方式三:插件市场安装**

**Claude Code支持插件市场功能,我们可以像应用商店一样浏览和安装Skills,例如:**

插件市场注册/plugin marketplace add anthropics/skills

插件浏览安装/plugin install document-skills@anthropic-agent-skills

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM62iaALBA5FflK7KdFgaBLK4WhChoOUFekJwd2XFVOXHfjq0k7RDCxrYn283Jr5ncR0UEpehB0emR8YDMSWDjNniaIXu7K7b7t3o0/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=8)

备注说明:上面我们使用的是Claude Code的插件机制安装的Skill,而不是直接手动下载Skill到全局或项目目录,所以会将Skill安装到.claude\plugins\marketplaces\anthropic-agent-skills目录中去,例如:

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM61Q3LpCh81fPbFsCpZOGbQyaDu5zm0WI5e63CHvYABl2qqYqa247l1mFwicUJdLxibG4R5MI9sWoNLACSiapTcd1icOxQQp9Miaos1g/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=9)

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM60vyr29XfFEeibWibuzRG34icyH0CxJha5dSuOklxibNNQjZZjzL7yFrf69do4nGYcoSf3BKTgnuhu4I8MO7DPaTS3ibseqlVp5Bpek/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=10)

同时插件市场还提供了npx的安装方式,例如:

npx skills add unix2dos/skills

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM605bAM5SQcrl3rSG0x3Qo6icicWokzdMcoQ9cvft1VH1lcNx8YR5fzF0pNWVvgehC1I0sRM62RkPgffKB4oniaaOiaY8KTLMTibpsNg/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=11)

随后我们选择对应的SKill进行安装:

npx skills add unix2dos/skills

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM62kB6p4F6Foaf43m18hIMUeib3FHLKYEKCAuUN6hypWGJpA2WibWBek2P0cTHWHxiaic4kxCqpBiaoDvVPobmI7g0iaS9zkuXGGErfPY/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=12)

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM61OHgenb9nwshARpLbamu0wAe6a3SnEDzhUtsIicmI1Y9ia0PwkaKzljxp3hmhbcUFTR4CKy9pubPCeld1YtrkPNGiagtBUrlrJkI/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=13)

##### 云端安装

Coze是字节跳出的AI Agent平台,也支持Skills功能,我们可以再其功能界面选择"扣子编程->技能-附件"中来上传对应的SKill技能包并应用

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM62AiaM6JdZ6LRjsEhtsS9vmy1iccvce3v9S9mm6Bfo1ke9zvsOicVwmrcHqjRia8yP2iat5hbkW8dsmxDN87UkONVbCpOR3DibU2jib38/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=14)

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM61E2Z8q7sqvMbWibR0WN2IPm38LbqwPtms9l3oDfZwbqjJsB0GTjaWC3S3Eoh8JVB0MnaOkUTMhrFDMmhPhx0FeTTTF5Gz1rYSE/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=15)

#### 手动创建

手动创建SKILL主要包括以下五个步骤:

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM62LUDjVIGX5WnHjlRRnEceLoLop4koh2ME6VWpncwKGdD3oiahVWDzBc64R2KCl00Y7AnTvJbYlbHEYcePy4AesM9uzmKLPjUZQ/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=16)

##### 目录创建

首先我们需要再本地创建一个SKILL工作目录

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM62cJ4vMuPWsHy0nyiaAdWqHlVpoCvhC8I39rOibk2oK3ibprWAuo5WpAoytGgmicEGaWPrwsGbPNO1RnYNlxcVdoyicOKic0BazRNNkI/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=17)

##### SKILL编写

A、目录初始化

首先我们需要对SKILL目录结构按需进行初始化

标准规范my-skill/├── SKILL.md          # 必需:说明和元数据├── scripts/          # 可选:可执行代码├── references/       # 可选:文档参考资料└── assets/           # 可选:模板、资源

简易示例cve-detail├── SKILL.md          # 必需:核心文件├── references/       # 可选:参考资料└── assets/           # 可选:模板资源

B、核心文件编写

SKILL.md核心文件编写设计要点:

* 前置信息:SKILL名称描述
* 技能介绍:SKILL简短介绍
* 触发机制:SKILL何时使用
* 执行流程:SKILL执行流程
* 输出约束:SKILL输出格式
* 异常处理:SKILL异常处理

编写格式示例:

—name: cve-detail description: xxxx // SKILL简要描述—

xxx // SKILL简短介绍…..

When to Use This Skill // SKILL何时使用……

Implementation Steps // SKILL执行流程

Step 1:xxxStep 2:xxx

Output format // SKILL输出格式

Error Handling // SKILL异常处理

#### 工具创建

工具地址:

https://github.com/anthropics/skills/tree/main/skills/skill-creator

工具介绍:Skill Creator是Anthropic官方提供的一个元技能(Meta Skill),它主要用于创建、优化、评估和测试其他Skills

使用方法:

Step 1:安装skill

npx skills add https://github.com/anthropics/skills –skill skill-creator

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM60zvw3dCacNyCE6U1fwenlcfUvrcVv8gdTHpVtqDyUVzNPiaHzuTmS3qtyff0LRzjswfjG0K4F8UeNEGghAvk4gOFuueeHJvqRU/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=18)

Step 2:创建Skill

随后我们要从一个产品经理的视角触发,将Claude Code当成你的研发同事,告诉他你想要需要做一个什么样子的SKILL?这个SKILL的工作流程是怎么样的?输出是怎么样的?越详细越好

我是SDL安全团队的一员,我们团队日常工作的一环就是对新纰漏的安全漏洞进行应急响应,在应急过程中我们需要快速定位对应的安全漏洞的信息(包括:影响产品、影响版本、利用条件、漏洞代码、是否有公开POC、修复方案),我们希望可以将这个过程通过SKILL来实现自动化,请结合一下的需求描述细节设计一个SKILL: 主要目的:根据用户输入的”CVE/CNVD/CNNVD/GHSA ID”漏洞编号快速定位对应的安全漏洞信息(包括:影响产品、影响版本、利用条件、漏洞代码、是否有公开POC、修复方案)触发条件:用户输入”关键词(情报分析) + CVE/CNVD/CNNVD漏洞编号”执行流程:Step 1: 校验CVE/CNVD/CNNVD漏洞编号Step 2: 根据CVE/CNVD/CNNVD漏洞编号快速定位,可以从官方漏洞情报源快速获取,例如:CVE官方情报查询、CNVD官方情报查询、CNNVD官方情报查询(需要你自行扩展)Step 3: 获取漏洞代码、漏洞POC信息(如有)、漏洞修复方案Step 4: 输出漏洞情报分析报告,格式如下: 漏洞编号:CVE、CNVD、CNNVD编号GHSA ID:GHSA ID编号产品名称:组件名称/软件名称语言生态:JAVA/GO….漏洞描述:漏洞信息描述漏洞类型:RCE/SQLI/XSS等CVSS评分:CVSS评分影响版本:产品受影响版本修复版本:产品漏洞修复版本 官方公告:产品官方针对此漏洞的说明信息 POC/EXP:是否存在:漏洞POC/EXP存在/不存在POC代码:POC/EXP代码工程地址 或者 POC/EXP代码信息 参考信息逐一列举上述信息获取的来源,需要给出对应的地址

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM62aTVRDkSmBMvzxkwZlBWr2uYtoicbfKH50gGvZ3eujPuzEDNrXpqSIHeFhayVzGl9nUpXexJvzhkmKom3eO72BKVlWGEZtfDmk/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=19)

在创建的期间SKILL-create也会根据当前你的这些描述来提出几个关键的问题 和你交互式访谈,一起来完成这个设计,是不是很想一个合作小伙伴

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM61O8ypzDLMkAFCtolcHcibA6aunuPglr06AaYFecOFEKMorIIyLftqa9slYGiboGBKiaerxlLt6LPyvH8qzicheoMrSjpL0CUjvJoU/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=20)

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM62YKoNeqUgqSsicegdMLibq1jcn0w3ecmAlv2Dvc1XtSjssGQRlacjXb1VtwNwdTlBgPYGqxEJRVMrOHNrWPFquUUUiaR7BrlicfPQ/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=21)

随后又开始勤勤恳恳的working了,在工作之中可能需要交互式的去授予一些权限(按需授予哦)

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM61LjjJownhqvHf2sjLwia1zChwGib56UZpOibQXjMlZj5mlt6nNosegPg5spibmH4UiaBMcQPQhp9ZSz1DfAr55wkDXYEj9BfuQwvN4/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=22)

![](https://mmbiz.qpic.cn/mmbiz_png/iaCwmQowIM629txfrqWHEX4bickPdld4F3Xj7CrUc9SedWU5klwKFWSPFmSH3EcPrNqdicHicsCPoKOgeXBpkoRm0DEqhtialOmfVfvaKRIk8WzY/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=23)

生成结果如下:

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM615JlnclzKYIPQEMkJCOG2mKQeLGPZZJPT7UhvkdPqdDNib6icdlPlDrNjJxd2yqB6V7MXnRRsdD4juAFS1Dr5P1CnOiclBg126Kw/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=24)

SKILL.md

—name: vulnerability-intelligencedescription: 根据CVE/CNVD/CNNVD/GHSA漏洞编号快速获取安全漏洞情报分析报告。当用户需要分析安全漏洞、查询漏洞详情、获取漏洞POC或修复方案时使用此技能。特别适用于SDL安全团队应急响应、漏洞分析、安全研究等场景。当用户提到”漏洞分析”、”情报分析”、”CVE详情”、”CNVD查询”等关键词时触发此技能。—

漏洞情报分析技能

概述

本技能用于根据安全漏洞编号(CVE、CNVD、CNNVD、GHSA)快速获取详细的漏洞情报分析报告。技能会自动从多个官方漏洞情报源获取信息,并生成标准格式的分析报告,包含漏洞描述、影响版本、POC信息、修复方案等关键信息。

输入格式

用户应提供漏洞编号,可以包含以下任意格式:- CVE编号:CVE-2024-12345– CNVD编号:CNVD-2024-12345– CNNVD编号:CNNVD-2024-12345– GHSA编号:GHSA-xxxx-xxxx-xxxx 用户可以在编号前添加关键词如”漏洞分析”、”情报分析”、”CVE详情”、”CNVD查询”,例如:- “漏洞分析 CNVD-2024-12345”- “情报分析 GHSA-xxxx-xxxx-xxxx”- “CVE详情  CVE-2025-xxxx”- “CNVD查询 CNVD-2024-12345”

执行流程

步骤1:校验漏洞编号1. 解析用户输入,提取漏洞编号2. 验证编号格式是否符合标准3. 确定漏洞编号类型(CVE/CNVD/CNNVD/GHSA)

步骤2:查询漏洞信息根据漏洞编号类型选择相应的查询源:

CVE编号查询源:1. NVD (National Vulnerability Database): https://nvd.nist.gov/vuln/detail/CVE-{id}2. MITRE CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-{id}3. CVE Details: https://www.cvedetails.com/cve/CVE-{id}/

CNVD编号查询源:1. CNVD官网: https://www.cnvd.org.cn/flaw/show/{id}2. CNNVD官网: https://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD={id}

GHSA编号查询源:1. GitHub Advisory Database: https://github.com/advisories/{id}2. OSV.dev: https://osv.dev/vulnerability/{id}

步骤3:信息提取与解析从查询结果中提取以下信息:1. 漏洞基本信息:标题、描述、发布日期2. 技术详情:漏洞类型、CVSS评分、影响组件3. 影响范围:受影响产品、影响版本4. 修复信息:修复版本、补丁链接5. POC信息:是否有公开POC/EXP、相关链接6. 参考信息:官方公告、安全公告链接

步骤4:生成分析报告必须严格按照以下模板生成中文漏洞情报分析报告,保持完全相同的标题、顺序和格式。不要添加额外的章节或改变结构。

报告模板(必须严格遵循)“`漏洞编号:[CVE/CNVD/CNNVD编号]GHSA ID:[GHSA ID编号]产品名称:[组件名称/软件名称]语言生态:[JAVA/GO/Python等]漏洞描述:[漏洞信息描述]漏洞类型:[RCE/SQLI/XSS等]CVSS评分:[CVSS评分]影响版本:[产品受影响版本]修复版本:[产品漏洞修复版本]

官方公告:[产品官方针对此漏洞的说明信息] POC/EXP:是否存在:[漏洞POC/EXP存在/不存在]POC代码:[POC/EXP代码工程地址 或者 POC/EXP代码信息] 参考信息:1. [来源1名称]: [URL]2. [来源2名称]: [URL]…“`

关键要求:1. 格式严格性:必须使用上述完全相同的标题和顺序2. 信息完整性:尽可能填写所有字段,如果某些信息无法获取,标记为”[信息缺失]”3. 中文输出:所有内容使用中文描述4. 参考信息格式:每个参考源使用数字编号列表,格式为 [来源名称]: [URL]5. POC信息:如果存在公开POC,提供链接或代码片段;如果不存在,明确说明”不存在”6. CVSS评分:如果存在多个CVSS版本,优先使用CVSS 3.x评分7. 版本信息:尽可能准确地提供受影响版本和修复版本范围

工具使用指南

网络查询工具使用WebFetchWebSearch工具从上述源获取信息。重要:查询时应明确要求提取符合报告模板的信息。

bash# 示例:查询CVE信息WebFetch({&nbsp; url: "https://nvd.nist.gov/vuln/detail/CVE-2024-12345",&nbsp; prompt: "提取CVE漏洞的以下信息用于漏洞分析报告:1. 标题/产品名称 2. 详细描述 3. CVSS评分 4. 漏洞类型 5. 受影响版本范围 6. 修复版本 7. 官方公告链接 8. POC信息(如有)"})

报告生成指南必须严格按照以下流程生成报告:

1. 信息收集:从多个源收集漏洞信息2. 信息验证:对比不同源的信息,选择最权威的数据3. 模板填充:将信息填入报告模板,保持原有格式不变4. 格式检查:确保报告完全符合模板结构5. 信息标注:如果某些信息无法获取,使用”[信息缺失]”标注6. 来源记录:为每个信息点记录来源URL 绝对禁止:– 更改模板的标题、顺序或结构- 添加额外的章节或子标题- 使用不同的格式(如Markdown标题、项目符号列表)- 省略模板中的任何字段(除非确实无法获取信息)

信息处理1. 如果网页内容可以直接解析,使用WebFetch的prompt提取结构化信息2. 如果网页需要JavaScript渲染,考虑使用WebSearch获取摘要信息3. 多个源的信息进行对比和验证,选择最权威的信息

报告生成使用标准的Markdown格式生成报告,确保信息完整、格式清晰。

注意事项

1. 信息验证:对于关键信息(如CVSS评分、影响版本),尽量从多个源验证2. 中文支持:CNVD/CNNVD信息优先使用中文源,确保报告为中文3. POC处理:如果存在公开POC,提供链接但不要直接执行或提供完整攻击代码4. 安全边界:仅用于安全研究和应急响应,不得用于非法用途5. 信息时效性:注明信息获取时间,提醒用户漏洞信息可能更新

示例

示例输入1:”分析CVE-2021-44228漏洞”

示例输出1:“`漏洞编号:CVE-2021-44228GHSA ID:GHSA-jfh8-c2jp-5v3q产品名称:Apache Log4j语言生态:JAVA漏洞描述:Apache Log4j2 2.0-beta9到2.15.0版本存在远程代码执行漏洞,攻击者可通过构造恶意日志信息触发JNDI注入,导致远程代码执行。漏洞类型:RCE (Remote Code Execution)CVSS评分:10.0 (Critical)影响版本:Apache Log4j2 2.0-beta9 到 2.15.0 (不包括2.15.0)修复版本:2.16.0 及以上版本

官方公告:Apache官方已发布安全公告,建议用户立即升级到2.16.0或更高版本。 POC/EXP:是否存在:存在POC代码:https://github.com/tangxiaofeng7/CVE-2021-44228-Apache-Log4j-Rce 参考信息:1. NVD: https://nvd.nist.gov/vuln/detail/CVE-2021-442282. MITRE CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-442283. Apache安全公告: https://logging.apache.org/log4j/2.x/security.html4. GitHub Advisory: https://github.com/advisories/GHSA-jfh8-c2jp-5v3q“` 注意:这是一个符合模板格式的正确示例。所有字段都按照模板顺序排列,没有额外的格式或结构变化。

故障处理

1. 查询失败:如果一个源查询失败,尝试其他备用源2. 信息不全:标记缺失信息,并说明哪些源未提供该信息3. 格式错误:如果漏洞编号格式不正确,提示用户并提供正确格式示例4. 网络问题:如果所有源都不可用,建议用户手动查询并提供查询链接

更新记录

– 2024-04-13: 初始版本创建,支持CVE/CNVD/CNNVD/GHSA漏洞查询

scripts/validate\_vuln\_id.py

!/usr/bin/env python3″””漏洞编号验证脚本用于验证CVE、CNVD、CNNVD、GHSA编号格式”””

import reimport sysfrom typing import Dict, Optional, Tuple class VulnerabilityIDValidator:    “””漏洞编号验证器”””     # 正则表达式模式    PATTERNS = {        ‘CVE’: r’^CVE-\d{4}-\d{4,}$’,  # CVE-YYYY-NNNN+        ‘CNVD’: r’^CNVD-\d{4}-\d{5,}$’,  # CNVD-YYYY-NNNNN+        ‘CNNVD’: r’^CNNVD-\d{4}-\d{6,}$’,  # CNNVD-YYYY-NNNNNN+        ‘GHSA’: r’^GHSA-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}$’,  # GHSA-xxxx-xxxx-xxxx    }     @classmethod    def validate(cls, vulnid: str) -> Tuple[bool, Optional[str], Optional[str]]:        “””        验证漏洞编号格式         Args:            vulnid: 漏洞编号字符串         Returns:            Tuple[是否有效, 编号类型, 错误信息]        “””        vulnid = vulnid.strip().upper()         # 检查每种格式        for vulntype, pattern in cls.PATTERNS.items():            if re.match(pattern, vulnid):                return True, vulntype, None         # 如果没有匹配的格式        errormsg = (            f”无效的漏洞编号格式: {vulnid}\n”            f”支持的格式:\n”            f”  – CVE: CVE-YYYY-NNNN+ (例如: CVE-2021-44228)\n”            f”  – CNVD: CNVD-YYYY-NNNNN+ (例如: CNVD-2021-12345)\n”            f”  – CNNVD: CNNVD-YYYY-NNNNNN+ (例如: CNNVD-2021-123456)\n”            f”  – GHSA: GHSA-xxxx-xxxx-xxxx (例如: GHSA-jfh8-c2jp-5v3q)”        )        return False, None, errormsg     @classmethod    def extractfromtext(cls, text: str) -> Optional[str]:        “””        从文本中提取漏洞编号         Args:            text: 包含漏洞编号的文本         Returns:            提取到的漏洞编号,如果没有找到则返回None        “””        # 尝试匹配所有模式        allpatterns = ‘|’.join(cls.PATTERNS.values())        match = re.search(allpatterns, text.upper())         if match:            return match.group(0)        return None     @classmethod    def getqueryurls(cls, vulnid: str, vulntype: str) -> Dict[str, str]:        “””        根据漏洞编号和类型获取查询URL         Args:            vulnid: 漏洞编号            vulntype: 编号类型         Returns:            字典:{源名称: URL}        “””        urls = {}         if vulntype == ‘CVE’:            urls = {                ‘NVD’: f’https://nvd.nist.gov/vuln/detail/{vulnid}’,                ‘MITRE CVE’: f’https://cve.mitre.org/cgi-bin/cvename.cgi?name={vulnid}’,                ‘CVE Details’: f’https://www.cvedetails.com/cve/{vulnid}/’            }        elif vulntype == ‘CNVD’:            # 提取CNVD编号中的数字部分            cnvdnum = vulnid.replace(‘CNVD-‘, ”)            urls = {                ‘CNVD官网’: f’https://www.cnvd.org.cn/flaw/show/{cnvdnum}’,                ‘CNNVD官网’: f’https://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD={vulnid}’            }        elif vulntype == ‘CNNVD’:            urls = {                ‘CNNVD官网’: f’https://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD={vulnid}’            }        elif vulntype == ‘GHSA’:            urls = {                ‘GitHub Advisory Database’: f’https://github.com/advisories/{vulnid}’,                ‘OSV.dev’: f’https://osv.dev/vulnerability/{vulnid}’            }         return urls     @classmethod    def generatereporttemplate(cls, vulnid: str, vulntype: str) -> str:        “””        生成报告模板         Args:            vulnid: 漏洞编号            vulntype: 编号类型         Returns:            报告模板字符串        “””        template = f”””漏洞编号:{vuln_id}GHSA ID:[GHSA ID编号]产品名称:[组件名称/软件名称]语言生态:[JAVA/GO/Python等]漏洞描述:[漏洞信息描述]漏洞类型:[RCE/SQLI/XSS等]CVSS评分:[CVSS评分]影响版本:[产品受影响版本]修复版本:[产品漏洞修复版本] 官方公告:[产品官方针对此漏洞的说明信息] POC/EXP:是否存在:[漏洞POC/EXP存在/不存在]POC代码:[POC/EXP代码工程地址 或者 POC/EXP代码信息] 参考信息:1. [来源1名称]: [URL]2. [来源2名称]: [URL]…”””         return template

def main():    “””命令行入口”””    if len(sys.argv) < 2:        print("用法: python validatevulnid.py <漏洞编号>“)        print(“示例: python validatevulnid.py CVE-2021-44228″)        sys.exit(1)     vulnid = sys.argv[1]    isvalid, vulntype, errormsg = VulnerabilityIDValidator.validate(vulnid)     if isvalid:        print(f”✓ 有效的{vulntype}编号: {vulnid}”)        print(“\n查询URL:”)        urls = VulnerabilityIDValidator.getqueryurls(vulnid, vulntype)        for source, url in urls.items():            print(f”  {source}: {url}”)    else:        print(f”✗ {error_msg}”)        sys.exit(1)

if name == “main“:    main()

随后我们将生成的SKILL放到.claude中并使用Claude来进行漏洞情报分析

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM62JIHWSbY2cDrtSMibyxW940qXs5jML7gsEC6pUTcod3BJEP6pqxt4ytgps6GectB44XVcYhCZVibeicibm1E7khBiaI11zibicfSPt7U/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=25)

随后我们打开CMD并调用Claude Code来查看目前有那些SKILL,确保我们的SKILL又被正确加载进去

![](https://mmbiz.qpic.cn/sz_mmbiz_png/iaCwmQowIM62TD8zdWwYtbpUiahviamVFomNwDSvzUChRibFWQTUQ3kibSsYoKNj327xwSoTEbUf7rX0xoRSJic15Y8gg4dHCgUaARbibnVpyx3Kias/640?wx_fmt=png&from=appmsg&watermark=1#imgIndex=26)

随后进行漏洞情报分析,效果的话勉勉强强,还有很多优化的地方,这里仅是一个示例而已,大家后续有兴趣可以自己尝试一下看看

漏洞分析 CVE-2026-39363 “`

文末小结

本篇文章我们主要介绍了SKILL的目录结构以及其渐进式纰漏设计,随后我们介绍了关于如何手动和借助工具(现有的SKILL创建工具来创建SKILL),在SKILL的设计过程中我们可以将自己当做是产品经理来告诉模型我这个SKILL要解决什么问题,它的工作流程是怎么样子的,它中间需要工具如何去找,它最终输出的结果需要满足什么样子的格式或者条件,后续我们将继续分享关于SKILL在企业应用安全建设方面的一些比较好的设计和落地经验,敬请期待~

推 荐 阅 读

横向移动之RDP&Desktop Session Hija


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:七芒星实验室 Al1ex Al1ex《会用Skill的人,已经把AI用成自动化系统了》

评论:0   参与:  0