【发布时间】:2020-12-15 17:10:13
【问题描述】:
我收到了一份漏洞报告。
XML 被注入到 URL“XInclude”中。我试图找到一个验证来阻止 XML 被执行。我的 Web 应用程序是使用带有 Web 表单的 Visual Studio C# 构建的。
我正在考虑从 web.config 或 IIS 验证这一点。我不确定是否必须添加代码来验证或解析 XML。
问题详情:
URL 路径文件名似乎容易受到 XML 注入的影响。有效载荷:
<mhx xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include href="http://o6vsilg7waiopz0impyw3z2cn3twho5ptgl3br0.burpcollaborator.net/foo"/></mhx>
已发送到服务器。此有效负载包含一些引用外部域上的 URL 的 XML。应用程序与该域交互,表明解析器处理了注入的 XML。
请求
GET /Edit/Employee/%3cmhx%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/mhx%3e?RequestId=428 HTTP/1.1
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Connection: close
【问题讨论】:
-
您需要创建单独的minimal reproducible example,它会产生相同的行为并且行为类似于您的应用程序。没有代码就不可能知道如何加载 XML。仅在 url 中添加指向 XML 文件的链接本身不会引入安全问题。
-
你试过这个代码吗? @Jay
标签: c# asp.net xml security webforms