SQL注入绕过手段(学习笔记)

大小写过滤
列如:过滤了and,order by等字符
可以改变大小写AnD 1=1 OrdER来进行绕过

双写绕过
如果在程序中设置出现关键字之后替换为空,那么SQL注入就不会发生,对于这种过滤策略就可以使用双写绕过

比如出现了一个关键字union 被替换为空,我们就可以使用双写绕过UNIunionON

编码绕过
利用网络中的URl在线编码,绕过SQL注入的过滤机制
http://tool.chinaz.com/Tools/URLEncode.aspx?qq-pf-to=pcqq.temporaryc2c
在这里插入图片描述
内链注释绕过
/* union select*/注释里面的内容不会执行
/* !union select*/ 会执行里面的内容

绕过去除注释符的sql注入
mysql的注释符:

  1. 单行注释:–+ 或 --空格 或 #
  2. 多行注释:/**/

注释符在SQL注入漏洞过程中,起到闭合,单引号 双引号,单括号,多括号的的功能

过滤函数
preg_replace(mixed $pattern,mixed $replacement,mixed $subject);执行一个正则表达式的搜索和替换

$pattern:要搜索的模式,可以是字符串或一个字符串数组
$replacement:用于替换的字符串或字符串数组
$subject:要搜索替换的目标字符或字符串数组

比如:
preg_replace(select,1,select456)把select456出现的select替换为1变为1456

查看一段过滤代码,在id传参里输入# --就会被替换为空,就无法使用这两个进行注释
在这里插入图片描述我们可以利用 or ‘1’='1闭合自带的单引号进行绕过

打开靶场输入’ --+可以看到报错了,没有把后面的内容注释掉
在这里插入图片描述使用’ or ‘1’=‘1 成功绕过
在这里插入图片描述就可以进行注入了
/sqli-labs-master/Less-23/?id=-1’ union select 1,database() '3
在这里插入图片描述绕过过滤and和or的SQL注入
查看代码,and和or都会被替换成空
在这里插入图片描述因为后面加了个i,表示不区分大小写,大小写绕过排除

可以使用双写绕过oorr ,两个敏感词汇中添加注释a/**/nd,利用符号代替
and–&& or–||

打开靶场正常注入,报错or没有了
http://192.168.127.128/sqli-labs-master/Less-25/?id=1%27%20or%201=1%20–+
在这里插入图片描述使用 || 成功绕过
在这里插入图片描述
绕过去除空格的SQL注入
查看靶场源码,过滤了很多SQL注入要用到的字符,符号和空格
在这里插入图片描述绕过空格策略
使用编码:hex,urlencode 空格URL编码 %0a %09 TAB键
%0a 新建一行
%0c 新的一页
%0d return 功能
%0b TAB建(垂直)

打开靶场
输入,可以看到被过滤了
在这里插入图片描述把空格替换为%0d or替换为||成功绕过
/sqli-labs-master/Less-26/?id=1’%0d||'1
在这里插入图片描述绕过去除union和select的SQL注入
查看靶场源码,s表式区分大小写,这里没有过滤and和or
在这里插入图片描述大小写绕过
在这里插入图片描述在这里插入图片描述在这里插入图片描述

发布了15 篇原创文章 · 获赞 0 · 访问量 150

猜你喜欢

转载自blog.csdn.net/weixin_45291045/article/details/105282378