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

 找回密码
 注册

QQ登录

只需一步,快速开始

[WEB前端技术] 某E-HR web.config数据库密码解密分析和分析小工具开发过程

[复制链接]
 楼主| zhaorong 发表于 2022-11-30 15:22:37 | 显示全部楼层 |阅读模式
在一次.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 赞一个!

查看全部评分

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

本版积分规则

手机版|小黑屋|VIP|电脑疯子技术论坛 ( Computer madman team )

GMT+8, 2025-1-23 07:24

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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