前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >解密.NET配置文件web.config

解密.NET配置文件web.config

作者头像
亿人安全
发布2023-02-28 09:48:04
9730
发布2023-02-28 09:48:04
举报
文章被收录于专栏:红蓝对抗红蓝对抗

0x01 背景

近期有师傅反馈拿到了.NET web.config文件,发现含有数据库账密连接字符串所在的标签<connectionStrings>被加密了,导致看不到MSSQL账户和密码,如下图

图上可看出由DataProtectionConfigurationProvider类提供加密保护的,DataProtectionConfigurationProvider 使用windows内置的密码学技术加密的,除此之外.NET还提供了另一种RsaProtectedConfigurationProvider 使用RSA公钥加解密,以下内容将具体介绍基于这两类方式进行加解密。

0x02 配置

在.NET中有两种配置数据库连接代码的方式,它们分别是 appSettings 和 connectionStrings 。在使用 appSettings 和 connectionStrings 配置数据库连接代码时,可分别在 <configuration> 下添加如下代码

2.1 appSettings

<appSettings>
<add key="conn" value="server=服务器名;database=数据库名;uid=用户名;password=密码;"/>
</appSettings>

2.2 connectionStrings

<connectionStrings>
<add name="conn" connectionString="server=服务器名;database=数据库名;uid=用户名;password=密码" providerName="System.Data.SqlClient" />
</connectionStrings>

0x03 DataProtectionProvider

使用.NET FrameWork自带的aspnet_regiis.exe将配置文件web.config中指定的标签进行加解密,aspnet_regiis 位于%WinDir%\Microsoft.NET\Framework\<versionNumber>目录下,提供了以下几个常用的参数,因为笔者这里用物理路径表示,所以未用到 -app

-pef 指定要加密的配置节,这里是 connectionStrings
-app 指定该配置文件所在的虚拟目录
-prov 指定要使用的提供程序,这里使用的是 DataProtectionConfigurationProvider

加密的命令 aspnet_regiis.exe -pef "connectionStrings" "D:\WebSite\test" -prov "DataProtectionConfigurationProvider",解密的命令 aspnet_regiis.exe -pdf "connectionStrings" "D:\WebSite\test",解密后的结果如下图所示

0x04 RSAProtectedProvider

使用 RSAProtectedConfigurationProvider类加解密web.config时,第一步需要创建名称为dotnetKey的RSA密钥容器,命令如下

aspnet_regiis -pc "dotnetKey" -exp

将创建好的配置项内容粘贴到web.config里,主要是在config文件中加入configProtectedData配置节点,这里注意一下此时的容器创建的name是dotnetProvider,如下图

加密的命令 aspnet_regiis -pef "connectionStrings" "D:\WebSite\test" -prov "dotNetProvider",如图

解密的命令 aspnet_regiis -pdf "connectionStrings" "D:\WebSite\test"。需要注意一点aspnet_regiis.exe运行所需的权限较高,必须是管理员权限才能调用,像上月底爆出的用友畅捷通的默认权限是足够的,但在通常的iis权限属于Users组,权限不够的,另外因为加密过程中使用了一个基于本机的密钥,这意味着解密过程必须在同一台计算机上完成才可以,所以通过任意下载文件下载web.config回本地是解不开的,如下图在IIS权限下执行解密命令返回空,未能解密,通常需要提权后才能解密。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 亿人安全 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x01 背景
  • 0x02 配置
    • 2.1 appSettings
      • 2.2 connectionStrings
      • 0x03 DataProtectionProvider
      • 0x04 RSAProtectedProvider
      相关产品与服务
      数据库
      云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档