一次平平无奇的 Oracle 注入

news2025/1/11 4:22:07

在某次项目中,首先是发现注入点,数据库是Oracle,利用方式是时间盲注:在这里插入图片描述
因为需要具体数据,所以要深入利用,手工肯定不方便,所以直接上 Sqlmap:
在这里插入图片描述
Sqlmap也可以扫出该注入点,但想要进一步查询数据时,却发现Sqlmap利用不起来,无法查出数据:

在这里插入图片描述
为了确定查询数据失败原因,此时加上参数 -proxy http://127.0.0.1:1080 使流量经过burp,发现某些常用的查询方式,在该oracle数据库中会报错,如 SELECT banner FROM v$version WHERE ROWNUM=1 等(可能是数据库版本原因?)

语句错误返回在这里插入图片描述
语句正常返回在这里插入图片描述

使用其他某些语法也会报错,比如 Sqlmap payload 中的 CAST(%s AS VARCHAR(4000)) 、NVL(%s,’ ') 等,常见的 COUNT 方法也会报错。

大概确定了查询数据失败原因。那解决问题的方法也很简单,就是把有问题的数据库方法找出来,然后进行相关的替换就可以了。

打开 Sqlmap 目录下 data/xml/queries.xml ,找到 Oracle 的payload 在这里插入图片描述
替换其中经过尝试会使程序错误的方法,其中 count 可以用 sum(1) 替代。同时也发现了 current_db 和 current_user 是同一个 payload,感觉有点问题,也顺便替换了,替换后的数据如下:

在这里插入图片描述
接下来就是修改具体的查询数据的语句了,其中有些 %s 占位符是命令行的输入,如 下面的 TABLE_NAME 的值就是命令行输入的 -T 参数的值

在这里插入图片描述
修改完成后,再使用 Sqlmap 跑数据,不断根据返回确定查询方法,根据请求结果调整 SQL 语句,最终能够跑起来了。

本以为这次平平无奇的注入就结束了,没想到新问题又出现了,Sqlmap 跑数据是能跑了,但因为注入点的利用方式是时间盲注,所以会受网络波动或者数据库响应的影响,跑出的数据经常会有错误,一看就不对劲,而且时间盲注效率很低,花时间的很多,数据输出很少,对于跑数据非常不方便:在这里插入图片描述
所以需要想办法,解决上述问题。在之前的测试中也发现了,当数据库报错时,返回的请求结果和正常是不一样的,所以可以利用这两个不同的页面差异构造布尔盲注,Oracle 数据库可以利用 1/0 报错的特性(Mysql就不会报错),将时间盲注转换成布尔盲注。

但 Sqlmap 并没有这种检测方法,所以要在 /data/xml/payloads/boolean_blind.xml 修改 payload,加入以下方法:

<test>
        <title>Oracle AND boolean-based blind - (custom)</title>
        <stype>1</stype>
        <level>1</level>
        <risk>1</risk>
        <clause>1</clause>
        <where>1</where>
        <vector> AND [RANDNUM]=(CASE WHEN ([INFERENCE]) THEN 1 ELSE 1/0 END)</vector>
        <request>
            <payload> AND  [RANDNUM]=(CASE WHEN ([RANDNUM]=[RANDNUM]) THEN [RANDNUM] ELSE  1/0 END )</payload>
        </request>
        <response> 
            <comparison> AND  [RANDNUM]=(CASE WHEN ([RANDNUM]=[RANDNUM1]) THEN [RANDNUM] ELSE  1/0 END) </comparison>
        </response>
        <details>
            <dbms>Oracle</dbms>
        </details>
    </test>

使 Sqlmap 能够按照自定义的语句查询数据结果:

在这里插入图片描述
最终,通过不断的测试,所有问题均已解决,能够非常高效的跑出具体的数据:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1459955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python开发户型图编辑器-2D/3D户型图展示

在现代家居设计中&#xff0c;户型图是不可或缺的工具&#xff0c;它为设计师和业主提供了一个直观的展示和规划空间的方式。然而&#xff0c;传统的户型图编辑软件往往复杂难用&#xff0c;限制了设计师的创作灵感。我们为您带来了一款全新的Python开发的户型图编辑器&#xf…

线上剧本杀APP小程序开发:开启全新的推理娱乐体验

随着数字化时代的到来&#xff0c;移动应用程序已经成为人们日常生活中不可或缺的一部分。在这个背景下&#xff0c;线上剧本杀APP小程序开发应运而生&#xff0c;为推理爱好者们提供了一种全新的娱乐方式。作为一家软件开发公司&#xff0c;我们很高兴为项目方提供有关线上剧本…

说一下 JVM 运行时数据区 ?

目录 一、程序计数器&#xff08;Program Counter Register&#xff09; 二、Java 虚拟机栈&#xff08;Java Virtual Machine Stacks&#xff09; 三、本地方法栈&#xff08;Native Method Stack&#xff09; 四、Java 堆&#xff08;Java Heap&#xff09; 五、方法区&…

maven插件exec-maven-plugin、maven-antrun-plugin使用详解

文章目录 前言一、exec-maven-plugin使用exec:java的使用idgoalsphaseconfigurationexec:exec的使用使用exec-maven-plugin来构建前端项目直接用mvn命令来使用exec-maven-plugin插件 二、maven-antrun-plugin使用echo打印功能拷贝文件拷贝文件夹ftp/scp/sshexec 总结 前言 在使…

数据结构链表力扣例题AC(3)——代码以及思路记录

160. 相交链表 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点&#xff0c;返回 null 。 AC写法一 struct ListNode *getIntersectionNode(struct ListNode *headA, struct ListNode *headB) {//思…

http前生今世

HTTP/0.9&#xff0c;仅支持GET方法&#xff0c;并且响应中没有HTTP头信息&#xff0c;只有文档内容。 HTTP/1.0增加了对POST方法、状态码、HTTP头信息等的支持&#xff0c;这一版本也是广泛应用的历史性版本。 HTTP/1.1引入了持久连接&#xff08;Persistent Connections&…

信号系统之连续信号处理

1 Delta 函数 连续信号可以分解为缩放和移位的增量函数&#xff0c;就像处理离散信号一样。不同之处在于&#xff0c;连续 delta 函数比其离散函数复杂得多&#xff0c;在数学上也抽象得多。我们不是用它是什么来定义连续 delta 函数&#xff0c;而是用它所具有的特征来定义它…

Python Web开发记录 Day1:HTML

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、HTML1、前端引入和HTML标签①前端引入②浏览…

公网对讲机可以和专网对讲机互通吗?

公网对讲机借助现有的4G/5G公网环境&#xff0c;能够承载更为丰富的宽带对讲功能&#xff0c;因而广受用户喜爱&#xff0c;其应用场景十分广泛。但在许多行业中&#xff0c;专网对讲机因其不可替代性&#xff0c;被视为关键通信应用&#xff0c;许多用户无法将其替换为公网对讲…

基于Web的网文管理系统

项目&#xff1a;基于Web的网文管理系统 伴随着时代的更替&#xff0c;我国人民的生活水平在不断提高&#xff0c;同时对生活娱乐的需求也在不断加大&#xff0c;我们在日常生活中通常会以多种方式娱乐自己&#xff0c;而阅读网络小说就是其中一种方式。随着计算机技术的成熟&a…

合金电阻与普通低阻值电阻的区别有什么区别

合金电阻与普通低阻值电阻的主要区别有以下几个方面&#xff1a; 1. 材料不同&#xff1a;合金电阻中使用的材料一般是金属合金&#xff0c;如尼龙合金、镍铬合金、钨合金等&#xff0c;而普通低阻值电阻使用的材料一般是金属或碳材料。 2. 特性不同&#xff1a;合金电阻具有较…

09MARL深度强化学习policy gradient

文章目录 前言1、Multi-Agent Policy Gradient Theorem2、Centralised State-Value Critics2、Centralised Action-Value Critics 前言 Independent learning算法当中每个智能体看待其他智能体为环境的一部分&#xff0c;加剧了环境非平稳性&#xff0c;而CTDE框架的算法能够降…

量子计算:数据安全难题

当今数字技术面临的最大挑战之一是安全系统和数据。为此&#xff0c;人们设计了复杂的算法来加密数据并通过称为对称加密的框架来保护数据。虽然这已被证明是成功的&#xff0c;但量子计算的进步&#xff08;利用量子力学比传统计算机更快地解决复杂问题&#xff09;可能会彻底…

http协议工具:apache详解

目录 一、常见的http服务程序 1、 Apache HTTP Server 介绍 1.1 apache 概念 1.2 apache 功能 1.3 apache 特性 2、MPM&#xff08;multi-processing module&#xff09;工作模式 2.1 prefork 2.2 worker 2.3 event 二、Apache HTTP Server安装和相关文件 1、安装方…

如何用GPT进行论文写作?

一&#xff1a;AI领域最新技术 1.OpenAI新模型-GPT-5 2.谷歌新模型-Gemini Ultra 3.Meta新模型-LLama3 4.科大讯飞-星火认知 5.百度-文心一言 6.MoonshotAI-Kimi 7.智谱AI-GLM-4 二&#xff1a;GPT最新技术 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析&#x…

彻底解决关于路由的问题,前端路由和服务端路由,history api 和 hash路由

首先路由分成两大块&#xff0c;分别是前端路由和服务端路由&#xff0c;而前端路由又分为两种模式&#xff0c;分别是 histroy api 模式和 hash 模式。 路由 前端路由&#xff1a;指在浏览器中进行路由控制的一种方式&#xff0c;通过监听 url 变化决定加载哪个页面组件或视图…

升级nodejs后服务器发生兼容性问题,怎么回退到之前的版本?

首先下载nvm 发布 coreybutler/nvm-windows (github.com) 安装好之后打开终端&#xff0c;可以查看当前版本 nvm list 安装你想要回退到的版本 nvm install 18.17.0 nvm use 18.17.0 出现这个之后完成

NestJS入门6:日志中间件

前文参考&#xff1a; NestJS入门1 NestJS入门2&#xff1a;创建模块 NestJS入门3&#xff1a;不同请求方式前后端写法 NestJS入门4&#xff1a;MySQL typeorm 增删改查 NestJS入门5&#xff1a;加入Swagger 1. 安装 nest g middleware logger middleware​ ​ ​ 2. lo…

java导出动态下拉框excel模板

1.原始模板 2.导出模板,下拉框为数据库中得到动态数据 public void downloadTemplate(HttpServletResponse response) throws IOException {// 所有部门List<String, String> departments expertManageMapper.selectAllDepartment();//所有职位List<String, String&g…

3ds Max视频怎么渲染 3ds Max云渲染操作

在3ds Max软件中制作视频动画本质上是逐帧生成画面&#xff0c;并将这些连续帧串联起来创造出动态连贯的视觉效果。常见的视频帧率包括25 FPS(每秒帧数)、60 FPS、以及120 FPS等&#xff0c;帧率的提升可以使视频动画更加流畅。在实质上&#xff0c;视频渲染就是动画渲染&#…