Security Tester — 安全测试员
v4.2基于OWASP标准,对Web应用程序和API进行安全测试。识别常见漏洞(注入、认证绕过、XSS、CSRF、IDOR),生成安全测试用例,分析扫描结果,编写安全测试报告。遵循OWASP Testing Guide v4.2、OWASP Top 10(2021)和CWE分类。使用场景:(1)安全测试Web应用程序或API,(2)编写安全测试用例,(3)分析漏洞扫描结果,(4)OWASP Top 10验证,(5)认证/授权测试,(6)输入验证测试。相关关键词:安全测试、漏洞测试、OWASP、XSS测试、SQL注入、渗透测试、权限测试、越权测试、IDOR、CSRF。不适用于:代码级静态分析(使用SAST工具)、基础设施渗透测试(使用专用pentest工具)或合规审计(使用GRC工具)。
运行时依赖
安装命令
点击复制技能文档
安全测试员
测试基于OWASP标准的Web应用程序和API安全。
OWASP Top 10(2021)测试矩阵参考:https://owasp.org/Top10/
# 类别 CWE 关键测试
A01 Broken Access Control CWE-284 IDOR,特权升级,强制浏览,CORS
A02 Cryptographic Failures CWE-310 TLS配置,密码存储,敏感数据暴露
A03 Injection CWE-74 SQL注入,XSS,命令注入,LDAP注入
A04 Insecure Design CWE-501 业务逻辑缺陷,缺少速率限制
A05 Security Misconfiguration CWE-16 默认凭证,详细错误,不必要的功能
A06 Vulnerable Components CWE-1035 过时库,已知CVE
A07 Auth Failures CWE-287 暴力破解,弱密码,会话固定
A08 Data Integrity Failures CWE-502 不安全的反序列化,未签名更新
A09 Logging Failures CWE-778 缺少审计日志,日志注入
A10 SSRF CWE-918 服务器端请求伪造
安全测试用例生成
对于每个API端点或页面,应用此清单:
A01:访问控制测试(OWASP-AT)
# IDOR:访问其他用户的资源
curl -H "Authorization: Bearer $USER_A_TOKEN" "$URL/api/users/USER_B_ID/profile"
# 预期:403 Forbidden
# 水平特权升级
curl -H "Authorization: Bearer $NORMAL_USER_TOKEN" "$URL/api/admin/users"
# 预期:403 Forbidden
# 强制浏览(未经身份验证)
curl "$URL/api/internal/config"
# 预期:401 Unauthorized
# CORS配置错误
curl -H "Origin: https://evil.com" -I "$URL/api/data"
# 检查:Access-Control-Allow-Origin不应为*或evil.com
# HTTP方法篡改
curl -X DELETE -H "Authorization: Bearer $READONLY_TOKEN" "$URL/api/items/1"
# 预期:403如果用户缺乏删除权限
A03:注入测试
# SQL注入(OWASP-DV-005)
# 参考:CWE-89
PAYLOADS=( "' OR '1'='1" "' OR '1'='1' --" "'; DROP TABLE users; --" "' UNION SELECT null,null,null --" "1' AND SLEEP(5) --" )
for p in "${PAYLOADS[@]}"; do
echo "测试:$p"
curl -s -o /dev/null -w "%{http_code} %{time_total}s" "$URL/api/search?q=$(python3 -c "import urllib.parse; print(urllib.parse.quote('$p'))")"
echo
done
# XSS(OWASP-DV-001)
# 参考:CWE-79
XSS_PAYLOADS=( '' '' '">' )
# 命令注入(CWE-78)
CMD_PAYLOADS=( '; ls -la' '| cat /etc/passwd' '$(whoami)' '
id' )
A07:身份验证测试
# 暴力破解保护(OWASP-AT-004)
for i in $(seq 1 20); do
STATUS=$(curl -s -o /dev/null -w "%{http_code}" -X POST "$URL/api/login" -H "Content-Type: application/json" -d "{\"username\":\"admin\",\"password\":\"wrong$i\"}")
echo "尝试 $i:$STATUS"
# 在5-10次尝试后,应看到429或帐户锁定
done
# 会话固定
# 1. 获取会话之前登录
# 2. 登录
# 3. 验证会话ID在登录后更改
# JWT漏洞
# 检查:alg=none绕过,弱密钥,缺少过期时间
echo "$JWT" | cut -d. -f2 | base64 -d 2>/dev/null | python3 -m json.tool
漏洞报告模板
安全发现
标题:[CWE-XXX] 简要描述 严重性: Critical / High / Medium / Low / Info CVSS 3.1:X.X({vector_string}) CWE:CWE-XXX({cwe_name}) OWASP:A0X:2021({category}) 受影响:{端点/组件}描述
漏洞是什么以及为什么重要。证明
一步一步的重现,使用确切的命令/请求。影响
- 机密性:{High/Medium/Low/None}
- 完整性:{High/Medium/Low/None}
- 可用性:{High/Medium/Low/None}
修复
特定的修复建议,包括代码示例。参考
- OWASP:{链接}
- CWE:{链接}