SQL注入之oracle注入+SQLbypass+sqlmap实战
学习路还很长,切莫轻言放弃!
目录
Oracle数据库介绍
Oracle数据库和MySQL数据库的差别
Oracle数据库注入
SQLbypass姿势
sqlmap工具实战(kali自带)
Oracle数据库介绍
Oracle数据库是全球最知名的关系型数据库管理系统(RDBMS)之一,由美国甲骨文公司(Oracle Corporation)开发并维护。作为企业级数据管理解决方案的市场领导者,Oracle数据库在可靠性、安全性、可伸缩性和性能方面具有卓越表现,被广泛应用于各类关键业务场景,包括金融、电信、政府和大型企业的各种复杂应用。
**核心特性:**
1. **关系模型**:基于关系理论设计,通过表格结构组织数据,并支持SQL(Structured Query Language)以实现对数据的高效查询、更新和管理。2. **高可用性与容错性**:Oracle数据库提供了一系列高级功能来保证服务的连续性和数据的完整性,如实时备份与恢复、故障切换、分布式事务处理等。
3. **可伸缩性**:能够支持从单机到大规模集群环境的部署,可通过分区、网格计算、读写分离等多种方式灵活扩展系统性能和存储容量。
4. **安全性**:内置了丰富的安全措施,包括但不限于用户权限管理、角色分配、审计、透明数据加密(TDE)、虚拟私有数据库(VPD)等,确保数据在存储和传输过程中的安全性。
5. **高性能**:Oracle数据库优化器可以生成高效的执行计划,结合索引、内存缓存、并行查询等功能提升查询速度。
6. **跨平台兼容**:可在多种操作系统平台上运行,包括Linux、Windows、Unix、IBM主机等,并且支持云计算和容器化部署。
7. **PL/SQL支持**:Oracle数据库引入了PL/SQL编程语言,允许开发者编写存储过程、触发器、函数等复杂的数据库内部程序,增强系统的灵活性和可编程能力。
8. **分布式数据库管理**:Oracle数据库还支持分布式数据库环境,使得多个物理数据库能够像一个逻辑数据库那样协同工作,便于进行数据分布和集中式管理。
9. **企业级特性**:提供了Oracle RAC(Real Application Clusters)、Data Guard、GoldenGate等组件,用于实现集群、数据同步和容灾解决方案。
总之,Oracle数据库是一个功能强大、高度成熟的数据管理平台,旨在满足企业和组织在不同发展阶段对数据存储、分析和处理的需求。随着技术发展,Oracle数据库也不断推出新的版本和技术特性,以适应大数据、云计算和AI时代的挑战。
Oracle数据库和MySQL数据库的差别
Oracle数据库与MySQL数据库之间的主要差别包括以下几个方面:
规模和应用场景:
- Oracle:通常被认为是大型企业级数据库,适合处理海量数据和高并发访问场景,广泛应用于金融、电信、政府等需要极高稳定性和可靠性的领域。
- MySQL:起源于开源社区,主要用于中小型应用,随着版本的迭代和InnoDB存储引擎的优化,MySQL也能够支持大型网站和复杂应用,尤其在Web服务、云计算和移动应用等领域广泛应用。
开放源代码与成本:
- Oracle:虽然提供了商业版的闭源数据库产品,但也有一些免费或低成本版本(如Express Edition),但总体上其许可费用较高,且维护和支持成本相对较大。
- MySQL:由甲骨文公司拥有,但仍保持开源特性,可以免费下载和使用,对于预算有限或注重成本控制的企业具有吸引力。
事务处理能力:
- Oracle:全面支持ACID事务,并且从很早开始就提供了强大的事务管理和恢复机制,适用于对数据一致性要求极高的场景。
- MySQL:默认配置下,MyISAM存储引擎不支持事务,但InnoDB存储引擎完全支持事务处理,而且在最新版本中,MySQL的事务处理能力得到了显著提升。
功能与性能:
- Oracle:提供了丰富的高级功能,例如分区、表空间、高级索引、并行查询等,同时通过内存管理、资源调度等技术实现高性能计算。
- MySQL:虽然早期版本的功能相对简单,但随着发展,MySQL也增加了很多企业级功能。在某些特定场景下,MySQL可能提供更好的性能表现,尤其是在读密集型应用中。
安全性与权限管理:
- Oracle:具备高度精细的权限管理体系和安全性设置,如角色分配、审计规则等,适合安全敏感环境。
- MySQL:同样具有用户权限管理机制,但在早期版本中可能不如Oracle成熟和精细,不过近年来也在不断完善。
安装与维护:
- Oracle:安装配置较为复杂,系统资源占用较多,维护管理通常需要专业技能。
- MySQL:安装简便,占用资源较少,易于管理和维护,特别适合快速部署和开发测试环境。
平台支持:
- Oracle:跨平台支持广泛,能够在多种操作系统上运行。
- MySQL:同样支持多平台,尤其在Linux环境下表现出色,由于开源性质,有广泛的社区支持和兼容性。
备份与恢复:
- Oracle:提供了逻辑和物理备份方法,以及完善的灾难恢复解决方案。
- MySQL:也支持各种备份策略,但在早期版本中可能需要更多手动操作或借助第三方工具进行更复杂的备份与恢复任务。
Oracle数据库注入
Oracle数据库注入是一种针对Oracle数据库系统的SQL注入攻击,它发生在Web应用程序未能有效验证或过滤用户输入的情况下。当恶意用户向应用提交精心构造的输入时,这些输入可能包含可执行的SQL代码片段,从而改变了原本预定执行的SQL查询逻辑。
以下是一些Oracle数据库注入的表现形式和防范方法:
**表现形式:**
1. **布尔型注入**:通过构造条件判断语句来确定是否存在某个特定记录,例如`username = 'admin' OR 1=1`。
2. **基于时间的盲注**:利用Oracle内置的延时函数(如`DBMS_LOCK.SLEEP()`)来判断条件是否满足,根据响应时间变化推断数据。
3. **堆叠注入**:在PL/SQL环境中,通过堆叠注入可以执行额外的操作,如调用存储过程、触发器等。
4. **联合注入**:通过 UNION 操作将多个SELECT语句合并以从不同表中获取信息。**防范措施:**
1. **参数化查询**:使用预编译的PreparedStatement,确保用户输入不会被解释为SQL命令的一部分,而是作为参数传递给查询。
2. **输入验证与过滤**:对所有用户提供的数据进行严格的校验和清理,去除非法字符、特殊符号以及SQL关键字。
3. **最小权限原则**:限制数据库连接账户仅拥有完成任务所需的最低权限,避免直接使用具有大量权限的超级管理员账号。
4. **安全编码实践**:不要在代码中拼接SQL字符串,始终假定所有用户输入都是不可信的,并采用安全编程框架和ORM工具。
5. **使用Oracle的内置安全特性**:
- 启用数据库审计功能跟踪潜在的SQL注入攻击。
- 使用Oracle的ROWNUM、绑定变量、WITH语句等特性降低注入风险。
- 对于复杂的应用场景,可以通过PL/SQL包和程序单元来封装并严格控制对数据库的访问。6. **保持数据库软件及时更新**:安装最新的安全补丁和修复程序,减少已知漏洞的风险。
总之,预防Oracle数据库注入的关键在于加强应用程序的安全设计,充分认识到所有外部输入都有可能是恶意的,并采取相应的防御措施。同时,定期进行安全审查和渗透测试也是必不可少的。
SQLbypass姿势
参考文章:
生命在于学习——SQL注入绕过-CSDN博客
sqlmap工具实战(kali自带)
基本参数使用:
-u 指定URL
-dbs 检测数据库名
--current-db 查看当前数据库
-D 指定数据库
--tables 列出表名
-T 指定表名
--columns 列名探查
--dump 数据导出
--dump all 脱库
--batch 自动模式
--threads 调整线程数
--os-shell 获得操作系统shell
实例演示:检测是否存在注入漏洞(GET请求)
sqlmap -u "http://target.com/vuln.php?id=1"
注入点指定:
sqlmap -u "http://target.com/vuln.php?a=xw&id=1" -p id
测试POST数据注入:
sqlmap -u "http://target.com/login.php" --data="username=admin&password=123456"
指定数据库类型:
sqlmap -u "http://target.com/vulnerable.php?id=1" --dbms=mysql
自动探测并利用注入点:
sqlmap -u "http://target.com/vulnerable.php?id=1" --auto
枚举数据库信息:
sqlmap -u "http://target.com/vulnerable.php?id=1" --dbs
获取MySQL数据库中的表名:
sqlmap -u "http://target.com/vulnerable.php?id=1" -D mysql --tables
从USERS表中提取列名:
sqlmap -u "http://target.com/vulnerable.php?id=1" -D MySQL -T users --columns
获取USERS表中数据:
sqlmap -u "http://target.com/vulnerable.php?id=1" -D MySQL -T users --dump
更新数据库内容
sqlmap -u "http://target.com/vulnerable.php?id=1" -D mysql --update="users' SET password='new_password' WHERE username='admin'"
下载文件:
sqlmap -u "http://target.com/vulnerable.php?id=1" --file-read=/path/to/file
操作系统命令执行: (同样,这仅适用于演示目的或授权安全审计,在未经授权的情况下是非法的)
sqlmap -u "http://target.com/vulnerable.php?id=1" --os-cmd="id"
相关文章:
SQL注入之oracle注入+SQLbypass+sqlmap实战
学习路还很长,切莫轻言放弃! 目录 Oracle数据库介绍 Oracle数据库和MySQL数据库的差别 Oracle数据库注入 SQLbypass姿势 sqlmap工具实战(kali自带) Oracle数据库介绍 Oracle数据库是全球最知名的关系型数据库管理系统(RDBMS)…...

【GPTs分享】GPTs分享之Write For Me
Write For Me 是一个专门定制的GPT版本,旨在为用户提供高质量的文本内容创作服务。它适用于各种写作需求,从商业计划、学术文章到创意故事等。下面是从简介、主要功能、使用案例、优点和局限性几个方面对Write For Me 的详细介绍。 简介 Write For Me …...

css4浮动+清除浮动
浮动 一.常见网页布局1.三种布局方式2.布局准则 二.浮动(float)1.好处2.概念3.三大特性4.使用5.常见网页布局模板6.注意点 三.清除浮动1.why2.本质3.语法4.四种way(后三个都是给父级添加)清除浮动总结 一.常见网页布局 1.三种布局…...

外包干了3个月,技术倒退明显...
先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试…...

STM32控制数码管从0显示到99
首先 先画电路图吧!打开proteus,导入相关器件,绘制电路图。如下:(记得要保存啊!发现模拟一遍程序就自动退出了,有bug,我是解决不了,所以就是要及时保存,自己重…...

【机器学习算法】KNN鸢尾花种类预测案例和特征预处理。全md文档笔记(已分享,附代码)
本系列文章md笔记(已分享)主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习,伴随浅显易懂的数学知识,让大家掌握机器学习常见算法原理,应用Scikit-learn实现机器学习算法的应用࿰…...

Windows 自带的 Linux 子系统(WSL)安装与使用
WSL官网安装教程: https://learn.microsoft.com/zh-cn/windows/wsl/install Windows 自带的Linux子系统,比用VM什么的香太多了。可以自己看官方教程,也可以以下步骤完成。 如果中间遇到我没遇到的问题百度,可以在评论区评论&#…...

C语言--贪吃蛇
目录 1. 实现目标2. 需掌握的技术3. Win32 API介绍控制台程序控制台屏幕上的坐标COORDGetStdHandleGetConsoleCursorinfoCONSOLE_CURSOR_INFOSetConsoleCursorInfoSetConsoleCursorPositionGetAsyncKeyState 4. 贪吃蛇游戏设计与分析地图<locale.h>本地化类项setlocale函…...

原型设计工具Axure RP
Axure RP是一款专业的快速原型设计工具。Axure(发音:Ack-sure),代表美国Axure公司;RP则是Rapid Prototyping(快速原型)的缩写。 下载链接:https://www.axure.com/ 下载 可以免费试用…...
HeadFirst读书笔记
一、设计模式入门 1、使用模式最好的方式“把模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用它们”。以往是代码复用,现在是经验复用。 2、软件开发的一个不变的真理就是变化。 二、设计原则 1、找出应用中可能需要变化之…...

【C++】---内存管理new和delete详解
一、C/C内存分布 C/C内存被分为6个区域: (1) 内核空间:存放内核代码和环境变量。 (2)栈区:向下增长(存放非静态局部变量,函数参数,返回值等等) …...

go-zero微服务入门教程
go-zero微服务入门教程 本教程主要模拟实现用户注册和用户信息查询两个接口。 准备工作 安装基础环境 安装etcd, mysql,redis,建议采用docker安装。 MySQL安装好之后,新建数据库dsms_admin,并新建表sys_user&#…...
蓝桥杯刷题--python-12
3768. 字符串删减 - AcWing题库 nint(input()) sinput() res0 i0 while(i<n): if s[i]x: ji1 while(j<n and s[j]x): j1 resmax(j-i-2,0) ij else: i1 print(res) 3777. 砖块 - AcWing题库 # https://www.a…...

LeetCode LCR 085.括号生成
正整数 n 代表生成括号的对数,请设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n 3 输出:[“((()))”,“(()())”,“(())()”,“()(())”,“()()()”] 示例 2: 输入&#x…...

抖音视频评论数据提取软件|抖音数据抓取工具
一、开发背景: 在业务需求中,我们经常需要下载抖音视频。然而,在网上找到的视频通常只能通过逐个复制链接的方式进行抓取和下载,这种操作非常耗时。我们希望能够通过关键词自动批量抓取并选择性地下载抖音视频。因此,为…...

【web】云导航项目部署及环境搭建(复杂)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、项目介绍1.1项目环境架构LNMP1.2项目代码说明 二、项目环境搭建2.1 Nginx安装2.2 php安装2.3 nginx配置和php配置2.3.1 修改nginx文件2.3.2 修改vim /etc/p…...
软件测试人员必会的linux命令
文件和目录操作: ● ls:列出目录中的文件和子目录。 ● cd:改变当前工作目录。 ● mkdir:创建新目录。 ● rm:删除文件或目录。 ● cp:复制文件或目录。 ● mv:移动或重命名文件或目录。 文本查看和编辑: ● cat:查看文件内容。 ● more或less:分页查看文件内…...

Mac使用K6工具压测WebSocket
commend空格 打开终端,安装k6 brew install k6验证是否安装成功 k6 version设置日志级别为debug export K6_LOG_LEVELdebug执行脚本(进入脚本所在文件夹下) k6 run --vus 100 --duration 10m --out csvresult.csv script.js 脚本解释&…...

小程序--vscode配置
要在vscode里开发微信小程序,需要安装以下两个插件: 安装后,即可使用vscode开发微信小程序。 注:若要实现鼠标悬浮提示,则需新建jsconfig.json文件,并进行配置,即可实现。 jsconfig.json内容如…...

linux僵尸进程
僵尸进程(Zombie Process)是指在一个进程终止时,其父进程尚未调用wait()或waitpid()函数来获取该进程的终止状态信息,导致进程的资源(如进程表中的记录)仍然保留在系统中的一种状态。 当一个进程结束时&am…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...

SAP学习笔记 - 开发26 - 前端Fiori开发 OData V2 和 V4 的差异 (Deepseek整理)
上一章用到了V2 的概念,其实 Fiori当中还有 V4,咱们这一章来总结一下 V2 和 V4。 SAP学习笔记 - 开发25 - 前端Fiori开发 Remote OData Service(使用远端Odata服务),代理中间件(ui5-middleware-simpleproxy)-CSDN博客…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...