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

SQL注入漏洞之SQL注入基础知识点 如何检测是否含有sql注入漏洞

目录

什么是SQL注入

简单来说就是:

查找注入点:

基本流程

SQL 注入基础知识

URL编码

工具:

URL种得空格处理:

SQL注入点检测方式

引号注入检测SQL注入点

单引号双引号


什么是SQL注入

  • SQL注入攻击漏洞的原因,是由于程序员在编写Web程序时:

    • 没有对客户端(比如浏览器等)提交的参数进行严格的过滤和判断。

用户可以修改参数或数据

并传递至服务器端

导致服务端拼接了伪造的SQL查询语句---服务端连接数据库

  • 并将伪造的sql语句发送给数据库服务端执行

数据库将sql语句的执行结果

返回给了服务端

服务端又将结果返回给了客户端

  • 从而获取到敏感信息,甚至执行危险的代码或系统命令

简单来说就是:

  • 注入产生的原因是接受相关参数未经处理直接带入数据库查询操作

查找注入点:

  • 前端页面上所有提交数据的地方

不管是登录、注册、留言板、评论区、分页等等地方

只要是提交数据给后台,后台拿着该数据和数据库交互了

那么这个地方就可能存在注入点

基本流程

SQL 注入基础知识

URL编码

  • url编码是一种浏览器用来打包表单输入的格式。

  • 浏览器从表单中获取所有的name和其中的值 ,将它们以name/value参数编码(移去那些不能传送的字符,将数据排行等等)作为URL的一部分或者分离地发给服务器
  • 不管哪种情况,在服务器端的表单输入格式样子像这样:
  • 当 URL 路径或者查询参数中,带有中文或者特殊字符的时候,就需要对 URL 进行编码

  • 采用ASCII十六进制编码格式)
  • URL 编码的原则是使用安全字符去表示那些不安全的字符
  • 安全字符,指的是没有特殊用途或者特殊意义的字符

  • Key=Value
  • Ascill编码转转化成对应得数字

工具:

  • 小葵工具 URL编码 也可以存在于在线编码格式

URL种得空格处理:

  • 在URL中出现空格以+得方式来处理 URL get请求不能出现空格
  • Get UIL种 不能使用#号 只能使--注释符号+--

SQL注入点检测方式

引号注入检测SQL注入点

单引号双引号

引号测试,加了引号如果报错,证明存在注入点

  • 引号在加编码 绕过waf机制
  • 单引号闭合数据:$query="select id,email from member where username='vince' ";
  • 用单引号测试,会报错,双引号测试查不到数据,不报错

双引号闭合数据:$query='select id,email from member where username="vince"'; 用

  • 双引号测试,会报错,单引号测试查不到数据,不报错

or 1=1 一个条件为真,即为真,真的效果就是查询到表中所有数据

  • where id=1 and 1=1 两个条件为真才为真
  • 查询结果和不加1=1一样,and 1=2 一个条件为假
  • 即为假,查询条件为假,什么数据也没有,两个结合起来可以判断是否存在注入点

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


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

相关文章:

  • Elastic Agent 对 Kafka 的新输出:数据收集和流式传输的无限可能性
  • 一文讲解Java中的接口和抽象类
  • 笔灵ai写作技术浅析(一)
  • 飞牛NAS新增虚拟机功能,如果使用虚拟机网卡直通安装ikuai软路由(如何解决OVS网桥绑定失败以及打开ovs后无法访问飞牛nas等问题)
  • 使用python-docx包进行多文件word文字、字符批量替换
  • Java 大视界 -- Java 大数据中的隐私增强技术全景解析(64)
  • 【leetcode100】二叉树的层序遍历
  • Elasticsearch中的度量聚合:深度解析与实战应用
  • mock可视化生成前端代码
  • javascript-es6 (一)
  • 【Vim】Vim 中将文件内容复制到系统剪切板的方法
  • 基于Oracle 19C的ADVM与ACFS标准化实施文档
  • Python Pandas数据清洗与处理
  • RabbitMQ---面试题
  • Pyecharts图表交互功能提升
  • vue3+elementPlus之后台管理系统(从0到1)(day4-完结)
  • 在Ubuntu上安装RabbitMQ教程
  • Go语言快速开发入门
  • 微信开发者工具的快捷键
  • ray.rllib-入门实践-12:自定义policy
  • Maui学习笔记-SignalR简单介绍
  • MySQL中的读锁与写锁:概念与作用深度剖析
  • 延迟之争:LLM服务的制胜关键
  • Linux系统之gzip命令的基本使用
  • C++ 与机器学习:构建高效推理引擎的秘诀
  • Gary Marcus对2025年AI的25项预测:AGI的曙光仍未到来?