红队视角:.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="employeeQuery"value="SELECT * FROM Employees"/>
<add key="factory"value="System.Data.SqlClient"/>
</appSettings>
在
.NET
应用中,将数据库连接信息或查询模板存储在
<appSettings>
配置块中
将数据库查询模板,比如
employeeQuery
或提供程序名称,比如
factory
放在
Web.config
中,便于统一修改和维护,无需重新编译代码。
另外,
通过修改配置文件即可切换数据库提供程序,比如从
SqlClient
改为
OracleClient
,提高代码可移植性。
1.2 后端配置调用
后端代码通过
WebConfigurationManager.AppSettings
读取查询,并动态拼接排序参数:
// 漏洞代码片段(反编译获取)
string baseQuery = ConfigurationManager.AppSettings["employeeQuery"];
string orderBy = Request.QueryString["sort"];// 用户可控输入
string query =$"{baseQuery} ORDER BY {orderBy}";// 直接拼接
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["customerId"];
using(SqlCommand cmd =newSqlCommand("SELECT * FROM Orders WHERE customerId=@id", connection))
{
cmd.Parameters.AddWithValue("@id", customerId);
// 执行查询...
}
另外,还可
以通过
使用
aspnet_regiis
加密
Web.config
中的连接字符串,命令如下所示。
aspnet_regiis -pef "connectionStrings""C:\YourAppPath"-prov "DataProtectionConfigurationProvider"
本次渗透测试表明,开发者对配置文件的安全意识普遍薄弱
,导致其成为攻击者的重要突破口。红队成员应重点关注以下场景:
1. 动态拼接SQL的配置项(如
AppSettings
中的查询模板)。
-
明文存储的数据库连接字符串。
-
隐藏的管理接口或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 安全审计课程持续更新中,以下是部分之前已发布的录播章节一览:
详细的内容与结构,请参考下方的星球大纲版块,
专属福利
-
学习模式: 代码审计知识星球
在线录播视频
+后续漏洞挖掘直播、内部专属交流社区答疑解惑; -
优享福利:加入.NET代码审计星球后
赠送永久
dot.Net安全基础入门星球。
课程评价
欢迎对.NET代码审计关注和关心的同学加入我们 [dot.Net安全代码审计] ,目前已有近 100+ 位朋友抢先预定。
星球门票后期价格随着内容和质量的不断沉淀会适当提高,
越早加入越划算!
现在加入星球可享受星球早鸟价,
现在加入星球可享受星球100元优惠券或送出一套团队新书《.NET安全攻防指南》签名版。
期待在这里能遇到有情有义的小伙伴,大家聚在一起做一件有意义的事,
可扫描下方老师二维码了解更多详情。