当前位置: 首页 > news >正文

SQL注入的绕过方式

1.注释与空白符绕过

利用#,--,/**/替代被过滤的注释符

利用%09(Tab),%0A(换行) ,/**/代替空格:如union%0Aselect%0A1,2,3

2.编码绕过:

URL编码,双重编码,十六进制编码,Unicode编码,

3.大小写混淆:

sEleCT代替select,UnIon代替union

4.字符串拼接与函数

GHAR()函数:' or 1=1——> ' or char(49)=char(49) //CHAR(n),其中n是一个整数,表示ASCLL码值

CONCAT函数 :select ——> CONCAT('s','elect')

十六进制字符串:admin——> 0x61646D696E

5.内联注释(MYSQL特有):MySQL 的内联注释通常以 /* 开始,以 */ 结束。它可以在 SQL 语句的任何位置使用

6.绕过空格过滤

代替字符:%09(Tab),%0A(换行),%0C(换页)

括号绕过:union(select(1),2,3)

7.分块传输与参数污染

分块编码:将请求分块发送,绕过WAF检测

参数污染:提交多个同名函数(如?id=1&id=union select 1),应用程序可能取第一个,而WAF取第二个

8.动态执行与存储过程

EXEC命令(SQL Server):EXEC('select * from users')

prepare语句(MySql):

SET @sql = CONCAT('SEL','ECT 1');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

9.宽字节注入(GBK编码)

在GBK编码中,以下字节序列可以被利用:

%df(0xDF),%bf(0xBF),%27(0x27,即单引号)

实例:假设过滤器只检查单个字节,过滤掉单引号 ' 和反斜杠 \。由于 0xBF0x27 组合在一起是一个合法的多字节字符,过滤器可能无法检测到单引号 ',(单独的’不合法,与%bf组合在一起就合法了)

10,二次注入

第一次注入将恶意代码插入到数据库中,'; DROP TABLE users; --

相关文章:

  • MySQL基础关键_013_常用 DBA 命令
  • 三款实用电脑工具
  • 机器学习之静态推理与动态推理:选择适合你的策略
  • ACTF2025 - Web writeup
  • Femap许可使用数据分析
  • uniapp自定义导航栏搭配插槽
  • 学习threejs,使用Physijs物理引擎
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】电商数据分析案例-9.3 商品销售预测模型
  • C++中volatile关键字详解
  • Ubuntu通过源码编译方式单独安装python3.12
  • 高并发内存池(二):项目的整体框架以及Thread_Cache的结构设计
  • Starrocks 的 ShortCircuit短路径
  • 橡胶制品行业质检管理的痛点 质检LIMS如何重构橡胶制品质检价值链
  • WebRTC 源码原生端Demo入门-1
  • 02_线性模型(回归线性模型)
  • # YOLOv2:目标检测的升级之作
  • 在Cline上调用MCP服务之MCP实践篇
  • 图像匹配导航定位技术 第 11 章
  • 虚拟 DOM 与 Diff 算法
  • 计算机视觉——MedSAM2医学影像一键实现3D与视频分割的高效解决方案
  • 黑灰产工作室为境外诈骗集团养号引流,冒充美女与男性裸聊后敲诈勒索
  • 宇数科技王兴兴:第一桶金来自上海,欢迎上海的年轻人加入
  • 虚假认定实质性重组、高估不良债权价值,原中国华融资产重庆分公司被罚180万元
  • 俄罗斯今日将举行“胜利日”阅兵,有何看点?
  • 上海楼市“银四”兑现:新房市场高端改善领跑,二手房量价企稳回升
  • 陕西澄城樱桃在上海推介,向长三角消费者发出“甜蜜之邀”