bugku web login1
阿新 • • 發佈:2021-10-05
開啟靶場
檢視網站原始碼後沒有特殊的地方,先按照題目思路註冊一個賬號,使用註冊的賬號登入後彈出提示
當時第一時間想到了自己以前做過的一個題,是抓包然後偽造XFF為127.0.0.1來進行登陸,在經過一番測試後發現不適用於這道題目
在沒有思路的情況下發現了題目的提示
在網上查詢有關SQL約束攻擊的資料後豁然開朗
①在sql中執行字串處理時,字串末尾的空格將會被刪除。也就是說"admin"與"admin "是等價的,執行語句:select * from user where username="admin "的查詢結果將會與使用者名稱為"admin"時一致;
②定義表的欄位時,往往都會對字元長度進行限制,比如varchar(20),如果定義的欄位長度超過了限制的長度,就會截斷超出部分
知道了這兩點之後題目的目的也就好理解了,由於是需要管理員許可權,我們註冊一個賬號的使用者名稱為"admin ",空格的長度可以自由選擇。註冊完畢後,我們在資料庫中檢索使用者名稱"admin"時將會出現兩個,一個是管理員的,一個是我們自己註冊的(實際上使用者名稱後面還有空格),我們在對使用者名稱"admin"進行select時,都會返回第一個資料記錄,這樣我們就能夠通過原始的admin使用者登入了