<< All versions
Skill v1.0.0
currentLLM-judged scan90/100zmr0zhangmouren/dotnet-security-audit-skill/dotnet-open-redirect-audit
──Details
PublishedOctober 21, 2026 at 03:26 PM
Content Hashsha256:61860ee6199c9d93...
Git SHAb46074b71f8c
──Files
Files (1 file, 2.9 KB)
SKILL.md2.9 KBactive
SKILL.md · 46 lines · 2.9 KB
version: "1.0.0" name: dotnet-open-redirect-audit description: .NET 开放重定向审计工具。识别 Redirect、LocalRedirect、ReturnUrl、Challenge 回跳和登录后跳转中的目标地址控制风险。
.NET 开放重定向审计
共享抓手索引引用
- 默认以 shared/DOTNET_AUDIT_GRABBER_INDEX.md 作为本 Skill 的基础检索索引
- 枚举时至少覆盖与 ReturnUrl、Redirect、导航目标、外部地址白名单和代理前缀处理相关的共享抓手
- 若项目存在 RedirectHelper、LoginFlowService、NavigationGuard、CallbackResolver 等二次封装,必须补充到输出中的项目内抓手章节
- 当本 Skill 的专项枚举规则比共享索引更细时,以本 Skill 为准,但不得缩减共享索引的基础覆盖范围
输入依赖
- 必需:
source_path - 可选:
route_mapping/routes_{timestamp}.md与route_mapping/params_{timestamp}.md(用于对齐跳转入口、ReturnUrl 参数与route_id) - 可选:
auth_audit/auth_mapping_{timestamp}.md(用于补充登录/登出/挑战入口的鉴权边界) - trace-gate 场景下优先消费:
route_tracer/{route_id}/trace_{timestamp}.md;如存在route_tracer/{route_id}/trace_summary_{timestamp}.md,可作为摘要索引 - 如通过
dotnet-audit-pipeline执行,当前专项引用的route_id应与cross_analysis/high_risk_routes_{timestamp}.md保持一致
重点检查:
- ReturnUrl、redirect_uri、post_logout_redirect_uri、continue、next、returnTo 等参数来源及其在登录、登出、错误回退、Challenge 回跳中的流转
- Redirect、LocalRedirect、RedirectToAction、Results.Redirect、Challenge/Forbid/SignOut 的目标地址构造方式
- IsLocalUrl、allowlist、host allowlist、scheme 限制、端口限制以及多租户子域校验逻辑
- 编码、双斜杠、协议相对地址、反斜杠、大小写、Unicode 点分隔、嵌套 URL 与双重解码绕过
- 代理头、X-Forwarded-Host、PathBase、反向代理重写以及外部登录提供方返回地址校验
- 跳转目标是否承接敏感票据、授权码、一次性 token 或身份恢复流程,从而放大危害
枚举规则(强制细化)
- 枚举所有 Redirect、LocalRedirect、RedirectToAction、Challenge、SignOut、returnUrl / next / continue / callback 参数处理逻辑
- 优先搜索 IsLocalUrl、redirect_uri、post_logout_redirect_uri、ReturnUrl、redirectTo、callbackUrl、PathBase 相关代码
- 枚举登录、登出、认证回调、支付回跳、邀请链接、深链跳转、错误回跳等业务场景
- 对每个跳转点记录:目标来源、校验逻辑、外部身份提供方约束、代理头影响、是否携带敏感票据
证据建议:复用 XSS/CFG 的路径归一化思路,并在报告中说明目标校验分支。
输出
- vuln_audit/redir_{timestamp}.md
- 可选:vuln_poc/redir_{timestamp}.md(已确认 / 待验证 / 环境依赖 PoC;如不适合直接构造请求,至少给出验证步骤)