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

SQL注入漏洞之绕过[前端 服务端 waf]限制 以及 防御手法 一篇文章给你搞定

目录

绕过手法

前端代码绕过

后端代码绕过

各种字段进行验证 union

大小写绕过

双写逃过

强制类型判断

引号特殊编码处理。

内联注释绕过

注释符绕过

or/and绕过

空格绕过

防御SQL注入的方法

使用预编译语句

使用存储过程

检查数据类型


绕过手法

前端代码绕过

  • Js逆向 绕过 加解密绕过 学习加解密 加密格式验证
  •  BP 挂载很多插件

后端代码绕过

  • 各种字段进行验证 union

大小写绕过

  • 绕过防御后一样能执行 大小写混合绕过
  • sql语句对一些关键词不区分大小写,如果网站代码没有进行大小写检查可以使用
UniOn select * from user
  • 双写逃过

  • 网站代码找到关键词后删除,可以通过双写构造删除后符合语法的sql语句
selselectect * from user
  • 强制类型判断

  • 引号特殊编码处理。

  • 内联注释绕过

  • mysql扩展功能,在/*后加惊叹号,注释中的语句会被执行
and /*!select * from user*/
  • 注释符绕过

  • 注释符不影响语句的连接
sel/**/ect * from user
  • or/and绕过

  • 使用逻辑符号代替:and = &&, or = ||
  • 绕过剔除and和or的SQL注入
  • 1、Mysql中的大小写不敏感,大写与小写一样。
  • 2、Mysql 中的十六进制与URL编码。
  • 3、符号和关键字替换 and – &&、or – ||。
  • 4、内联注释与多行注释 /! 内联注释/ /多行注释/。
select * from emp where sal > 500 && sal < 3000;

  • 空格绕过

有的网站过滤了空格,可以尝试使用

%0a、%b、%0c、%0d、%09、%a0
/**/、()
-----------------------------------------------------------

 select * from/**/emp where (sal) > 500 && sal < 3000;
 select * from emp where sal > 500 and sal < 3000;

防御SQL注入的方法

使用预编译语句

  • 绑定变量,攻击者无法改变SQL的结构。
  • 不同的编程语言Java、Php有不同的语法,就不做展示了。
  • 在网络安全-php安全知识点中提到了使用pdo来防御。

使用存储过程

  • 使用安全的存储过程对抗SQL注入,由于存储过程中也可能存在SQL注入问题,应尽量避免使用动态SQL语句。

检查数据类型

  • 例如
    • 需要输入的是整型,那么,可以判断用户的输入,如果包含非整型,例如,字符串"AND"、“BENCHMARK”等,则不运行sql语句。其他类型,例如,邮箱等可以通过使用正则表达式来进行判断。

喜欢本文的请动动小手点个赞,收藏一下,有问题请下方评论,转载请注明出处,并附有原文链接,谢谢!


http://www.kler.cn/a/532949.html

相关文章:

  • 全栈开发:使用.NET Core WebAPI构建前后端分离的核心技巧(二)
  • 一文速览DeepSeek-R1的本地部署——可联网、可实现本地知识库问答:包括671B满血版和各个蒸馏版的部署
  • Linux 信号机制
  • git进阶--6---git stash
  • PHP Mail:高效邮件发送解决方案详解
  • 注解(Annotation)
  • 从Transformer到世界模型:AGI核心架构演进
  • 51单片机 06 定时器
  • Effective Objective-C 2.0 读书笔记—— 接口与API设计
  • Java-数据结构-优先级队列(堆的使用)
  • 数据中心服务器对PCIe测试的需求、挑战和应用
  • 【大数据技术】本机DataGrip远程连接虚拟机MySQL/Hive
  • 5分钟掌握React的Redux Toolkit + Redux
  • 深度学习篇---张量数据流动处理
  • windows环境下如何在PyCharm中安装软件包
  • 【CSS】什么是响应式设计?响应式设计的基本原理,怎么做
  • 实际操作 检测缺陷刀片
  • 【自学嵌入式(8)天气时钟:天气模块开发、主函数编写】
  • 新手STM32:基于HAL库的定时器和PWM输出
  • 利用Docker简化机器学习应用程序的部署和可扩展性
  • 项目中常用中间件有哪些?分别起什么作用?
  • (10) 如何获取 linux 系统上的 TCP 、 UDP 套接字的收发缓存的默认大小,以及代码范例
  • Mac M1 ComfyUI 中 AnyText插件安装问题汇总?
  • Unity 2D实战小游戏开发跳跳鸟 - 计分逻辑开发
  • 1.PPT:天河二号介绍【12】
  • Vue - toRaw 与 markRaw