Cookie Base64注入

Base64介绍

Cookie 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为例
Cookie Base64注入
第89行进行base64加密
Cookie Base64注入
根据126行和144行发现存在Cookie漏洞
即就是没有过滤
Cookie Base64注入
当你在浏览器输入账户和密码时
用Burp抓包
你会在Cookie看到Base64加密的用户名
Cookie Base64注入
然后你通过Decoder进行Base64解码

Cookie Base64注入

Cookie Base64注入
意思就是把你想要注入的sql语句经过Base64编码后注入

Sqlmap的安全测试

Cookie Base64注入
上图的倒数第二行
使用上述命令可能不会成功
因为我们注入语句不是base64编码的
建议尝试以下的
要用到sqlmap本身的文件
将我们注入sql语句变为base64编码后的
Cookie Base64注入