一、如果发现一个url可能是注入点之后我们可以尝试手注,但是一般的网站都会过滤一些字符串。
在^没有被过滤的时候可以利用它来测试
异或:xor或^
逻辑运算就是:同真异假(两个条件结果相同就为真,结果不同就为假)
例如:1^0 就是 1 ,1^1 就是 0
例如:?id=1’ ^ (length(‘union’)!=0)--
如果union被过滤,则后面条件的结果就是假的,前面也是假的,url返回正确
如果union没有被过滤,则后面的条件的结果就是真的,而前面是假的,url返回错误
也可以是?id=1’ ^ (length(‘union’)=5)--
二、简单的sql绕过
基本关键字:括号、空格、引号、#、=、 、and、or、order、select、union、update、inster、into、delete、outfile……
一些绕过的方法:
1、 大小写混写
2、 使用url编码替换字符 ‘ ',# #
3、 十六进制绕过 where=“user” where=0x7573657273
4、使用&& || 代替and or
5、双写关键字 aandnd
6、绕过空格:用tab键代替空格
用回车chr(13)&chr(10),url编码的形式
用括号 id=1(and)1=1
7、=用like、rlike、等代替
8、使用/**/注释符来,重组关键字 un/**/i/**/on
9、注释负://,-- , /**/, #, -- , -- -, ;, ,--a
如果是使用gbk的网页编码的网站也可以利用宽字节来绕过
三、宽字节注入
宽字节注入:‘被转义成‘,可以通过宽字节绕过转义把’逃逸出来
gbk 占用两字节
ASCII占用一字节
如果网站的字符集是GBK,MYSQL使用的编码也是GBK的话,利用gbk取值范围(第一个字节129-254,第二个字节64-254),会解析为一个汉字,这样就会是去应有的作用。例如