知識點
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