Lab: Reflected XSS with some SVG markup allowed:允许一些 SVG 标记的反射型 XSS

靶场内容

本实验室有一个简单的反射型 XSS漏洞。该站点阻止了常见标签,但遗漏了一些 SVG 标签和事件。

要解决实验室问题,请执行调用该函数的跨站点脚本攻击alert()。

漏洞解析

  • 注入一些测试脚本在search框中<img src=1 onerror=alert(1)>
  • 发现不允许
    image
  • 使用您的浏览器通过 Burp Suite 代理流量,使用实验室中的搜索功能。将结果请求发送到 Burp Intruder。
  • 在 Burp Intruder 中,在 Positions 选项卡中,单击“Clear §”。
  • 在请求模板中,将搜索词的值替换为: <>
  • 将光标放在尖括号之间,然后单击“添加 §”两次以创建有效载荷位置。搜索词的值现在应该是:<§§>
  • 访问https://portswigger.net/web-security/cross-site-scripting/cheat-sheet并单击“将标签复制到剪贴板”。
  • 在 Burp Intruder 的 Payloads 选项卡中,单击“Paste”将标签列表粘贴到有效负载列表中。点击“开始攻击”。
  • 攻击完成后,查看结果。观察到所有的有效载荷造成的HTTP响应400,除了使用的那些<svg>,<animatetransform>,<title>,和<image>标签,其接收到的200响应。
    image
  • 返回 Burp Intruder 中的 Positions 选项卡并将搜索词替换为: <svg><animatetransform%20=1>
  • 将光标放在=字符之前,然后单击“添加 §”两次以创建有效载荷位置。搜索词的值现在应该是:<svg><animatetransform%20§§=1>
    image
  • 访问XSS 备忘单并单击“将事件复制到剪贴板”。
  • 在 Burp Intruder 中,在 Payloads 选项卡中,单击“Clear”以删除以前的 Payload。然后单击“粘贴”将属性列表粘贴到有效负载列表中。点击“开始攻击”。
  • 攻击完成后,查看结果。请注意,所有负载都会导致 HTTP 400 响应,但onbegin负载除外,它会导致 200 响应。
    image
  • 复制URL代码到URL中 :/?search=%22%3E%3Csvg%3E%3Canimatetransform%20onbegin=alert(1)%3E
    image
posted @ 2021-08-25 09:52  Zeker62  阅读(82)  评论(0编辑  收藏  举报