昨天下午摸鱼刷微博看到这个活动,就凑热闹打开玩了玩,说是 CTF,但是感觉更像是个解谜游戏,和 CTF 关系不大...虽然现在网上已经一抓一大把题解了,但是反正好久没水博客了,就顺手水一篇我的做题过程。

Bilibili_CTF_2020-2020-10-25-17-09-25

第一题

Bilibili_CTF_2020-2020-10-25-17-11-47

打开第一题,页面上写着「需要使用bilibili Security Browser浏览器访问~」,第一反应就是需要改 UA,F12 看看,一个 「admin」和「2」。

Bilibili_CTF_2020-2020-10-25-17-14-28

刚开始我还不知道「admin」里这个「data」是什么玩意,而另一个请求 403 了,也没什么结果,就打开网页源码看看。

Bilibili_CTF_2020-2020-10-25-17-16-26

好家伙,那个「data」直接就是第一题的 flag,没见过这么草率的。

顺便吐槽一下提交答案,还要手动输题目 ID,我试了半天「flag1」都不行,结果就是填个 1...

第二题

前两道题是在一个页面,刚才网页源码也都把第二题都接口写清楚了,把 UA 改成「bilibili Security Browser」,第二题的 flag 就 get 到了,不过记得所有题都要在 cookie 里把自己的 session 带上,不然会提示需要登录。

第三题

Bilibili_CTF_2020-2020-10-25-17-24-18

这题绝对是槽点最多的一道题,打开之后一个登录框,第一反应就是 SQL 注入,试了半天没办法,那就猜密码。管理员账号就 admin 呗,密码试了一堆弱密码没用,感觉不对,填了个 bilibili,过了...我 TM...

第四题

Bilibili_CTF_2020-2020-10-25-17-29-55

页面提示需要「超级管理员」,页面 URL 也是 superadmin,F12 发现 cookie 里多了一项 role=ee11cbb19052e40b07aac0ca060c23ee;,扔到 md5 解码里出来结果是「user」,那就把「superadmin」md5 扔进去替换,但是结果不对??又试了「admin」,也不行,「administrator」,还不对,我就纳了闷了,最后我怎么他娘的都没想到,正确答案是「Administrator」,A 要大写...我 &^%^&*&^%^。那你给的 superadmin 有锤子用。

第五题

Bilibili_CTF_2020-2020-10-25-17-37-27

页面上依然是什么都没有,F12 发现请求后面跟了个参数 uid。

Bilibili_CTF_2020-2020-10-25-17-38-31

看源码也没发现什么。

Bilibili_CTF_2020-2020-10-25-17-39-24

猜测获取答案应该是需要正确的 uid,那就写个代码从它给的 uid 开始往下跑,跑了大概几十个,flag 就出来了。

while True:
    uid += 1

    data = {
        'uid': str(uid)
    }
    print(uid)
    res = requests.get(url, params=data, headers=headers)

    try:
        content = res.json()
        code = content['code']
        if code != '403':
            print(content)
            break
    except:
        uid -= 1

第六题

Bilibili_CTF_2020-2020-10-25-17-45-05

打开第六题的页面我就用了半天时间,还时不时就根本打不开了,不知道有多少人在搞爆破...

从这题开始我就没思路了,这个博客页面翻了半天没有找到有用的东西,题目意味深长地写着「结束亦是开始」,不知道什么意思。看了下选题页面的源码,第六题之后都没有题目了,似乎意思是真正的比赛是从这里才开始的。

Bilibili_CTF_2020-2020-10-25-17-47-33

等一个题解。

10 月 26 日更新:

第六题有 dalao 做出来了,是 Referer 注入...

关于第六题思路 #283

第七题

还等一个题解。

第八题

有人对第六题的服务器扫端口发现 Redis 的端口是开着的,直接 redis-cli -h 45.113.201.36 -p 6379 连上去,不需要认证,但是刚开始应该是连接的人太多了,不断出现无法连接的情况,get flag8 拿到答案。

Bilibili_CTF_2020-2020-10-25-17-53-13

刚开始上面 1-10 题的 flag 都有,但除了 flag8 其它都是错误的,估计是其他人加上去的,之后这些都被删除了,只留下了 flag8.

第九题

我再等一个题解。

第十题

对应第六题的「结束亦是开始」,而比赛的选题页面是「start.html」,找到「end.php」这个页面,但是似乎没这么简单。

Bilibili_CTF_2020-2020-10-25-17-57-22

而又有其他大佬扫路径扫出了「test.php」,打开内容是 JSFuck。

Bilibili_CTF_2020-2020-10-25-18-00-18

复制粘贴到 Console,得到两句话

Bilibili_CTF_2020-2020-10-25-18-01-39

程序员最多的地方,那应该就是 GitHub 了,上去搜索第二条字符串「bilibili1024havefun」,找到这个结果 interesting-1024/end

Bilibili_CTF_2020-2020-10-25-18-03-33

而且发现 Issue 已经变成讨论区了...

按照它给的代码,在刚才的 end.php 之后拼接参数,,第一条判断通过之后页面会变成「还差一点点啦~」,然后又嗯猜文件名...最后结果是 id[]=1&url=./flag.txt,打开后是一张图片。

Bilibili_CTF_2020-2020-10-25-18-45-27

把图片下载到本地,以文本形式打开,拉到末尾,就能获得 flag10。

Bilibili_CTF_2020-2020-10-25-18-47-15

If you think my article is useful to you, please feel free to appreciate