当前位置: 首页 > 知识库问答 >
问题:

asp。网asmx web服务ishow XXE漏洞-外部DNS

解高昂
2023-03-14

我们在asp.netasmx Web服务中发现了一个XML外部实体漏洞。

我们正在使用burp套件测试asp.net. asmx Web服务,以检查XML外部实体处理漏洞。请参阅:https://cheatsheetseries.owasp.org/cheatsheets/XML_External_Entity_Prevention_Cheat_Sheet.html#net

我们看到,当请求中包含DTD时,如下所示:

<!DOCTYPE soapenv:envelope PUBLIC "-//B/A/EN" "http://1234565.cigitalcollaborator.com">

将DNS请求发送到cigitalcollaborator.com.这表示asmx Web服务正在处理请求中的DTD。

我们正在使用。net版本4.5.2。

根据此链接,应该隐式阻止. net 4.5.2及更高版本的XXE漏洞:https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention_Cheat_Sheet#.NET_4.5.2_and_later

但不是...我们进行了DNS查找。

基础。net framework正在处理此asmx web服务的XML反序列化/序列化,因此这里没有需要我们真正修复的代码。我们不能正确地改变行为,因为它在底层框架的某个地方?

我们如何修复ASMX Web服务的此XXE漏洞?

谢谢你

乔恩·鲍

共有2个答案

傅茂实
2023-03-14

ASXM web服务被认为是遗留的,并没有收到所有错误修复,因为它们的扩展点有限。您可能想重新编写此文件,或者至少使用WCF或WebAPI等在其前面放置一个外观。。。

可悲的是,提到这一点的连接文章已经随着连接的退休而被删除,但是人们提到了链接到它们:

“它们基于旧的XML序列化技术,没有得到错误修复。(请参阅Microsoft 2010年11月1日的评论)”https://johnwsaunders3.wordpress.com/

狄宜然
2023-03-14

我认为在这里考虑两个不同的观点很重要:

首先,旨在跨使用各种不同技术的web应用程序进行自动扫描并不能证明存在漏洞。DNS查找与完全处理相关实体不同。如果对相关url发出了后续请求,并且处理了来自该url的数据,则您存在漏洞。您可以使用类似于Fiddler的代理来配置应用程序,以验证是否发出了此类请求。

其次,。NET默认情况下自4.5.2以来一直是安全的。这与保证安全不同。如果应用程序需要DTD处理,可以在设置中启用它:

var xmlReaderSettings = new XmlReaderSettings();
xmlReaderSettings.DtdProcessing = DtdProcessing.Parse;
var xmlReader = XmlReader.Create(new StringReader("EvilXml", xmlReaderSettings));

var xmlTextReader = new XmlTextReader(new StringReader("EvilXml");
xmlTextReader..DtdProcessing = DtdProcessing.Parse;

并使用XDocument解析器实现过程DTD

var xmlDocument = new XmlDocument();
// Implementations of XmlResolver are probably  unsafe
xmlDocument.XmlResolver = new MyCustomResolver(); 
// xmlDocument.XmlResolver = null is safe - should be the default from 4.5.2 
xmlDocument.LoadXml("EvilXml");

我可能会在源代码中搜索两个相关的文本字符串“DtdProcessing.Parse”和“XmlResolver”来排除这种情况。

 类似资料:
  • 在前面我已经给大家介绍了 ASP 脚本下的各种黑客技术、ASP 各种基础知识以及 ASP环境的搭建。虽然在第二章中,大家已经学会了 ASP 下的各种黑客技术了,但前面的都仅仅局限于工具及手工上,并没有深入到它的本质上。有了前面坚实的基础,所以这一章就开始带领大家如何分析 ASP 代码中存在的各种漏洞的分析及如何利用上去,深入到它的本质上去。 'or'='or'经典漏洞代码分析 经典'or'='or

  • 讲师:gh0stkey 整理:飞龙 协议:CC BY-NC-SA 4.0 任意密码找回 这是补天平台上的一个案例: http://www.118114.cn/reg.jsp 首先注册一个账号,然后找回。 我们收到的验证码是六位数。如果网站没有设置频率限制,或者最大尝试次数限制的话,那我们自然就会想到可以爆破它。 然后抓提交手机验证码的封包,我们可以看到没有任何图片验证码: 发送到 Burp 的 I

  • 为了防止XXE攻击,我禁用了Java DocumentBuilderFactory推荐的以下功能-https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Prevention\u Cheat\u Sheet。 如果我没有将外部常规实体和外部参数实体设置为false,是否存在任何漏洞?因为当我们将disallow doctype decl设

  • 我有网站运行在node.js&express服务器上。我了解到该网站存在以下漏洞。 远程攻击者可以发送巧尽心思构建的HTTP请求,并强制其针对某些流量边缘模式对错误连接进行日志记录语句。这会导致并发使用内存池进行单独的连接,并引发影响。 利用HTTP报头的间隔会在服务器进程中造成溢出,从而覆盖堆栈的一部分,通过覆盖下一个操作的字节来倒回请求处理。 一旦对暴露的endpoint进行相应的精心编制;环

  • 是否存在一种“内部安全应用程序”场景,其中由于早期的Log4J版本,软件比没有它时更容易受到攻击? 我在下面概述了这个问题的一些细节。 我正在做一些工作来减轻最近Log4J漏洞的风险。我知道有一些方法涉及从组织的所有计算机、服务器、远程桌面等中删除早期Log4J jar文件的所有痕迹,在完成之前,组织被视为“处于危险之中”。然而,我也想知道如此大规模的全面努力支出是否相称[编辑22-12月21日1

  • 外部服务器通常封装了外部数据封装器(foreign-data wrapper)用来访问一个外部数据源所需的连接信息。在主窗口中,点击 “其他”->“外部服务器”来打开外部服务器的对象列表。 若要访问外部 PostgreSQL 服务器的数据,你可以安装 postgres_fdw 扩展。右击外部服务器对象列表的任意位置并选择“安装 postgres_fdw 扩展”。 外部服务器设计器 “外部服务器设计