[GXYCTF2019]BabySQli Base32+聯合查詢

知識點

  base32

  看到編碼內容,只有大寫和數字,根據Base64和Base32 區別:
  base64中包含大寫字母(A-Z)、小寫字母(a-z)、數字0——9以及+/;
  base32中只有大寫字母(A-Z)和數字234567

  聯合查詢創建虛擬表

  查詢數據不存在時,聯合查詢會構造一個虛擬的數據在數據庫中。

  新建一張user表

 

  當前沒有任何數據,當執行select * from user where username = 0 union select 1,'admin',md5('abc');

 

 

   發現列表裏就多了條記錄,但實際上,這是在虛擬表上的記錄

解題

  訪問題目,一個登陸框,F12一下,啥也沒有,常規套路 admin' or 1=1 #,發現被WAF,同時看到開發者工具有提示

  目測是個base32的,解碼一下發現又是一個base64,再解碼

 

 

   是SQL查詢語句

  再fuzz一下,這題是先驗證用戶名再驗證密碼的,用大小寫繞過WAF,admin' Order BY 4 #的時候出現錯誤

 

 

   說明有3個字段,然後利用剛剛的思路創建虛擬數據,用MD5繞過假設密碼爲123,其md5值爲202cb962ac59075b964b07152d234b70
  構造

1' union select 1,'admin','202cb962ac59075b964b07152d234b70'#

  passwd輸入123,登陸得到flag

 

參考鏈接

 https://blog.csdn.net/SopRomeo/article/details/104682814?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章