sql注入绕过技巧之打狗棒法

在这里插入图片描述

0x0001

首先针对 preg_replace 很多狗都是通过替换关键词来进行过滤:
preg_replace(‘A’ , ‘B’ , C) :执行一个正则表达式的搜索和替换,这个的意思是搜索C中符合A的部分,然后用B来代替。

1.大小写绕过

有些替换的过程中没有考虑到数据库执行过程大小写转换的问题,只处理了小写或大写的关键字,例如:select和SELECT会被过滤,但seLeCt并不会被防御机制检测到。于是我们可以使用
http://ip/index.php?login_id=-15 uNIoN sELecT 1,2,3,4…,去执行union查询。
大小写绕过用于只针对小写或大写的关键字匹配技术,正则表达式/express/i 大小写不敏感即无法绕过,这是最简单的绕过技术

2.双写绕过

有些会把关键字替换成空,比如会把“select、and”等关键字替换为空,这时候我们可以这么输入

http://ip/index.php?login_id=-15 UNIunionON SELselectECT 1,2,3,4….

只过滤一次,结果会被替换成:

http://ip/index.php?login_id=-15 UNION SELECT 1,2,3,4….

这样就可以达到绕过防御去执行SQL语句了。并且,有些开发不知道怎么想的,明明可以循环过滤,却只过滤几次,我们可以多构造几个关键字,防止全部替换为空。

3.针对空格的绕过

①.内部注释:
这个方法在于利用SQL语句的注释符来绕过,这种绕过方式只适用于如下防御机制:输入“unionselect”不会被检测到攻击;输入“union select”会被检测到,检测机制会以空格为界定符,把“union”和“select”分开成两个字符串去检测是不是攻击的特征码。我们可以构造如下payload去绕过检测:

http://ip/index.php?login_id=-15/**/un/**/ion/**/sel/**/ect 1,2,3,4…

②两个空格代替一个空格,用Tab代替空格

%20 %09 %0a %0b %0c %0d %a0 /**/

③括号绕

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值