首页 > 数据库 >SQL注入绕过

SQL注入绕过

时间:2023-07-18 17:22:51浏览次数:28  
标签:database 空格 过滤 SQL 绕过 替换 select 注入

SQL注入绕过

1. 大小写绕过
SQL语句对大小写不敏感、开发人员做的黑名单过滤过于简单。

2. 双写绕过
双学绕过的原理是后台利用正则匹配到敏感词将其替换为空。例如:selselectect -> select

3. 空格过滤
如果遇到空格被过滤了,主要的几个思路都是想办法找一个代替品。能替换空格的有以下几个:
注释绕过(/**/):正常情况下只要这个没有被过滤就一定能替换
括号过滤():将所有的关键字都用括号括起来就可以达到替换空格分隔的作用
url编码:用%20替换空格或者用其它的url编码,%09、%0a、%0b、%0c、%0d 、%a0、%00
回车换行、Tab替换:回车换行也可以用做覆盖功能替换空格。

4. 注释过滤
如果(--+)注释被过滤,可以使用#、;%00、--(两个减号一个空格)
用其他数据闭合:
select * from test where id='2'
===>
select * from test where id='2' or '2'='2'

5. 引号过滤
无法出现引号又必须要用引号,可以将参数的值和单引号或者双引号绑定在一起然后转换为16进制最后在输入时在前加0x。

6. 逗号过滤
如果在mid(database(),1,1)、substr(database(),1,1)、substring(database(),1,1)中的逗号过滤,可以使用substr(database() from 1 for 1)、mid(database() from 1 for 2)
limit 0,1
可以使用offset方法来替换逗号,例如:
select * from user limit 0,1
==>
select * from user limit 1 offset 0;
如果使用offset,原本逗号前后的数据要互相交换一下
union
img
使用了join替换了逗号。

7. 等号过滤
只过滤等号可以使用以下代替
<>:不等号的意思!=

regexp、like、rlike

8. 逻辑运算符过滤
过滤了"or、and、xor、not"可以使用相对应替换:"&&、||、|、!"

标签:database,空格,过滤,SQL,绕过,替换,select,注入
From: https://www.cnblogs.com/kalixcn/p/17563565.html

相关文章

  • mysql安装
    系统版本[root@mysql01~]#cat/etc/redhat-releaseCentOSLinuxrelease7.9.2009(Core)要安装mysql-8.0.26 1.关闭防火墙systemctlstopfirewalld&&systemctldisablefirewalld关闭selinux[root@mysql01~]#grep^SELINUX=/etc/selinux/configSELINUX=disable......
  • Android使用Dagger注入的方式初始化对象的简单使用
    一.Dagger简介Dagger2是Google开源的一款依靠注入结构,它的前身是square的Dagger1,Dagger2在Android中有着较为广泛的运用。Dagger2根据Java注解,采用annotationProcessor(注解处理器)在项目编译时动态生成依靠注入需求的Java代码,然后咱们在合适的位置手动完结......
  • SQL Server中数据类型之char、nchar、varchar、nvarchar的用法
    char数据类型char数据类型是固定长度的非unicode字符数据,如果是英文字符,占用1个字节,如果是汉字,占用2个字节。列如:char(10),可以存10个英文字母,5个汉字。char数据类型存储固定长度数据很方便,char字段上的索引效率极高,比如定义char(10),那么不论你存储的数据是否达到了10个字节......
  • Cobalt Strike进程注入——CreateRemoteThread案例复现和检测
    CobaltStrike进程注入——CreateRemoteThread案例复现和检测内网两台机器,操作如下: 我使用的是powershell反弹shell执行:看到的sysmon数据采集Networkconnectiondetected:RuleName:Alert,MetasploitUtcTime:2023-07-1803:00:37.856ProcessGuid:{d4c3f587-331d-64......
  • MySQL(二十一)MVCC多版本并发控制
    MySQL(二十一)MVCC多版本并发控制1什么是MVCCMVCC(MultiversionConcurrencyControl)多版本并发控制。即通过数据行的多个版本管理来实现数据库的并发控制,使得在InnoDB事务隔离级别下执行一致性读操作有了保障。就是为了查询一些正在被其他事务更新的值的时候,能够查到它们被更......
  • MySQL(十五)分析优化器的查询计划:Trace
    1MySQL(十五)分析优化器的查询计划:Trace​ OPTIMIZER_TRACE是mysql5.6引入的一项追踪功能,它可以追踪优化器做出的各种决策(比如访问表的方法、各种开销计算和各种转换等等),并将结果记录到表INFORMATION_SCHEMA.OPTIMIZER_TRACE表中。​ Trace功能默认是关闭的,需要开启trace,设置JS......
  • NET7中sqlsugar的使用
    NET7中sqlsugar的使用仿《深入浅出ASP.NETCORE》这书里的IRepository和RepositoryBase usingSqlSugar;usingSystem.Linq.Expressions;namespaceWebApplication1.DAL{///<summary>///所有仓储的约定,此接口仅作为约定,用于标识他们///</summary>......
  • hive sql 查询 所有表 行数
    HiveSQL查询所有表行数ApacheHive是一个基于Hadoop的数据仓库基础架构,它提供了一种类似于SQL的查询语言,称为HiveSQL。在Hive中,我们可以使用HiveSQL查询和处理大规模的结构化和半结构化数据。本文将介绍如何使用HiveSQL查询所有表的行数。Hive中的表在Hive中,表是数据的逻辑......
  • Mysql基础4-数据查询
    一、DQL介绍DQL全称:DataQueryLanguage(数据查询语言),用来查询数据库中表的记录。关键字:select 二、DQL语法select字段列表from表名列表where条件列表groupby分组字段列表having分组后条件列表orderby排序字段列表limit分页参数注意:本章......
  • postgresql + mybatis 使用中需要注意的问题
    1.mybatis是完全支持postgresql的。包括空间查询。<dependency><groupId>org.postgresql</groupId><artifactId>postgresql</artifactId><scope>runtime</scope></dependency>2.通过my......