绕过浏览器 URL 编码从查询参数中反射 XSS?

信息安全 xss javascript 编码 反射-xss
2021-09-07 12:34:36

我试图通过对以下 URL 的请求在易受攻击的网站中获取反射 XSS:

https://vulnerable.website/dir/dir?param1=test"><svg/onload=alert(1)>

浏览器 URL 对字符进行编码,并且它也反映在编码的响应中,因此它不起作用。但是,如果我拦截了请求并在不编码的情况下键入了有效负载,则会执行 XSS。

有没有办法在没有浏览器编码的情况下发送请求?

2个回答

这取决于您使用的浏览器。

以下是 Troy Hunt 关于此主题的博客文章

您可以尝试使用Burp Suite等工具拦截请求。如果拦截请求,可以尝试更改编码字符集并检查是否出现所需的结果。

我面临同样的问题,即阻止测试 XSS 漏洞的浏览器地址栏 url 编码。

我找到了解决这个问题的两种方法:

  • 使用 curl 发送请求,然后在浏览器中打开保存的页面

    curl -o test.html https://vulnerable.website/dir/dir?param1=test"><svg/onload=alert(1)>

  • 使用带有代理的浏览器,拦截请求并手动编辑请求以取消编码。(burp、fiddler等代理工具)

如果您没有经验,第二个选项会相当慢。