Bilibili 2020 1024 Write Up
和往常一样每天打开电脑的第一件事就是打开B站。非常Amazing啊,1024这天打开后看到header居然是1024节
好奇打开看了一下,发现了233娘的挑战状…emm虽然不是第一次玩ctf,但B站的首个ctf怎么也要玩一下的嘛🤭不过做完之后感觉B站的题有点怪,群里的大佬们也在吐槽题目有点离谱 不过作为一个臭弟弟,自然没有发言权,所以还是写写自己会做的wp算鸟 –(˙<>˙)/–
这次不是🕊!
前言
感觉这次会做的题和攻防世界的入门题挺像的,都是些常规的套路(除了某些猜猜猜除外)。不会的还是不会,希望B站官方出个WP解解惑。
希望看到B站官网wp的时候我不会打自己一巴掌233…😄
这次就做了七题,做完后发现网上的答案都是7题~emmm看来和真正的大佬还是有差距啊!
- 页面的背后是什么?
- 真正的秘密只有特殊的设备才能看到
- 密码是啥?
- 对不起,权限不足~
- 别人的秘密
- 结束亦是开始
- 第七题
- 第八题
- 第九题
- 第十题
页面的背后是什么?
第一题没啥好讲的,标准的第一题,另外题目页面的背后是什么
也在暗示。
正如大部分的ctf题一样,第一题一般都是在原码中找flag, 果断按下F12果然看到了flag. 直接拿下!~
真正的秘密只有特殊的设备才能看到
进到页面看到需要使用bilibili Security Browser浏览器访问~, 再和题目特殊的设备一结合那肯定就是要我们伪装特定的浏览器。
浏览器的标识那肯定就是UA嘛,所以这题就是用b站的UA来访问~
其实这道题在一个月前的政采云前端题中也有出现!
具体的方法有如下几种(我个人能想到的):
- 直接浏览器改UA(最佳答案)
- 用POSTMAN发送http请求
- 用python解决
我这里挑最简单的方法->浏览器直接来,如图:
答案
密码是啥?
这题就两个字:离谱 !!!!
这题我一开始还在看是不是sql注入,然后爆出账号密码,结果是弱密码… 非常的无语😶
讲白了就是猜,硬猜!
对不起,权限不足~
第四题一来,看到的是欢迎超级管理员登录
我一开始的想法是结合第三题的登录,把第三题登录后的cookie弄过来,结果尝试后发现不行。
一开始的思路不对,导致我在这里卡了半个小时,后来看到超级管理员这个词感觉不太对劲,然后再看了cookie一眼,发现多了一个key role
再看了一下代码:
1 | $.ajax({ |
又是 API 返回 flag,用手指头想都知道鉴权是 Cookie 做的, 再联合超级管理员,接触过ctf的都清楚user
和MD5
都是粘在一起的
然后我差了一下role
这里的md5,真的查到了->user
:
这里解出来的是user,那么不用多说了吧,肯定是把管理员的md5换进去囖!
通过查超级管理员的md5,芜湖得到答案!role=7b7bc2512ee1fedcd76bdc68926d4f7b
别人的秘密
这题和第三题一样,就离谱的过分!!又是JQ这道题更离谱,上来先在 jQuery 的 $
对象下挂了一个 getUrlParam
方法用来获取 uid、然后还有一个当 uid 不存在时给予默认值的方法(默认值取 100336889),接下来就是 GET /api/ctf/5?uid=${uid}。
1 | $(function () { |
没什么好说的,直接暴力遍历就vans了。
Node.js解法:
1 | $(function () { |
python3解法:
1 | import urllib.request |
结束亦是开始
从第六题开始,所有题目都说「接下来的旅程,需要少年自己去探索啦~」,也就是说接下来所有的题目都是 Web 盲题。
看源码每一个地方能提交的,找了半天也没找到可以下手的地方,URL 的格式是 /blog/single.php?id=1
做这题的时候已是下午6点多了,想不出来怎么弄只能挂个dirsearch来爆破目录然后去恰饭了。
爆破得到了一个路径,该路径是指向第十题的
然后用端口扫描发现了第八题的flag,然后就没有然后了~….我好菜啊!!!!
第八题
这题要靠端口扫描,对常规端口扫描后发现6379端口开发,然后就是有手就行的未设防Redis服务器啦。
直接用终端连接靶机,直接拿下:
1 | redis-cli -h [靶机 IP] -p 6379 |
吐槽一下我前面的大佬,把很多无关的flag都丢进来,搞的我白开心了一场~/(ㄒoㄒ)/~~
第十题
这题的入口是从爆出来的,爆破得到了一个目录test.php
进入后看到是一个jsFuck
,直接丢到控制台运行一下~
得到了两句话
1 | var str1 = "\u7a0b\u5e8f\u5458\u6700\u591a\u7684\u5730\u65b9"; |
作为老web狗,一看这个编码反手就是丢控制台,得到:程序员最多的地方
,那么程序猿最多的地方是哪?都懂吧?
然后搜索bilibili1024havefun
,果然找到了!
接着把仓库clone下来,或者直接在github上看~
那么现在我们知道了文件名end.php
,也知道了对应的后端代码,所以这题目就在/blog/end.php
里面了。再看看代码is_numeric
,因此这题就是is_numeric
和intval
绕过囖,所以最终的url是:/blog/end.php?id[]=2&id[]=2&url=./flag.txt
这里我一开始绕过后还是得不到flag
,最后看群里的大佬吐槽才发现原来是flag.txt…..🤮
然后我们会看到一张图片,用编辑器打开后在最后面就能找到flag了,end!
最后再吐槽一下,当时可能做的人太多了。估计很多大佬都在玩靶机,活活拖死靶机~233
尾声
也没啥好说的了,该会的做了,除了第九题题目都没看到外,第6题、第7题我是确实不会~无fucker说…