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

浅谈SQL注入注释符#和--+的运用场景和区别

在之前打DVWA靶场的时候我们就说明和运用过sql注入的注释符,但是最近我在打一个靶场的时候遇到了一个问题,后面经过查找资料和学习,也是增长了一点小知识。

这是一个针对sql注入的靶场,有很多等级划分,等于越高难度就越高,当时也是按着之前的经验,对地址栏进行sql语句的注入,测试是否存在注入点,因为之前注入语句的最后我都习惯使用#符号对后面的内容进行注释,但是在这就出现了报错,我细查了语句也没有语法错误,后面看了一下其他网友的分享,他们后面使用的是–+的符号,我尝试了一下也是能够顺利得出我要的信息。
在这里插入图片描述
#和–+虽然在sql语法中都是作为注释的作用,但是在sql注入的使用中也是存在区别和不同的应用场景,因此下面我们讲解一下。

一、作用与差别

符号- -+或- -#
注释类型SQL 标准注释MySQL 特有注释
URL 编码- -%20(空格编码)%23
适用数据库MySQL、Oracle、SQL Server、PostgreSQL主要 MySQL
浏览器处理无特殊含义# 可能被当作 URL 锚点

二:总结

从上面的表格我们能够清楚的对两种注释符号进行对比,#符号是mysql数据库特有的注释符,而- -则可以被大部分的数据库都可以进行识别,且- -与语句本体之间需要通过空格进行间隔,因此在我们构造注入语句时一般会采用- -+或- - %20对后面的语句进行注释。在往后进行sql手工注入时应该要习惯采用- -+,假如在- -+失效且数据库版本是mysql的情况下,我们再尝试使用#或者其他的注释符号进行测试。

http://www.lryc.cn/news/590205.html

相关文章:

  • rocky8 --Elasticsearch+Logstash+Filebeat+Kibana部署【7.1.1版本】
  • Hadoop(三)
  • Django REST Framework 入门指南:从 0 到 1 实现 RESTful API
  • 汇编 Call 指令运行原理详解:从跳转机制到堆栈操作
  • 基于 elements3 包装的 可展开 table 组件
  • uniapp各端通过webview实现互相通信
  • 并发编程-CountDownLatch
  • UniApp 多端人脸认证图片上传实现
  • 【PTA数据结构 | C语言版】前缀树的3个操作
  • 关于程序=数据结构+算法这句话最近的一些思考
  • 数字ic后端设计从入门到精通11(含fusion compiler, tcl教学)全定制设计入门
  • Java-数构链表
  • golang语法-----指针
  • 笔试——Day10
  • 简单易懂,什么是连续分配管理方式
  • Qt 将触摸事件转换为鼠标事件(Qt4和Qt5及以上版本)
  • Java线程创建与运行全解析
  • DuckDB 高效导入 IPv6 地址数据的实践与性能对比
  • #Datawhale组队学习#7月-强化学习Task1
  • java解析word文档
  • 使用JS编写一个购物车界面
  • C++ 面向对象
  • 第2章通用的高并发架构设计——2.3 高并发读场景方案2:本地缓存
  • 开源 python 应用 开发(七)数据可视化
  • Linux 定时器应用示例(修正版)
  • GIT版本回退
  • Python中可以反转的数据类型
  • GaussDB 数据库架构师修炼(五) 存储容量评估
  • 搜索框的显示与隐藏(展开与收起)
  • el-input 回显怎么用符号¥和变量拼接展示?