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

buuctf:[GXYCTF2019]BabySQli

開啟連結

只給了個登入介面

先簡單測試一下

username輸入admin時,會顯示wrong pass

輸入其他會顯示wrong user

然後檢視原始碼,發現了一串字元。

經過base32和base64解碼得到sql語句

用Order by來查詢有幾列

證明有3列

利用聯合查詢臨時插入資料:
select * from user where uname='12' union select '1','2','3';
此時查詢結果出了12那一行,還會多出一行聯合查詢的欄位,作為資料臨時插入。
利用這個特性,首先隨便選一個密碼例如1,md5加密後用它作為臨時密碼插入。

由於username必須是admin,所以我們可以利用聯合查詢臨時插入一個admin的資料

構造playload:

username:1' union select 1,'admin','c4ca4238a0b923820dcc509a6f75849b'#

password:1

c4ca4238a0b923820dcc509a6f75849b是1md5加密值

這樣查詢的時候會自動查詢到資料庫中我們構造好的username為1,password為1這一行,這樣我們就能夠成功登入,獲得flag