红队视角:.NET Web.config 漏洞实战挖掘与利用

原文链接: https://mp.weixin.qq.com/s?__biz=MzUyOTc3NTQ5MA==&mid=2247500101&idx=1&sn=b23db40f233deddedec40faa521a9637

红队视角:.NET Web.config 漏洞实战挖掘与利用

专攻.NET安全的 dotNet安全矩阵 2025-07-17 00:30

图片

在 .NET Web 应用程序中,

Web.config

是核心配置文件,常用于存储数据库连接字符串、应用程序设置等敏感信息。然而,若开发者未对动态拼接的 SQL 查询进行安全处理,攻击者可通过注入恶意参数,比如 

sort

filter

等构造恶意 SQL 语句,导致 SQL 注入漏洞

本文以 

Web.config

中的 

AppSettings

配置为例,分析漏洞成因、攻击手法及修复方案。

01. 动态 SQL 拼接

在一次对某企业内网系统的渗透测试中,我们发现目标.NET应用存在一个“非典型”的SQL注入漏洞
——攻击入口不在前端表单,而在Web.config配置文件动态拼接的SQL语句中
。这种漏洞利用方式隐蔽性强,常规扫描器难以发现,但一旦掌握其原理,可快速实现数据泄露甚至提权。

1.1 目标系统分析

目标是一个基于.NET Framework的Web应用,通过

Web.config

存储数据库连接和查询语句:

<appSettings>
<add key=&#34;employeeQuery&#34;value=&#34;SELECT * FROM Employees&#34;/>
<add key=&#34;factory&#34;value=&#34;System.Data.SqlClient&#34;/>
</appSettings>

.NET

应用中,将数据库连接信息或查询模板存储在

<appSettings>

配置块中
将数据库查询模板,比如

employeeQuery 

或提供程序名称,比如

factory

放在

Web.config

中,便于统一修改和维护,无需重新编译代码。

图片

另外,
通过修改配置文件即可切换数据库提供程序,比如从

SqlClient

改为

OracleClient

,提高代码可移植性。

1.2 后端配置调用

后端代码通过

WebConfigurationManager.AppSettings

读取查询,并动态拼接排序参数:

// 漏洞代码片段(反编译获取)
string baseQuery = ConfigurationManager.AppSettings[&#34;employeeQuery&#34;];
string orderBy = Request.QueryString[&#34;sort&#34;];// 用户可控输入
string query =$&#34;{baseQuery} ORDER BY {orderBy}&#34;;// 直接拼接
DbCommand cmd = provider.CreateCommand();
cmd.CommandText = query;

攻击者可构造恶意输入,比如

1; DROP TABLE Users-- 

执行任意SQL命令。orderBy变量从外部获取后替换了string.Format占位符{1},这样使用SqlCommand 对象访问数据操作时触发SQL注入攻击,如下图提交sort = id,convert(int,@@version)

图片

02. 代码加固防御

可以

employeeQuery

等配置改为存储过程或参数化查询,具体代码可以参考如下配置。

// 使用SqlCommand参数化查询替代字符串拼接
string customerId = Request.QueryString[&#34;customerId&#34;];
using(SqlCommand cmd =newSqlCommand(&#34;SELECT * FROM Orders WHERE customerId=@id&#34;, connection))
{
    cmd.Parameters.AddWithValue(&#34;@id&#34;, customerId);
// 执行查询...
}

另外,还可
以通过
使用

aspnet_regiis

加密

Web.config

中的连接字符串,命令如下所示。

aspnet_regiis -pef &#34;connectionStrings&#34;&#34;C:\YourAppPath&#34;-prov &#34;DataProtectionConfigurationProvider&#34;

本次渗透测试表明,开发者对配置文件的安全意识普遍薄弱
,导致其成为攻击者的重要突破口。红队成员应重点关注以下场景:
1. 动态拼接SQL的配置项(如

AppSettings

中的查询模板)。

  1. 明文存储的数据库连接字符串。

  2. 隐藏的管理接口或API密钥。

通过结合代码审计、配置分析、漏洞利用三步法,可高效挖掘此类隐蔽漏洞,为后续攻击链构建奠定基础。

03 .NET安全扩展学习

以上相关的知识点已收录于
新书《.NET安全攻防指南》,全书共计25章,总计1010页,分为上下册,横跨.NET Web代码审计与红队渗透两大领域。

上册深入剖析.NET Web安全审计的核心技术,帮助读者掌握漏洞发现与修复的精髓;下册则聚焦于.NET逆向工程与攻防对抗的实战技巧,揭秘最新的对抗策略与技术方法。

04. NET代码审计学习

微软的.NET技术广泛应用于全球企业级产品,包括其知名的
Exchange

SharePoint
等,国内如 
某友的Cloud

某通的T系列

某蝶的云产品
等也广泛采用。各行业核心业务均依赖于此技术。这些基于.NET的系统频繁遭攻击,问题涵盖任意文件上传、反序列化漏洞、SQL注入、文件下载漏洞、命令执行漏洞等。

截至目前,星球已推出近
100节内容
 (还在持续增加),包括
70个视频+30份PDF文档
。我们已将内容细致划分为15个分类,并随新漏洞类型的出现持续扩展。在这里您将学到包括但不限于以下漏洞类型。

图片

涉及SQL注入漏洞、文件上传下载漏洞、任意文件操作漏洞、XML外部实体注入漏洞、跨站脚本攻击漏洞、反序列化漏洞、命令执行漏洞、未授权和越权漏洞、第三方组件漏洞等等,包括但不限于OWASP十大漏洞类型。

录播课程

.NET 安全审计课程持续更新中,以下是部分之前已发布的录播章节一览:

图片

图片

图片

详细的内容与结构,请参考下方的星球大纲版块,

图片

专属福利

  1. 学习模式: 代码审计知识星球
    在线录播视频
     +后续漏洞挖掘直播、内部专属交流社区答疑解惑;

  2. 优享福利:加入.NET代码审计星球后
    赠送永久
    dot.Net安全基础入门星球。

图片

课程评价

欢迎对.NET代码审计关注和关心的同学加入我们 [dot.Net安全代码审计] ,目前已有近 100+ 位朋友抢先预定。

图片

图片

图片

星球门票后期价格随着内容和质量的不断沉淀会适当提高,
越早加入越划算!
 现在加入星球可享受星球早鸟价,
现在加入星球可享受星球100元优惠券或送出一套团队新书《.NET安全攻防指南》签名版。

图片

期待在这里能遇到有情有义的小伙伴,大家聚在一起做一件有意义的事,
可扫描下方老师二维码了解更多详情。

图片