sql绕过基础

时间:2022-04-29 05:00:56

一、如果发现一个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),会解析为一个汉字,这样就会是去应有的作用。例如