Lab: Reflected DOM XSS:反射型DOM XSS

本实验演示了一个反射 DOM 漏洞。当服务器端应用程序处理来自请求的数据并在响应中回显数据时,就会出现反射 DOM 漏洞。然后页面上的脚本以不安全的方式处理反射数据,最终将其写入危险的接收器。

为了解决这个实验,创建一个调用alert()函数的注入。

解决实验:

  • 在 Burp Suite 中,转到代理工具并确保打开了拦截功能。
  • 回到实验室,转到目标网站并使用搜索栏搜索随机测试字符串,例如. "XSS"
  • 返回 Burp Suite 中的代理工具并转发请求。
  • 在 Intercept 选项卡上,请注意该字符串反映在名为 的 JSON 响应中search-results。
    image
  • 从站点地图中,打开searchResults.js文件并注意 JSON 响应与eval()函数调用一起使用。
    image
  • 通过尝试不同的搜索字符串,您可以确定 JSON 响应正在转义引号。但是,反斜杠没有被转义。
    image
  • 要解决此实验,请输入以下搜索词: "-alert(1)}//
    由于您已注入反斜杠并且站点并未转义它们,因此当 JSON 响应尝试转义开头的双引号字符时,它会添加第二个反斜杠。由此产生的双反斜杠导致转义被有效地取消。这意味着双引号被处理为未转义,这会关闭应包含搜索词的字符串。

然后在alert()调用函数之前使用算术运算符(在这种情况下为减法运算符)来分隔表达式。最后,一个结束的大括号和两个正斜杠提前关闭 JSON 对象并注释掉对象的其余部分。结果,生成的响应如下:

{"searchTerm":"\"-alert(1)}//", "results":[]}

image

posted @ 2021-08-25 15:45  Zeker62  阅读(165)  评论(0编辑  收藏  举报