[GXYCTF2019]BabySQli 1
阿新 • • 發佈:2022-04-02
這個題本來應該有提示的,emmmm大佬部落格是這樣說的;
原題目為:
剛學完sqli,我才知道萬能口令這麼危險,還好我進行了防護,還用md5雜湊了密碼!
開啟容器
就單單兩個輸入欄,,多少有點簡陋
看標籤叫Do you know who am I?看來是要用,先用萬能密碼試一下
看來是過濾了,但是在原始碼有提示
先解base32然後base64得到結果select * from user where username = '$name'
union select 聯合查詢可知有三個欄位
被禁掉了部分關鍵字。
這裡考核的一個知識點是:
當查詢的資料不存在的時候,聯合查詢就會構造一個虛擬的資料。
本地搭建環境測試一下
在test資料庫裡面新增test表,裡面三個欄位分別是id,username,password,而test表裡面只有一條資料,即admin,admin
我們使用聯合查詢查詢使用者名稱為admin,密碼為aaaaaaaaaaaaa的使用者
發現我們在聯合查詢並不存在的資料時,聯合查詢就會構造一個虛擬的資料
所以我們在這裡進行繞過,即輸入admin,密碼設定為123456,將123456MD5加密後放進union select 查詢中
也就是當name代入查詢查詢時,在MySQL裡面就會生成使用者名稱為admin,密碼為123456 MD5加密後的虛擬的資料,同時我們用123456密碼進行登入,就能夠繞過限制。
最後的payload為:
1 2 |
username欄:' union select 1, "admin" , "e10adc3949ba59abbe56e057f20f883e" #
password欄:123456
|
拿到flag