• 首页
  • 首页
  • 公司资讯
  • 江苏三计划官网
  • 让建站和SEO变得简单

    让不懂建站的用户快速建站,让会建站的提高建站效率!

    江苏三计划官网你的位置:江苏三计划 > 江苏三计划官网 > URL解析荒唐导致DoS、RCE等

    URL解析荒唐导致DoS、RCE等

    发布日期:2022-05-15 15:17    点击次数:151

    筹商人员劝诫说,由于16个不同的URL解析库之间的不一致而导致的8个不同的安全纰谬,可能导致多种Web应用才智中的圮绝行状(DoS)情况、信息泄露和辛劳代码实践(RCE)。

    这些纰谬是在为多样话语编写的第三方Web包中发现的,何况像Log4Shell和其他软件供应链威逼同样,可能已被导入到数百或数千个不同的Web应用才智和款式中。受影响的是Flask(一个用Python编写的小型Web框架)、Video.js(HTML5视频播放器)、Belledonne(免费的VoIP和IP视频电话)、Nagios XI(网罗和行状器监控)和Clearance(Ruby密码考据)。

    跳至问题摘录。

    领略URL解析错落词语

    URL解析是将Web地址明白为其底层组件的进程,以便正确地将流量路由到不同的取悦或不同的行状器。可用于多样编程话语的URL解析库频繁被导入到应用才智中以竣事此功能。

    来自Claroty Team82筹商部门和Synk的筹商人员在周一的一份分析敷陈中写道:“URL试验上是由五个不同的组件组成的:有算计打算、权限、旅途、查询和片断。”“每个组件都饰演着不同的变装,它决定了苦求的公约、持有资源的主机、应该取得的真的资源等等。”

    把柄概述分析,由于每个库进行解析行动的方式不同,安全纰谬会一会儿出现。

    Team82和Synk筹商了16个不同的URL解析库,包括:urllib(Python)、urllib3(Python)、rfc3986(Python)、httptools(Python)、curl lib(cURL)、Wget、Chrome(Browser)、Uri(.NET)、URL(Java)、URI(Java)、parse_url(PHP)、url(NodeJS)、url-parse(NodeJS)、net/url(Go)、uri(Ruby)和URI(Perl)。

    他们在这些库解析组件的方式中发现了五类不一致:

    Scheme欺凌:波及丢失或Scheme方式荒唐的URL的欺凌 斜杠欺凌:包含不法例斜杠数目的URL欺凌 反斜杠欺凌:波及包含反斜杠(\)的URL欺凌 URL编码数据欺凌:波及包含URL编码数据的URL欺凌 Scheme Mix-ups:波及在莫得特定Scheme解析器的情况下解析属于某个Scheme的URL欺凌

    把柄敷陈,问题在于,由于两个主要的Web应用才智建筑纰谬,这些不一致可能会产生易受报复的代码块:

    使用多个解析器:岂论是出于假想依然已然,建筑人员偶而会在款式中使用多个URL解析库。由于某些库可能会以不同方式解析换取的URL,因此可能会在代码中引入纰谬。 措施不兼容:不同的解析库是把柄不同的Web圭臬或URL措施编写的,这在假想上形成了不一致,这也会导致纰谬,因为建筑人员可能不熟练URL措施之间的相反尽头含义(举例,应该查验或计帐的内容)。

    手脚真的报复场景的示例,斜线欺凌可能导致行状器端苦求伪造(SSRF)纰谬,这可用于竣事RCE。筹商人员阐发说,不同的库以不同的方式惩处斜杠数目跳跃频繁数目的URL(举例https:///www.google.com):其中一些会忽略敷裕的斜杠,而另一些则将URL阐发为莫得主机。

    关于前者(大无数当代浏览器和cURL都取舍这种方法),继承方式荒唐、斜杠数目不正确的URL可能导致SSRF,筹商人员阐发说:“[不]忽略额外斜杠的库......将解析这个[方式荒唐]URL手脚具有空权限(netloc)的URL,因此通过了对netloc(在本例中为空字符串)与google.com进行比拟的安全查验。然则,由于cURL忽略了敷裕的斜杠,因此它将取得URL从而绕过尝试的考据,并导致SSRF纰谬。”

    把柄Claroty的说法,URL欺凌亦然绕过Log4Shell补丁的原因,因为在JNDI查找进程中使用了两种不同的URL解析器:一个解析工具于考据URL,另一个解析工具于取得URL。

    筹商人员阐发说:“把柄每个解析器惩处URL的片断部分(#)的不同,权限也会发生变化。”“为了考据URL的主机是否被允许,Java的URI被使用,它解析URL、索要主机,并查验主机是否在允许主机的白名单中。事实上,如果咱们使用Java的URI解析这个URL,咱们会发现URL的主机号是127.0.0.1,它包含在白名单中。然则,在某些操作系统(主如果macOS)和特定建立上,当JNDI查找进度取得此URL时,它不会尝试从127.0.0.1取得它,而是向127.0.0.1#.evilhost.com发出苦求。这意味着天然此坏心负载将绕过AllowedDaPost localhost考据(由URI解析器完成),但它仍将尝试从辛劳位置取得类。”

    URL解析安全纰谬

    在他们的分析中,筹商人员在第三方Web应用才智中发现了八个由URL解析欺凌导致的高危纰谬。他们说,除了在不受辅助的Flask版块中发现的那些以外,悉数这些都已被修补,因此建筑人员应该使用更新的版块更新他们的应用才智:

    1. Flask-security灵通重定向(Python,CVE-2021-23385)

    2. Flask-security-too灵通重定向(Python,CVE-2021-32618)

    3. Flask-User灵通重定向(Python,CVE-2021-23401)

    4. Flask-unchained灵通重定向(Python,CVE-2021-23393)

    5. Belledonne的SIP堆栈空指针障碍援用(DoS)(C,CVE-2021-33056)

    6. Video.js跨站剧本(XSS)(JavaScript,CVE-2021-23414)

    7. Nagios XI灵通重定向(PHP,CVE-2021-37352)

    8. Clearance灵通重定向(Ruby,CVE-2021-23435)

    灵通重定向纰谬很容易被专揽,因为它们不错进行讹诈、网罗垂纶和中间人报复(MITM)。当Web应用才智继承用户扫尾的输入,该输入指定用户在特定操作后将被重定向到的URL时,就会发生这种情况。举例,当用户登录网站时,他们可能会被重定向到坏心网站。

    筹商人员阐发说,灵通式重定向报复频繁通过考据来不容:“Web行状器考据给定的URL,何况只允许属于吞并站点或受信任域列表的URL。”

    URL库欺凌会干预正确的考据,就像Clearance纰谬同样。筹商人员指出,Clearance(Ruby的Rails框架中一个凡俗应用的第三方插件,不错竣事苟简安全的电子邮件和密码身份考据)中的易受报复的函数是“return_to”。此函数在登录/刊出进程之后调用,何况应该将用户安全地重定向到他们之前苦求的页面。然则,如果不错劝服算计打算单击具有以下语法的URL,则可将其玩忽:http://www.victim.com/////evil.com。

    筹商人员阐发说:“由于Rails忽略了URL中的多个斜杠,因此旅途段将齐全到达Clearance(/////evil.com)并在其进行解析。”“由于URI.parse删除了两个斜杠,因此生成的URL是///evil.com。每当行状器将用户重定向到此URL///evil.com时,浏览器都会将此网罗旅途相对援用调度为指向evil.com域(主机)的十足http://evil.com URL。”

    Belledonne VoIP崩溃

    在Belledonne的Linphone中发现了一个更兴味的纰谬,这是一个免费的IP语音软电话、SIP客户端和用于音频和视频通话的行状。把柄分析,由于它惩处SIP音信解析的方式,它遭逢了scheme欺凌。

    筹商人员阐发说:“通过筹商Belledone的URL解析功能,咱们发现[a]段代码解析了to/from SIP header中的SIP URL。”“Belledone将SIP URL解析为通用URL,并使用strcasecmp查验有算计打算是SIP依然SIP,以及给定的URL是否为SIP URL。”

    关联词,他们阐发说,Belledonne generic_uri继承由不同URL组件创建的URL,而不需要存在特定组件。

    他们讲究说:“这意味着仅包含旅途而莫得URL scheme的URL是有用的URL。”“通过此方法,咱们提供了一个只包含一个斜杠(/)的URL,导致URL的有算计打算恶果为NULL。然后,当Belledone使用strcasecmp时,它会比拟一个NULL指针(因为莫得提供scheme),从而导致NULL指针取消援用和应用才智崩溃。”

    该团队创建了一个想法考据纰谬专揽代码,该代码或者通过苟简的坏心VoIP呼唤来使任何辛劳用户的应用才智崩溃,“条目受报复用户的零交互”。

    Team82和Synk筹商人员指出,“可能会出现很多纰谬,从可能导致辛劳代码实践的SSRF纰谬到可能导致复杂网罗垂纶报复的灵通重定向纰谬。”他们说,为了保护他们的应用才智,建筑人员应取舍以下措施:

    使用尽可能少的解析器。筹商人员说:“咱们提出您完全幸免使用URL解析器,而且一般情况下这是很容易竣事。”

    在microservice环境中传输解析的URL。他们指出:“如果microservice是在不同的框架或编程话语中竣事,他们可能会使用不同的URL解析器。”“为了幸免这个问题,你不错苟简地在前端microservice中解析URL,并以解析后的表情进一步传输它。”

    了解与应用才智业务逻辑干系的解析器的相反。偶而无法幸免使用多个解析器,因此建筑人员需要驻防解析行动的相反。

    在解析之前弥远措施化URL。弥远确保应用才智删除多个正向/反向斜杠、空格和扫尾字符,以便在解析之前将URL归附为正确的表情。

    本文翻译自:https://threatpost.com/url-parsing-bugs-dos-rce-spoofing/177493/如若转载,请注明原文地址。

     



    Powered by 江苏三计划 @2013-2022 RSS地图 HTML地图

    Copyright 站群系统 © 2013-2021 365建站器 版权所有