Base64介紹
Base64就是一種 基於64個可打印字符來表示二進制數據的表示方法
字符選用了"A-Z、a-z、0-9、+、/" 64個可打印字符
64個字符用6個bit位就可以全部表示,一個字節有8個bit 位,剩下兩個bit就浪費掉了,這樣就不得不犧牲一部分空間了。這裏需要弄明白的就是一個Base64字符是8個bit,但是有效部分只有右邊的6個 bit,左邊兩個永遠是0
那麼怎麼用6個有效bit來表示傳統字符的8個bit呢?8和6的最小公倍數 是24,也就是說3個傳統字節可以由4個Base64字符來表示,保證有效位數是一樣的,這樣就多了1/3的字節數來彌補Base64只有6個有效bit 的不足
Cookie Base64注入代碼分析
以Less-22爲例
第89行進行base64加密
根據126行和144行發現存在Cookie漏洞
即就是沒有過濾
當你在瀏覽器輸入賬戶和密碼時
用Burp抓包
你會在Cookie看到Base64加密的用戶名
然後你通過Decoder進行Base64解碼
Cookie Base64注入
意思就是把你想要注入的sql語句經過Base64編碼後注入
Sqlmap的安全測試
上圖的倒數第二行
使用上述命令可能不會成功
因爲我們注入語句不是base64編碼的
建議嘗試以下的
要用到sqlmap本身的文件
將我們注入sql語句變爲base64編碼後的