1. 2233娘后台管理系统

修改浏览器User-Agent:bilibili Security Browser即可拿到flag:2b3c0c83-58f6db97-a7cb3113-02dd0181

当我提交是提示错误,看了源码还有个/api/admin,然后请求http://45.113.201.36/api/admin也能获得一个flag,最后提交id=1,flag=6c99a05b-604e967f-260680de-b55000cd得分了,我提交前面的fla提示:重复提交,不再重复提交,我不知道应该是那个flag。

  1. 真正的秘密只有特殊的设备才能看到

做了第二题才知道,第一题做的第一个flag是第二题的,flag2,所以第二题才是修改ua,flag=2b3c0c83-58f6db97-a7cb3113-02dd0181

  1. 密码是啥?

第三题是弱口令密码,密码是bilibili,flag是b076a424-eb11a18d-a50efa3a-d1aeb3b6

这个考的是弱口令和社会工程学,我就是没get到,后来窥屏才知道是bilibili,但kali字典里面也有,原来谜底就在谜面上。

  1. 对不起,权限不足~

抓包发现cookies有个role类似md5的值,md5破解后是user,使用bp抓包后增加user键,值为administrator,尝试A大写还是无果,翻译了role是角色的意思。那我们可能这样理解,当前角色是user,经过md5加密,我们把role值改为administrator的md5尝试,还是403,后来把a大写的md5成功获得flag。

  1. 别人的秘密

    经过阅读前端代码发现,获取前台的url,如果提供了uid参数,使用该uid请求api,如果返回额code是200就输出flag;如果没有提供uid参数,默认是100336889。所以莫测是爆破

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    var uid = $.getUrlParam('uid');
    if (uid == null) {
    uid = 100336889;
    }
    $.ajax({
    url: "api/ctf/5?uid=" + uid,
    type: "get",
    success:function (data) {
    console.log(data);
    if (data.code == 200){
    // 如果有值:前端跳转
    $('#flag').html("欢迎超级管理员登陆~flag : " + data.data )
    } else {
    // 如果没值
    $('#flag').html("这里没有你想要的答案~")
    }
    }
    })

    分析Administraotr的uid可能是多少,确定uid范围,100336889是用户uid,那么管理员uid可能比这个小。百度查了当前bilibili有多少用户,答案是活跃用户1.7亿多(真强),但管理员uid如果从1开始,或者从10000开始都太大了,所以我们从10000000-100336889爆破。

    最后爆破了半天没出经过,然后百度搜索100336889是什么含义,结果让我搜到了解析(意外),发现uid是从100336889开始,到999999999,我们改了以后继续爆破,最后得到正确的uid=100336951,flag=1835a9ae-2961ad45-74bb92ac-6753a1d9