[GXYCTF2019]BabySQli
阿新 • • 發佈:2020-09-14
今天這道題很有意思,記錄一下,我剛開始以為是時間盲注,都把它的資料庫注出來了,但後來發現進行不下去了(發現自己思路錯了),警告自己要注意細節(切記base32編碼)
題目
題目是一個登入框
先抓個包看一下
返回包中有一串字元,像是base32編碼的特徵
先進行base32解碼
再進行base64解碼
分析
告訴了一個username欄位
我們先來檢視一下它有幾個欄位
1' union select 1,2,3#
發現有3個欄位
將使用者名稱放在第二列,回顯wrong pass!,找到使用者名稱在第二列
1' union select 1, 'admin',3#
接下里就是要繞過密碼的md5驗證,需要把我們輸入的值和資料庫裡面存放的使用者密碼的md5值進行比較,那要怎麼繞過呢?可以用聯合查詢語句用來生成虛擬的表資料
首先可以看到該表只有2個使用者
然後輸入語句
select * from test union select 1,'admin','123456';
發現可以寫入到表裡
通過這樣的方式,我們就可以用構造payload
name=1' union select 1,'admin','e10adc3949ba59abbe56e057f20f883e'#&pw=123456