名称: 漏洞扫描器 描述: 扫描代码中的安全漏洞,识别CVE模式,并提供严重性评级和修复指导。用于扫描安全问题、代码漏洞或OWASP十大问题。
漏洞扫描器
快速开始
扫描代码库以查找常见漏洞:
# 对于 JavaScript/TypeScript
npx eslint --plugin security .
# 对于 Python
bandit -r . -f json
# 对于通用模式
grep -rn "eval\|exec\|system\|shell" --include="*.py" --include="*.js"
指令
步骤1:识别项目类型
检测技术栈:
- 检查
package.json(Node.js) - 检查
requirements.txt或pyproject.toml(Python) - 检查
go.mod(Go) - 检查
Cargo.toml(Rust)
步骤2:运行静态分析
JavaScript/TypeScript:
npx eslint --plugin security --ext .js,.ts,.jsx,.tsx .
Python:
pip install bandit
bandit -r . -f json -o bandit-report.json
Go:
go install golang.org/x/vuln/cmd/govulncheck@latest
govulncheck ./...
步骤3:检查常见模式
扫描危险模式:
| 模式 | 风险 | 语言 |
|---|---|---|
eval() |
代码注入 | JS, Python |
exec() |
命令注入 | Python |
shell=True |
命令注入 | Python |
dangerouslySetInnerHTML |
XSS | React |
| SQL字符串拼接 | SQL注入 | 所有 |
pickle.loads() |
反序列化 | Python |
步骤4:分类发现
根据以下分配严重性:
- 严重:远程代码执行,认证绕过
- 高:SQL注入,XSS,SSRF
- 中等:信息泄露,CSRF
- 低:缺少头部,详细错误
步骤5:生成报告
格式化发现:
## 安全扫描结果
### 严重 (0)
[未找到]
### 高 (2)
1. **SQL注入** - src/db/queries.js:45
- 模式:SQL查询中的字符串拼接
- 修复:使用参数化查询
2. **XSS漏洞** - src/components/Comment.jsx:23
- 模式:dangerouslySetInnerHTML 与用户输入
- 修复:使用DOMPurify清理输入
常见漏洞模式
注入漏洞
// 错误:SQL注入
const query = `SELECT * FROM users WHERE id = ${userId}`;
// 正确:参数化查询
const query = 'SELECT * FROM users WHERE id = ?';
db.query(query, [userId]);
跨站脚本 (XSS)
// 错误:直接HTML插入
element.innerHTML = userInput;
// 正确:文本内容或清理
element.textContent = userInput;
// 或
element.innerHTML = DOMPurify.sanitize(userInput);
高级
详细信息,请参阅: