HTTP Cookie类CTF挑战:如何获取Bob的BookFace站点Cookie值
问题核心原因
- 你构造的
<script>标签会先在你自己的聊天页面渲染时执行,所以只能弹出你自己的Cookie - 现代浏览器默认不会执行通过innerHTML动态插入的
<script>标签内容,就算这段代码传到Bob的页面也不会运行,自然拿不到他的Cookie
正确操作方法
利用DOM事件触发执行JS,构造不会在你本地提前触发、仅在Bob访问时在BookFace.com域下执行的XSS payload即可,你可以直接给Bob发送以下内容:
</p><img src="x" onerror="document.getElementById('you-said').innerText = document.cookie"><p>
原理解释
- 开头的
</p>会提前闭合原本包裹你消息的<p id="you-said">标签,让后续插入的img标签能被浏览器正常解析为HTML元素而非纯文本 - img标签的src属性填写了无效地址,加载失败时会自动触发
onerror事件,不需要用户额外操作就会执行绑定的JS代码 - 这段JS运行在Bob的浏览器的BookFace.com域下,读取的是Bob的本地Cookie,并且直接将
you-said标签的内容替换为Cookie值,你刷新聊天界面就能看到对应的通关密码。
内容的提问来源于stack exchange,提问作者Diego Lopez
相关产品推荐
相关产品推荐

