1. 程式人生 > 其它 >[GXYCTF2019]BabySQli 1

[GXYCTF2019]BabySQli 1

這個題本來應該有提示的,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