我从here读到:
基于DOM的XSS攻击:有效负载由于执行而执行 在受害者的浏览器中修改DOM环境 原始客户端脚本,以便客户端代码运行在 意外的方式。也就是说,页面本身不会改变,但是 由于页面中包含的客户端代码执行方式不同 DOM环境中发生的恶意修改。
有人可以举一个例子吗?它不像Stored XSS Attack
和Reflected XSS Attack
那样容易拍照。
答案 0 :(得分:1)
该文字看起来是description of DOM-based XSS from the OWASP wiki部分的副本(反之亦然)。
基本上,这个想法是,与#34;反映"或者"存储" XSS,攻击者实际上并不需要将代码包含在从服务器发回的文档中,而是利用已经存在的脚本并使用攻击者可以使用的某些属性或数据。变化
他们给出的示例是一个使用document.write
属性的一部分调用document.location.href
的脚本。如果没有让服务器存储或反映任何内容,攻击者可以通过将<script>
放入URL来获取在该页面上执行的代码。
答案 1 :(得分:1)
在基于DOM的XSS中,来自服务器的HTTP响应永远不会更改,但由于DOM环境中发生的恶意修改,页面中包含的客户端代码执行方式不同。以下是基于DOM的XSS(取自OWASP's website)的示例:
假设使用以下代码创建表单以让用户选择他/她的首选语言。查询字符串中还提供了默认语言,作为参数“default”。
Select your language:
<select><script>
document.write("<OPTION value=1>"+document.location.href.substring(document.location.href.indexOf("default=")+8)+"</OPTION>");
document.write("<OPTION value=2>English</OPTION>");
</script></select>
使用以下URL调用页面:
http://www.some.site/page.html?default=French
针对此页面的基于DOM的XSS攻击可以通过将以下URL发送给受害者来完成:
http://www.some.site/page.html?default=<script>alert(document.cookie)</script>
页面上的网页(使用document.write
处理初始javascript后)将如下所示:
Select your language:
<select>
<OPTION value=1><script>alert(document.cookie)</script></OPTION>
<OPTION value=2>English</OPTION>
</select>
奖金:Self-XSS
Facebook为XSS诈骗提出了fancy name,诈骗者诱骗用户将恶意内容复制并粘贴到浏览器的Web开发者控制台中。