Bilibili CTF

发布于 / 学习点滴 / 2 条评论

第一题 页面的背后是什么?

题目地址:http://45.113.201.36/index.html

打开页面以后,我没注意看题目,然后看到主页的文字第一反应是修改User-Agent

然后修改完拿到了第二题的FLAG,其实这道题是F12查看审查元素,然后就找到了第一题的FLAG了。

但是别人是查看源代码发现api/admin这个URL,访问就可以获得FLAG。

第二题 真正的秘密只有特殊的设备才能看到

题目地址:http://45.113.201.36/index.html

这道题做法就是上面说的,修改成User-Agent:bilibili Security Browser,就拿到FLAG了。

第三题 密码是啥?

题目地址:http://45.113.201.36/login.html

暴力破解,尝试弱密码,最后密码是:username:admin|password:bilibili,然后拿到FLAG。

第四题 对不起,权限不足~

题目地址: http://45.113.201.36/superadmin.html

先祭出Burp Suite,然后看数据,发现Cookie的role有点东西,去解密,显示user,看到页面说是超级管理员,然后把一些常用的管理员名字加密,替换role,然后拿到FLAG。

第五题 别人的秘密

题目地址:http://45.113.201.36/user.html


        $(function () {
        
            
            (function ($) {
                $.getUrlParam = function(name) {
                    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
                    var r = window.location.search.substr(1).match(reg);
                    if (r != null) return unescape(r[2]); return null;
                }
            })(jQuery);
        
            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("这里没有你想要的答案~")
                    }
                }
            })
        });

查看源代码,发现需要爆破uid,这里可以用Burp Suite/Python等等爆破,然后爆破完成以后拿到FLAG。

第六题 结束亦是开始

题目地址:http://45.113.201.36/blog/single.php?id=1

看到这个地址,一开始以为是用SQLmap跑的,然而发现并不是,而且昨晚太多人跑了,服务器都挂了,我也就没管了,今天找了一下大佬解题的方法。

结果大佬们说扫目录可以扫到

http://120.92.151.189/blog/test.php

里面是JSFuck加密的内容

尝试一下JSUnFuck解密

http://codertab.com/JsUnFuck


var str1 = "\u7a0b\u5e8f\u5458\u6700\u591a\u7684\u5730\u65b9";
var str2 = "bilibili1024havefun";
console.log()

str1内容解码以后是程序员最多的地方

去Github搜一下str2的内容

然后发现了这个文件

https://github.com/interesting-1024/end/blob/6a1b18e8aa96e879045a66130ddb3ba26b9b8b10/end.php


//filename end.php
$bilibili = "bilibili1024havefun";
$str = intval($_GET['id']);
$reg = preg_match('/\d/is', $_GET['id']);
if(!is_numeric($_GET['id']) and $reg !== 1 and $str === 1){
	$content = file_get_contents($_GET['url']);
	//文件路径猜解
	if (false){
		echo "还差一点点啦~";
	}else{
		echo $flag;
	}
}else{
	echo "你想要的不在这儿~";
}

上面是PHP代码,说的应该是在end.php文件后面传入id值,但是值不能等于1又要等于1。

然后得出地址

http://45.113.201.36/blog/end.php?id[]=1&url=/api/ctf/6/flag.txt

访问看到一张图片,保存下来,找图片里面的FLAG

然后就发现得到的FLAG是第10题的。

第七题

卡关了

第八题

服务器开启了6379端口,也就是Redis默认端口,直接连接


.\redis-cli.exe -h 45.113.201.36  -p  6379
45.113.201.36:6379> keys *
 1) "flag8"
 2) "flag5"
 3) "flag7"
 4) "flag9"
 5) "flag10"
 6) "flag1"
 7) "flag2"
 8) "flag3"
 9) "flag4"
10) "flag6"
120.92.151.189:6379> get flag8
"d436b982-2b81aa54-49a8d2db-87ab951a"

这道题因为我连接不上去,不知道什么原因,上面这些代码是转载大佬们的。

第九题

卡关了

第十题

FLAG在第六题

转载原创文章请注明,转载自: 及时行乐 » Bilibili CTF
  1. 这也太强了吧

    1. @一叶三秋 没有没有,也在学习中!