sql注入的部分漏洞原理

第一大类:整数注入
例如:id=-1 union select 1,database(),user()
这种漏洞比较好理解,只是运用起来需要考虑全面一点。

第二大类:编码注入
首先是宽字节注入
一般来说网站都会有addslashes来躲避一些简单的注入,但是如果该网站是使用gbk编码的,那么漏洞又来了。
mysql在使用GBK编码的时候,会认为两个字符是一个汉字(前一个ascii码要大于128,才到汉字的范围)
看例子:
id=1’ 一般来说你都不会得到什么信息,只要这个php文件不是随堂练习
id=1%df%27 ,你会发现有错误反馈,这就是注入的曙光。%df与函数代入的%5c形成了两个字节,gbk认为他是汉字。
接着我们就可以利用 union select来注入了。

iconv同样存在致命的漏洞,虽然避免了宽字节,但是錦‘刚好可以逃出,原理与上述类似。

接着是二次urldecode注入
这也比较好玩,最常见的就是%2527二次转码后变成我们想要的,然后进行注入。