0x01 背景
.NET安全矩阵群有位师傅问起web.config里数据库连接字符串被编码加密,如何解密得到原始字符串.
之前星球和群里也分享过一些关于webconfig加解密的方法,但还有一类通过DESCryptoServiceProvider类实现对称加解密方式,今天我们就来聊一聊此类场景下的解密
1.1 基本原理
通过DESCryptoServiceProvider实现对称加密,常见的私钥数据加密时需提供8位长度的key,当解密时需反编译或配置文件里找到key,即可还原文本内容。如果还原失败可能的原因在于使用IV偏移了初始化向量,工具代码实现如下
1.2 使用方法
解密命令如下:SharpofDecryptWebconfig.exe -Dec 加密的连接字符串 自定义8位长度的密钥
SharpofDecryptWebconfig.exe -Dec B6P3WI+PnYVgqe14RevoL7iZ+ULeDITsH2BzmvCsjwYo6RerAShpTSDRyVN9HrAc1FXlj+fPqio= 12345678
加密命令改成:SharpofDecryptWebconfig.exe -Enc
SharpofDecryptWebconfig.exe -Enc server=.;Database=MSSQL;User ID=sa;Password=123456 12345678
工具已打包感兴趣的师傅可以自行研究测试。