最新消息:关注人工智能 AI赋能新媒体运营

. NET Framework HTTP客户端代理设计缺陷,结合WSDL导入可构成远程代码执行攻击链

科技资讯 admin 浏览

WatchTowr Labs的安全研究人员公开了SOAPwn研究,揭示了.NET Framework内置的HTTP客户端代理HttpWebClientProtocol及其派生的SoapHttpClientProtocol存在设计缺陷。微软多次将相关报告标记为无需修补,但实际测试证实,攻击者可结合Web服务描述语言(WSDL)导入机制,在多款企业级产品上构建可重复利用的远程代码执行攻击链,部分场景甚至无需用户任何交互即可触发。

研究人员指出,这类简单对象访问协议(SOAP)客户端代理名义上用于通过HTTP访问XML Web服务,但在实现中会根据URL前缀自动选择不同的通信组件。也就是说,只要攻击者能修改代理的URL设置,就能将原本指向HTTP服务的地址改为指向本地文件路径或SMB共享路径。原本应作为SOAP请求发送的内容,反而可能被写入服务器文件系统,或被发送至攻击者控制的文件共享点:前者带来任意位置写入文件的风险,后者则导致NTLM哈希泄露。

许多.NET应用允许管理员输入WSDL地址,程序会通过ServiceDescriptionImporter自动生成并调用SOAP客户端代理。当WSDL由攻击者提供时,攻击者可在WSDL中篡改服务地址,将其指向服务器上的本地路径,并设计好SOAP内容结构,使代理在指定路径写入ASPX或CSHTML等可执行文件。表面上看是正常的Web服务调用,实际上却是在服务器指定位置写入Webshell或其他恶意脚本,供攻击者后续远程执行代码。

在已公开的案例中,研究人员在Barracuda Service Center RMM与Ivanti Endpoint Manager等产品中验证了完整的攻击流程,前者漏洞编号为CVE-2025-34392,已通过2025.1.1热修复更新处理;后者对应CVE-2025-13659。研究人员还指出,Umbraco 8 CMS、Microsoft PowerShell和SQL Server Integration Services也存在可利用场景,表明这并非单一实现疏漏,而是.NET SOAP HTTP客户端代理在实际使用中衍生的系统性问题。

研究人员提到,微软认为不应让不可信输入控制URL或WSDL来源,因此将问题归为应用程序与用户层面。在缺乏框架层修复的前提下,研究人员建议厂商和企业团队主动排查是否使用了SoapHttpClientProtocol与ServiceDescriptionImporter等组件,尤其是允许外部导入WSDL并动态生成代理的功能,应在应用层限制仅接受HTTP和HTTPS协议,并为WSDL来源设定明确的信任边界。