• [rctf](web)rcdn 解题分析,知识点总结


    比赛平台关闭了,没有截图,见谅。
     
    解题思路流程:
    分析网站结构,看源码,元素审计。发现以下信息。
    1. 要得到flag要获得一个pro cdn
    2. pro 子域名长度为3到6个字符
    3. 存在一个提交ticke页面
     
    那怎么获取一个pro cdn呢?想到以下几种方法。
    1. 直接申请一个pro cdn
    2. 能不能把一个basic提升为pro
    3. 登录admin的账号,看里面是否有pro cdn
     
    无从申请。
    设计pro的操作时都提示不允许。
    尝试注入,弱密码无效。
    这些弄完了之后,思路卡壳,回到提交ticket那里。
    十分肯定最后flag是ticket这里出来。
    有长度在ticket页面尝试了一波爆破,可是无效,最多同时6个open。用子域名爆破工具还有google hack 都没能得到有用的。
    这题自己做到这里,实现想不出来还有什么了。看writeup发现是知识盲区,学习一波。
     
     
    知识点主要来自乌云的这篇文章:
    参考writeup:
     
    看完文章后在回到题目。最后正确的解题流程是:
    1. 不断申请basic,会生成随机的八个长度的子域名。申请的这些子域名会存在服务器后台的数据库里面。
    2. 对子域名的字符进行判断,看是否包含有那些unicode,两组以上,包含一组长度为7,两组为6。不包含则删除basic。这里要一个脚本爆破。

      dz : dz //valid domain ext
      ₨ : rs //valid domain ext
      № : no //valid domain ext
      ℠ : sm //valid domain ext
      ℡ : tel //valid domain ext
      ™ : tm //valid domain ext
      ㎁ : na // valid domain ext
      U+3377 : dm //valid domain ext
      ㎃ : ma // valid domain ext
      ㎋ : nf //valid domain ext
      ㎖ : ml //valid domain ext
      ㎙ : fm //valid domain ext
      ㎝ : cm //valid domain ext
      ㎰ : ps //valid domain ext
      ㎳ : ms //valid domain ext
      ㎺ : pw //valid domain ext
      ㎽ : mw //valid domain ext
      ㏄ : cc //valid domain ext
      ㏅ : cd //valid domain ext
      ㏉ : gy //valid domain ext
      ㏌ : in //valid domain ext
      ㏗ : ph //valid domain ext
      ㏚ : pr //valid domain ext
      ㏛ : sr //valid domain ext
      fi : fi //valid domain ext
      ſt : st //valid domain ext
      st : st //valid domain ext

    1. 如果发现有包含,则在ticket页面进行提交。提交的时候,比如:
    假设申请的basic子域名为 23fdanapw ,这个子域名里面包含pw ,na,提交的时候我们提交 23fd㎁㎺ 。 后台会进行两步判断。
    一是判断是否在数据库,这两个在后台数据库是等价的,存在。
    二是后台会模拟点击这个链接,用浏览器去判断,而浏览器对这个子域名的长度判断是6位,达到了pro长度的标准。就认为是pro,返回flag.
     
    总结:
    unicode的长度编码trick。
    多看多搜乌云。
     
     
  • 相关阅读:
    promise实现(未实现微任务)
    fastclick猜的原理
    js进制
    如何造一个好的组件库【有空就更新】
    BEM的命名
    unicode、utf-32、utf-8、utf-16
    getElementsByTagName、getElementsByClassName与querySelectorAll的区别
    为什么vue中没有事件委托/事件代理的概念
    vscode注释param
    复制dom
  • 原文地址:https://www.cnblogs.com/deen-/p/6919872.html
Copyright © 2020-2023  润新知