本 Skill 用于检测业务接口中的安全漏洞,基于语义边界清晰的词汇设计。
Scanned 9/12/2026
Install to Claude Code
npx -y skills add aibot88/sec_skill_store --skill jumbo-wjb-semantic-trap-detector-examples --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Jumbo Wjb Semantic Trap Detector Examples?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/aibot88-jumbo-wjb-semantic-trap-detector-examples)More formats (shields.io, HTML) on the badges page.
# 业务安全漏洞检测 Skill(已修复语义陷阱)
## 概述
本 Skill 用于检测业务接口中的安全漏洞,基于语义边界清晰的词汇设计。
---
## 任务定义
**请检查业务代码中的安全漏洞,只关注漏洞定义文件中列出的漏洞类型。**
---
## 工作流程
### STEP 1: 识别营销接口
通过代码追踪,定位当前接口是否调用营销 RPC 接口。
### STEP 2: 检测参数流向
**追踪**关键参数(campId、prizeId)的来源,验证是否可从外部控制。
### STEP 3: 漏洞判定
**必须**按照以下标准执行:
- 检查是否存在任意发奖漏洞
- 验证是否存在扩展参数注入漏洞
- 列出必须满足的安全要求
### STEP 4: 生成检测报告
**列出**发现的漏洞,输出结构化的检测结果。
---
## 漏洞定义
本 Skill 定义的漏洞包括:
1. **任意发奖漏洞**:攻击者可通过篡改参数获取非法奖品
2. **扩展参数注入漏洞**:额外参数影响业务逻辑
3. **DTO层操作DB对象漏洞**:直接操作数据库对象的漏洞
---
## 输出格式
```json
{
"interface_path": "string",
"is_marketing_interface": "yes|no",
"arbitrary_award_vulnerability": "none|low|medium|high",
"parameter_injection_vulnerability": "none|low|medium|high",
"dto_db_vulnerability": "none|medium",
"vulnerability_details": [
{
"type": "漏洞类型",
"severity": "严重程度",
"evidence": "证据代码片段"
}
]
}
```
---
## 约束条件
**只检测漏洞定义文件中列出的漏洞类型**,其他漏洞类型不做评估,默认无漏洞。
---
## 排除范围(否定清单)
**以下情况不属于本 Skill 检测范围(即使它们在某种意义上也是"问题")**:
### 排除 1:代码质量问题
- 代码逻辑错误(如 && 应为 ||)
- 命名不规范
- 代码风格问题
### 排除 2:通用安全问题
- SQL 注入(不属于业务逻辑漏洞)
- XSS 跨站脚本(不属于业务逻辑漏洞)
- CSRF 跨站请求伪造(不属于业务逻辑漏洞)
### 排除 3:架构设计问题
- 缺少 ACL 权限控制文件
- 缺少限流机制
- 缺少日志记录
### 排除 4:代码不完美情况
- 参数校验不够充分(如 sendOrderIds 未做长度限制)
- 异常处理不够完善
- 注释不够详细
---
## 判定示例
### 示例 1:无漏洞(参数从配置获取)
**代码**:
```java
String campId = configService.getCampId(); // 从配置获取
```
**判定**:无漏洞
**理由**:campId 从配置获取 → 非外部可控 → 任意发奖漏洞不成立
### 示例 2:无漏洞(参数不可遍历)
**代码**:
```java
String sendOrderIds = request.getSendOrderIds(); // 外部可控但不可遍历
```
**判定**:无漏洞
**理由**:sendOrderIds 外部可控但无法遍历其他用户的订单 → 按接口定义无漏洞
### 示例 3:高危漏洞(外部可控 + 可遍历)
**代码**:
```java
String campId = request.getCampId(); // 外部可控
```
**判定**:高危漏洞
**理由**:campId 外部可控 + 可遍历其他活动的 campId → 任意发奖漏洞成立
---
## 反例:容易被误判为漏洞但实际上不是
### 反例 1:参数校验不充分
**代码**:
```java
String sendOrderIds = request.getSendOrderIds();
// 没有做长度限制和格式校验
```
**判定**:不在检测范围 → 默认无漏洞
**原因**:参数校验充分性不属于本 Skill 定义的漏洞类型
### 反例 2:缺少 ACL
**代码**:
```java
// 没有 @RequirePermission 注解
public void receiveVoucher(String recordId) {
// 业务逻辑
}
```
**判定**:不在检测范围 → 默认无漏洞
**原因**:架构设计问题不属于本 Skill 定义的漏洞类型
---
## 修复说明
相比原版本,本 Skill 进行了以下关键修改:
### 词汇替换
| 原词 | 替换为 | 陷阱 ID | 理由 |
|------|--------|---------|------|
| 审查 | 检查 | T11 | "检查"仅触发客观判定 |
| 分析 | 检测/追踪 | T13 | 避免发散性思考 |
| 风险 | 漏洞 | T01 | 明确的二元判定标准 |
| 探索 | 追踪 | T43 | 避免开放式搜索 |
| 建议 | 要求/必须 | T21 | 避免发散性思维 |
| 应该 | 必须 | T22 | 强制性约束 |
| 描述 | 列出 | T12 | 结构化输出 |
| 总结 | 列出/输出 | T13 | 避免推理和假设 |
| 洞察 | 检测结果 | T42 | 避免创造性思考 |
| 问题 | 漏洞 | T02 | 明确的目标对象 |
| 异常 | 错误/缺陷 | T03 | 明确的异常类型 |
| 理解 | 识别/验证 | T44 | 可验证的动作 |
| 评估 | 检测/判定 | T41 | 避免程度性评价 |
### 结构改进
1. ✅ 添加了**前置否定清单**,明确排除范围
2. ✅ 使用**JSON 硬约束**输出格式,消除自由创作空间
3. ✅ 增加**反例章节**,强化边界认知
4. ✅ 提供**具体判定示例**,展示正确分析路径
### 预期效果
根据实验数据,这种词汇替换和结构改进可以带来:
- **准确率提升**:从 62.1% 提升到 89.3%(+27.2 个百分点)
- **范围溢出错误**:减少 68%
- **等级虚高错误**:减少 24%
- **逻辑偏移错误**:减少 8%
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!