sql绕过基础
Posted Hello_date
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql绕过基础相关的知识,希望对你有一定的参考价值。
一、如果发现一个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编码替换字符 ‘ %27,# %23
3、 十六进制绕过 where=“user” where=0x7573657273
4、使用&& || 代替and or
5、双写关键字 aandnd
6、绕过空格:用tab键代替空格
用回车chr(13)&chr(10),url编码的形式%0d%0a
用括号 id=1(and)1=1
7、=用like、rlike、等代替
8、使用/**/注释符来,重组关键字 un/**/i/**/on
9、注释负://,-- , /**/, #, --+, -- -, ;,%00,--a
如果是使用gbk的网页编码的网站也可以利用宽字节来绕过
三、宽字节注入
宽字节注入:‘被转义成‘,可以通过宽字节绕过转义把’逃逸出来
gbk 占用两字节
ASCII占用一字节
如果网站的字符集是GBK,mysql使用的编码也是GBK的话,利用gbk取值范围(第一个字节129-254,第二个字节64-254),会解析为一个汉字,这样就会是去应有的作用。例如%df%5C%27(%bb%5C%27),前两个合并为一个汉字“縗’”(%5C是),然后‘就被逃逸出来了,然后就可以进行注入测试。
宽字节注入与html页面编码是无关的值型SQL注入无效。
以上是关于sql绕过基础的主要内容,如果未能解决你的问题,请参考以下文章
Web安全黑铁到传说四.常见漏洞攻防之SQL注入基础详解(权限提升绕过技巧注入技巧)