IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    RCTF 2017 web writeup

    91Ri管理团队发表于 2017-05-26 10:46:14
    love 0

    强撸两道半,noxss栽在了自己的单线程脑回路上。
    总的来说,蓝猫师父出题是很有诚意的。

    =================================================================

    rBlog

    最简单的一道web
    但是最后也只有11个解出,可能是因为有一点脑洞吧
    在源码审计中其实发现了一个SSTI,并不是完全没洞,但是因为是后台利用所以也比较鸡肋
    根据提示,发现了view里的feed,生成了一个rss订阅页
    但是删除文章后,这个rss也是会改变的
    所以这就需要用到自带缓存功能的阅读器了
    我使用了feedly,获得了flag

    自动草稿

    rCDN

    比较符合正常思路/但是最后的验证方式有点不合理,单纯作为题目可以理解
    最后是2个解出(手贱用小号交了二血)
    登录注册后得到hint no xss或者sqli
    那么来看业务逻辑
    /base/new 可以添加一个基础的混合8位字母数字域名
    而/pro 则允许你添加一个自定义的域名
    但是所有pro相关的功能都是不允许的,毕竟普通用户
    那么这时候看到了ticket功能
    尝试提交一个普通域名,直接提示 免费账户无权进行这个操作
    那么应该就是要提交pro域名(6位以下)
    但是过一段时间后提示closed,因为域名不存在
    一开始的思路是不是跑一下子域名呢
    dns域传送利用失败,想想也不可能嘛
    于是上一波subDomainbrute

    自动草稿

    是爆出来了东西,但是提交后,没卵用,仍然提示不存在
    后来感觉这个校验应该仍然是在数据库里做的

    所以问题就变成了:
    域名<=6位 且 在数据库里
    这时候只能想到浏览器里的unicode字符判断问题了

    自动草稿

    比如这样的mm数学符号,虽然长度为1,直接访问的话是等效于两个m的
    那么这思路其实也是最早mramydnei,m锅发的

    自动草稿

    通过这个方法拿到了flag
    但是说实话,这个验证比较不合理,从实际出发来说,后台客服不大可能用浏览器去验证

    noxss

    用非预期方法做出了csp-bypass xss
    大概思路是unpkg里的url处于csp允许范围内
    因此找到一个可控点引发xss就可以了
    然而还是栽在了自己的单线程脑回路上
    以为phpinfo页只是给个版本提示罢了,其实它是用来泄露http only的cookies的
    正解的思路来自这篇文章
    http://blog.innerht.ml/cross-origin-css-attacks-revisited-feat-utf-16/
    利用css对标识符的宽泛编码限制来进行了跨域css加载和信息泄露
    但是这个漏洞在新版webkit浏览器中,对跨域的css做出了,如果mimetype不对则不予加载的限制
    本题则是利用了phpinfo.php来实现了同域css的加载与攻击

     

     

    原文作者:Blog of Mathias



沪ICP备19023445号-2号
友情链接