原来致远OA的登录密码是这么玩的呀,快看看你能找到规律吗?

admin 2025年4月25日00:24:11评论0 views字数 4396阅读14分39秒阅读模式
点击蓝字,关注我们

原来致远OA的登录密码是这么玩的呀,快看看你能找到规律吗?
注意⚠️

重点!

上次创建了 泛微OA圈 之后,得到了各方老板和技术大佬们的支持。这次我们创建一个 致远OA圈,希望能够帮助大家,有困难一起解决,有钱一起赚!如果大家想加入的话,可以加文末微信,添加时请备注回复 Z。

 前言 ·

在企业信息化管理中,密码安全是数据防护的第一道防线。致远协同OA系统支持多种加密算法,管理员可根据企业安全需求设置合适的加密策略,但是可能对自己系统当前使用的登录密码的加密算法不清楚。本文将详细介绍如何查看当前加密算法、不同加密算法的特点,助力企业提升账号安全防护能力。

 1.如何确定系统加密算法?

快来看看,你能找到这个规律吗?

SELECT config_value FROM ctp_config WHERE config_item = 'encrypt_data' AND config_category = 'system_switch';
使用上述SQL查询后找到若返回结果包含  "userPassword" : "enable" ,对应的 moduleId ,比如:

{    "encryptMode": 1,     "encryptModules": [{            "moduleId": 1,             "encryptAction": {                "userPassword": "enable",                 "attachment": "middle",                 "text": "disable",                 "secrecy": null,                 "appLog": "disable",                 "signatureData": null,                 "salary": null,                 "officePhone": null,                 "cellPhone": null,                 "email": null,                 "homeAddress": null,                 "socialSecurityAccount": null,                 "idcard": null            }        }, {            "moduleId": 2,             "encryptAction": {                "userPassword": null,                 "attachment": null,                 "text": null,                 "secrecy": null,                 "appLog": null,                 "signatureData": null,                 "salary": "enable",                 "officePhone": "disable",                 "cellPhone": "disable",                 "email": "disable",                 "homeAddress": null,                 "socialSecurityAccount": null,                 "idcard": "disable"            }        }, {            "moduleId": 3,             "encryptAction": {                "userPassword": null,                 "attachment": null,                 "text": null,                 "secrecy": null,                 "appLog": null,                 "signatureData": "disable",                 "salary": null,                 "officePhone": null,                 "cellPhone": null,                 "email": null,                 "homeAddress": null,                 "socialSecurityAccount": null,                 "idcard": null            }        }],     "encryptModeEnums": [1, 2, 3]}
上述查询返回结果中开启登录密码加密的是moduleId=1, 那么,可以使用下面SQL继续查询:

select config_value from ctp_config where config_item = 'action_algorithm_map' and config_category='system_switch';
那么可能它查询的结果返回是:

[{        "key": "1",         "actionMap": {            "ENCRYPT_EMAIL": "SYS_AES",             "ENCRYPT_ATTACHMENT": "SYS_AES",             "ENCRYPT_APP_LOG": "SYS_AES",             "ENCRYPT_ID_CARD": "SYS_AES",             "ENCRYPT_OFFICE_PHONE": "SYS_AES",             "ENCRYPT_CELL_PHONE": "SYS_AES",             "ENCRYPT_PWD": "SYS_SHA256",             "ENCRYPT_SALARY": "SYS_NUMBER",             "ENCRYPT_TEXT": "SYS_AES",             "SIGNATURE_DATA": "SYS_SHA256"        }    }, {        "key": "2",         "actionMap": {            "ENCRYPT_EMAIL": "SYS_SM4_V_3",             "ENCRYPT_ATTACHMENT": "SYS_SM4_V_3",             "ENCRYPT_APP_LOG": "SYS_SM4_V_3",             "ENCRYPT_ID_CARD": "SYS_SM4_V_3",             "ENCRYPT_OFFICE_PHONE": "SYS_SM4_V_3",             "ENCRYPT_CELL_PHONE": "SYS_SM4_V_3",             "ENCRYPT_PWD": "SYS_SM3",             "ENCRYPT_SALARY": "SYS_NUMBER",             "ENCRYPT_TEXT": "SYS_SM4_V_3",             "SIGNATURE_DATA": "SYS_SM3"        }    }, {        "key": "sansecJCE",         "actionMap": {            "ENCRYPT_EMAIL": "SAN_SM4",             "ENCRYPT_ATTACHMENT": "SAN_SM4",             "ENCRYPT_APP_LOG": "SAN_SM4",             "ENCRYPT_ID_CARD": "SAN_SM4",             "ENCRYPT_OFFICE_PHONE": "SAN_SM4",             "ENCRYPT_CELL_PHONE": "SAN_SM4",             "ENCRYPT_PWD": "SAN_SM3",             "ENCRYPT_SALARY": "SYS_NUMBER",             "ENCRYPT_TEXT": "SAN_SM4",             "SIGNATURE_DATA": "SAN_SM3"        }    }]
对应上文中提到的 moduleId=1 我们找到 "key": "1" 的部分,那么 ENCRYPT_PWD 对应的SYS_SHA256 就是登录账号密码的加密算法。

 2.算法介绍 ·

在致远OA系统中默认预置的登录密码加密算法有3种,分别是:

加密算法

特点

使用场景

SHA-256

国际通用哈希算法,不可逆,抗碰撞性强

适用于普通企业环境,满足基础安全需求

SM3(国密)

中国商用密码标准,安全性高,符合等保要求

政府、金融、国企等对国产加密有要求的场景

SAN_SM3

(三未信安)

基于硬件加密机,支持国密算法,安全性更高

高安全等级企业,如银行、证券、军工等

那么对应seeyon-ctp-core.jar中的算法实现具体如下:

// SHA-256加密(默认)new EncryptCoderSha256().signature("明文密码""登录账号名");// SM3国密加密new EncryptCoderSm3Impl().signature("明文密码""登录账号名");// 三未信安SM3加密new EncryptCoderSansecSM3Impl().signature("明文密码""登录账号名");
所有,我们可以通过java代码,通过已知的账号和密码,使用上述算法进行处理之后,就可以得到保存在数据库表中org_principal表中的credential_value字段中的值来判断系统使用的是哪个密码了。

 3.如何切换算法?

通过上述介绍,你是否已经知道怎么切换系统登录的加密算法了,只需要将ENCRYPT_PWD对应的算法名称改了更新到数据库就可以了,但是,这样的话系统已有的所有的账号的密码就失效了,需要重新批量生成指定的密码,更新到数据库中,最后重启服务器就好了,一般在系统初始化安装部署的时候或者因为安全等级规定的进行批量生成。

但是,又有一个问题,有些邪恶的人会使用知道人的账号提前去登录别人的账号,导致信息泄露等。可以开发更新后将密码通过短信或者邮箱等方式发送给对方,各自的密码使用脚本批量初始化生成好安全的密码即可。

当然,也可以参考seeyon-ctp-core.jar中的加密算法实现,来自定义实现加密算法,也是可以的。

 4.最佳安全实践建议

1、定期更换密码(如90天一次),降低泄露风险;

2、强制使用复杂密码策略,避免弱密码风险;

3、结合多因素认证(MFA),如短信验证码、动态令牌等。

原来致远OA的登录密码是这么玩的呀,快看看你能找到规律吗?

原文始发于微信公众号(OA大助手):原来致远OA的登录密码是这么玩的呀,快看看你能找到规律吗?

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月25日00:24:11
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   原来致远OA的登录密码是这么玩的呀,快看看你能找到规律吗?https://cn-sec.com/archives/3959764.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息