电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 492 人浏览分享

某E-HR web.config数据库密码解密分析和分析小工具开发过程

[复制链接]
492 0
在一次.net代码审计过程中发现web.config文件中数据库密码被加密了。于是记录下分析过程

QQ截图20221130150555.png

配置文件中数据库密码看起来是经过base64编码的,直接base64解码无果,那应该是aes或者des
加密后对字节结果进行了base64。

QQ截图20221130150632.png

代码都已经编译到了bin/dll中

QQ截图20221130150705.png

反编译工具打开发现有些方法和代码被unicode编码了,需要去除混淆。

899.png

使用de4dot去除混淆

QQ截图20221130150818.png

首先需要快速定位到相关入口点,因为肯定有某个点去读取这些全局配置,读取那肯定会使用参数名但是
使用password作为关键字的话那肯定不合适。

898.png

通过dbname则快速定位到了入口点。

897.png

ConfigurationManager.AppSettings["password"];  读取web.config中password的字符串值 传入
Class1755.smethod_46方法中处理。

896.png

smethod_46方法中存在3套不同的解密key,如果初始key解密失败则尝试其他的key 跟进默
认Crypt3D.GetDesKey()中。

895.png

返回一个byte类型的数组。

894.png

抠出这段key保存。

893.png

在返回跟进 Crypt3DES.DeCryptFmBase64String

892.png

跟入Crypt3DES.crypt3DESSClass_0.DeCryptFmBase64String

891.png

跟入this.DeCryptToString

890.png

抠出这段核心解密代码

639.png

改成静态方法、删除所有this,using添加所需要的命名空间

638.png

636.png

633.png

补全缺失的数组即可。

632.png

631.png

解密函数已经扣完,开始调用。

630.png

解密函数需要传入两个byte数组,base64解码后的字节数组和deskey数组,deskey数组就是key
之前已经保存了。

629.png

解密小工具就完成了,成功手动的解出web.config加密的值。

评分

参与人数 1威望 +2 收起 理由
skytiger + 2 赞一个!

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.