buuctf:[GXYCTF2019]BabySQli
阿新 • • 發佈:2021-11-02
開啟連結
只給了個登入介面
先簡單測試一下
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