--- category: web name: pentest-vulns description: 漏洞发现与验证 - 根据前期发现的功能点,针对性测试各类Web漏洞 when_to_use: 信息收集、API发现、登录测试完成后 --- # 漏洞发现与验证 ## 决策树 根据前期发现选择漏洞测试: ``` 登录/认证接口 → SQL注入 查询/列表/搜索接口 → SQL注入 + IDOR + XSS + SSTI 文件上传 → 任意文件上传 + 路径穿越 + XXE 文件下载/预览 → 路径穿越/任意文件读取 + SSRF URL/代理/预览/跳转 → SSRF + 命令注入 + Open Redirect 管理后台 → 垂直越权 + 命令注入 + SSRF XML/SOAP接口 → XXE + 命令注入 表单/修改操作 → CSRF 重定向/Set-Cookie → CRLF注入 全接口通用 → CORS + 方法篡改 无参数输入 → 跳过,仅出信息收集报告 已识别产品/版本 → 历史漏洞/CVE(见下方) ``` ## 核心规则 必须看响应内容,不能只看状态码。所有工具输出必须亲自读取分析逐条验证。 ## 文件组织 ``` tmp/<时间戳>/raw/vulns/ ├── sqli/ ├── xss/ ├── ssrf/ ├── cmdi/ ├── file_upload/ ├── path_traversal/ ├── xxe/ ├── ssti/ ├── idor/ ├── cors/ ├── csrf/ ├── open_redirect/ ├── crlf/ └── cve/ ``` ## 各漏洞测试 ### SQL注入 关注:GET参数(id/uid/orderId)、GET/POST搜索参数(keyword/q/search)、JSON参数(application/json经常被忽略)、排序(sort/order)、Header(Cookie/X-Forwarded-For/User-Agent/Referer)。 测试:数字型(`1 AND 1=1`)/字符型(`' OR '1'='1`)/时间盲注(`SLEEP(3)`)→判断+闭合尝试(`'`/`"`/`')`/`")`/`;`)→数据库识别(报错信息/@@version/banner) WAF绕过:大小写/内联注释/双重URL编码/空字节截断。 ### XSS 关注:搜索回显/评论/富文本/JSONP回调/文件名回显/错误信息、URL参数反映在页面中。 **禁止 `alert()`/`prompt()`/`confirm()`**,改用 `console.log()` 或 DOM 操作验证。存储型用唯一标识符确认,不注入可见内容。 反射型:``/`` → HTML属性突破(`" onfocus=console.log(1)`)。 DOM型:Playwright访问源/沉入点追踪。 存储型:提交payload后用Playwright验证。 判断:HTML直接含未编码标签→存在;被`<`编码→尝试绕过。 ### SSRF 关注功能:URL预览/图片加载/文件导入/Webhook/PDF生成/代理/分享/OCR/OSS上传。 关注参数名:url/link/src/href/path/callback/redirect/imageURL/sourceURL。 测试:DNSLog确认→协议探测(file/dict/gopher)→内网探测(10/172/192/云元数据169.254)→进制绕过/域名绕过。 ### 命令注入 关注功能:Ping/DNS/压缩备份/图片处理/PDF生成。关注参数名:ip/host/domain/cmd/path/file。 Payload:`; id`/`| whoami`/`\`id\``/`$(whoami)`/`%0a id`/`&& id`。 空格绕过:`${IFS}`/`$IFS$9`;黑名单绕过:`/bin/cat`/`c'a't`。 ### 文件上传 扩展名绕过:.php5/.phtml/.jspx/.cer/.asa → 大小写/双写(.php.jpg)/00截断/末尾空格点/Windows ADS。 Content-Type绕过:`file=@shell.php;type=image/jpeg`。 路径控制:`filename=../../../shell.php`。 ### 路径穿越/任意文件读取 关注功能:文件下载/预览/模板/导出/头像/日志。关注参数名:file/path/name/src/template。 Payload:`../../../etc/passwd`→URL编码→双重编码→Windows路径(`..\..\..\win.ini`)。 判断:响应含`root:x:0:0`(Linux)或`[fonts]`(Windows)→确认。 ### XXE 关注:SOAP/WSDL、XML上传(DOCX/XLSX/SVG)、XML Content-Type API、SAML。 Payload:实体文件读取(``)→Blind XXE(dnslog)。 ### SSTI 引擎检测:`{{7*7}}`(Jinja2/Twig)→`${7*7}`(Freemarker)→`#{7*7}`(Thymeleaf)→`<%= 7*7 %>`(EJS)。 区分:`{{7*'7'}}` Jinja2=7777777/Twig=49。 判断:响应含49→确认SSTI。 ### 越权 水平(IDOR):替换ID参数(`/api/user/1`→`/api/user/2`),修改POST body中ID。 垂直:普通用户cookie访问`/api/admin/*`,修改role/jwt payload。 ### CORS 测试:任意Origin→null Origin→子域名绕过。 高危:`ACAO: 任意域名` + `ACAC: true`。低风险:`ACAO: *`无ACAC。 无ACAO头→安全。 ### CSRF 关注功能:修改密码/资料、转账、删除操作。检查:是否有CSRF Token、SameSite Cookie、自定义头。 验证:Playwright构造跨域POST请求,不携带Cookie,观察是否成功。 ### Open Redirect 关注参数名:redirect/url/next/returnUrl/back/r/ref/target。 测试:`?redirect=https://evil.com`、`//evil.com`、`%2f%2fevil.com`、`\evil.com`。 ### CRLF注入 关注功能:重定向、Set-Cookie、Location头反射。 测试:`%0d%0aSet-Cookie:crlf=1`、`%0d%0a%0d%0a