SQL注入【ByPass总结】(八)

2023-12-30 13:04

本文主要是介绍SQL注入【ByPass总结】(八),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

0、前言

本文是SQL注入分享终结前篇,整理一些针对ByPass替换方法,和对应SQL注入修复建议。最后一篇ByPass靶场5关实战,会有点难,包含写成wp前后我花了5~6小时,而且内容有些多,所以以单独一篇分享。希望对大家在学习理解SQL注入有帮助。

像Access,MSSQL、Oracle注入我自己也没做靶场实验就不做分享了,大家如果感兴趣的话,可以网上搜索了解学习下。

1、常见ByPass

1.1、等号被过滤
1. 使用 >, <, <> 替换
and ascii(substr(database(),1,1))>xxx2.采用like, rlike语句
and database() like 't%'
注: rlike的内容为正则,正则写法与java一致,需要转义,例如’ \n’ 需要使用’ \\n’3.采用regexp,in,between
and database() regexp 'test.*'
Regexp函数使用方法与rlike类似,都是正则匹配
and database() in ('test')
and substr(database(),1,1) BETWEEN 't' and 't'
1.2、substr、 mid被过滤
1.采用locate,position,instr,lpad,rpad
and LOCATE('e',database())in('2')
and LOCATE('t',database(),4)in('4')注:
locate(str1,str2)
返回str1字符串在str2里第一次出现的位置,没有返回0
Locate(str1,str2,pos)
返回str1字符串在str2里pos(起始位置)出现的位置,没有返回0
pos必须大于第一次出现的位置,才能显示第二次出现的位置
1.3、逗号被过滤
1.采用%2C
id= -1' union select 1%2C2%2C3--+2.采用from xx for xx, from(x)
and substr(database()from 2 for 1)='e'
1.4、and/or被过滤
1.使用&&、 ||或者like
&& substr(database(),1,1)='t'
|| substr(database(),1,1)='t'
like+if(substr(database(),1,1)='s',1,0)=1--+(此处的like需要结合判断函数使用)注:在mysql中 and与or 是可以用 &&和||相互代替的
如: and 1=1 ->&& 1=1 or 1=1 ->||1=1
不过在oracle中, ||为拼接字符,如: ’a’||’b’->’ab’,相当于mysql中的concat()
1.5、关键字被过滤
1.大小写绕过,如User(), dAtaBASE(), SelEct等。
2.只过滤一次时,双重关键字绕过,如selselectect, ununionion, oorr等。
3.and/or+空格被替换为空时, andand+空格(oror+空格)绕过。
4.注释符绕过, //, -- , /**/, #, --+, -- -, ;,%00,--a, /*!*/。
5.编码绕过:如URLEncode编码, ASCII,HEX,unicode编码绕过。

2、SQL注入修复建议

1.过滤sql相关特殊字符
2.参数化查询
3.使用预编译的存储方式

这篇关于SQL注入【ByPass总结】(八)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/552915

相关文章

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socket read timed out的问题

《如何解决Druid线程池Cause:java.sql.SQLRecoverableException:IO错误:Socketreadtimedout的问题》:本文主要介绍解决Druid线程... 目录异常信息触发场景找到版本发布更新的说明从版本更新信息可以看到该默认逻辑已经去除总结异常信息触发场景复

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

MySQL 表的内外连接案例详解

《MySQL表的内外连接案例详解》本文给大家介绍MySQL表的内外连接,结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录表的内外连接(重点)内连接外连接表的内外连接(重点)内连接内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选,我

MySQL的ALTER TABLE命令的使用解读

《MySQL的ALTERTABLE命令的使用解读》:本文主要介绍MySQL的ALTERTABLE命令的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、查看所建表的编China编程码格式2、修改表的编码格式3、修改列队数据类型4、添加列5、修改列的位置5.1、把列

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL

解决mysql插入数据锁等待超时报错:Lock wait timeout exceeded;try restarting transaction

《解决mysql插入数据锁等待超时报错:Lockwaittimeoutexceeded;tryrestartingtransaction》:本文主要介绍解决mysql插入数据锁等待超时报... 目录报错信息解决办法1、数据库中执行如下sql2、再到 INNODB_TRX 事务表中查看总结报错信息Lock

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno