cwe - 601: URL重定向不可信的网站(“开放重定向”)
描述
一个web应用程序接受用户输入指定外部网站的链接,并使用该链接重定向。这简化了网络钓鱼攻击。
扩展描述
可能包含一个URL的http参数值并可能导致web应用程序将请求重定向到指定的URL。通过修改URL值一个恶意网站,攻击者可能成功地推出一个网络钓鱼诈骗和窃取用户凭证。因为修改链接的服务器名称是相同的原始网站,网络钓鱼更值得信赖的外表。这个问题造成了漏洞是否应用程序的预期行为。例如,搜索引擎可能会故意提供任意url重定向。
替代条款
的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
610年 |
在另一个球体外部控制的参考资源 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关观点“软件开发”(cwe - 699)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
19 |
数据处理错误 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
简化映射的相关视图”缺点漏洞发布”(cwe - 1003)
自然 |
类型 |
ID |
的名字 |
ChildOf |
类——一个弱点,描述的是一个非常抽象的时尚,通常独立于任何特定的语言或技术。更具体的比一个支柱的弱点,但更普遍的基本的弱点。类级别的弱点通常描述问题的1或2以下维度:行为、财产和资源。 |
610年 |
在另一个球体外部控制的参考资源 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关视图”架构概念”(cwe - 1008)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1019年 |
验证输入 |
背景细节
钓鱼是一个一般术语欺骗性试图强迫用户的私人信息将用于身份盗窃。
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
架构和设计 |
遗漏:这个弱点是由于缺少一个安全策略在体系结构和设计阶段。 |
实现 |
|
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
访问控制
|
用户可能被重定向到一个不可信的页面,该页面包含恶意软件可能会危及用户的机器。这将暴露用户广泛的风险和用户与web服务器的交互也可能破坏难眠,如果恶意软件进行键盘记录器或其他攻击,窃取身份证件、个人身份信息(PII),或其他重要数据。 |
|
访问控制 保密 其他
|
技术的影响:旁路保护机制;获得特权或假设的身份;其他
用户可能受到网络钓鱼攻击被重定向到一个不可信的页面。钓鱼攻击可能指向一个攻击者控制的web页面,似乎是一个值得信赖的网站。钓鱼者可能会窃取用户的凭证,然后使用这些凭证访问合法网站。 |
|
利用的可能性
示范例子
示例1
下面的代码获得一个URL的查询字符串,然后将用户重定向URL。
$ redirect_url = $ _GET [' url '); 头(地点:。美元redirect_url);
上面的代码的问题是,攻击者可以利用这个页面的一部分网络钓鱼诈骗通过重定向用户恶意网站。例如,假设example.php上面的代码的文件。攻击者可以向用户提供以下链接:
http://example.com/example.php?url=http: / / malicious.example.com
用户看到的链接指向原来的受信任的站点(example.com),并没有意识到可能发生的重定向。
示例2
下面的代码是一个Java servlet,将收到一个GET请求的url参数请求将浏览器重定向到url参数中指定的地址。servlet将检索url请求并发送一个响应的参数值将浏览器重定向到url地址。
公开课RedirectServlet扩展HttpServlet {
保护无效doGet (HttpServletRequest请求,HttpServletResponse响应)抛出ServletException IOException {
字符串查询= request.getQueryString (); 如果(query.contains (url)) {
字符串url = request.getParameter (“url”); response.sendRedirect (url); } }
}
这个Java servlet代码的问题是,攻击者可以使用RedirectServlet作为电子邮件的一部分,网络钓鱼诈骗将用户重定向到一个恶意网站。攻击者可以发送一个HTML格式的电子邮件将包括用户登录到他们的帐户的电子邮件以下链接:
< a href = " http://bank.example.com/redirect?url=http: / / attacker.example.net " >点击这里登录< / >
用户可能认为链接是安全的因为URL从他们信任的银行开始,bank.example.com。然而,用户将被重定向到攻击者的网站(attacker.example.net),攻击者可能会出现非常类似于bank.example.com。用户可能会无意中输入凭证到攻击者的web页面和妥协他们的银行账户。一个Java servlet不应该将用户重定向到一个没有验证URL重定向地址是一个信任的网站。
观察到的例子
参考 |
描述 |
|
URL参数的URL装入一个框架,使它似乎是一个有效的页面的一部分。 |
|
开放重定向脚本漏洞在搜索在软件允许远程攻击者将用户重定向到任意网站,开展网络钓鱼攻击通过URL作为参数适当的函数。 |
|
开放重定向漏洞的软件允许远程攻击者将用户重定向到任意web站点并通过一个URL进行钓鱼攻击在适当的参数。 |
|
链:Go-based Oauth2反向代理可以发送身份验证的用户到另一个网站的身份验证流。重定向URL与HTML-encoded空格字符可以绕过验证( cwe - 1289)重定向到一个恶意网站( cwe - 601) |
潜在的缓解措施
实施阶段:
假设所有的输入是恶意的。使用一个“接受良好的“输入验证策略,即。,使用一个可接受的输入列表,严格遵守规范。拒绝任何不严格符合规范的输入,或将其转换为一些。
当执行输入验证,考虑所有可能相关的属性,包括长度,类型的输入,可接受的值的全系列,缺失或额外的输入,语法,一致性相关领域,符合业务规则。作为业务规则逻辑的一个例子,在语法上“船”可能是有效的,因为它只包含字母数字字符,但它不是有效的如果输入预计仅包含颜色,如“红”或“蓝色”。
不完全依赖寻找恶意或畸形的输入。这很可能错过至少有一个不受欢迎的输入,特别是如果代码的环境变化。这可以让攻击者有足够的空间绕过验证。然而,denylists可以用于检测潜在攻击或确定哪些输入是畸形的,应该直接驳回。
使用列表批准用于重定向url或域。
|
阶段:体系结构和设计
使用一个中间免责声明页面,为用户提供了一个明确的警告他们离开当前的网站。实现一个长期超时重定向发生之前,或迫使用户点击链接。应该注意避免XSS问题( cwe - 79当生成免责声明页面。 |
阶段:体系结构和设计
组接受对象时,如文件名或url,是有限的或已知,从一组固定的输入值创建一个映射(比如数字id)实际的文件名或url,并拒绝所有其他输入。
例如,ID 1可以映射到“/登录。asp”和ID 2可以映射到“http://www.example.com/”。特性如ESAPI AccessReferenceMap [ REF-45提供此功能。
|
阶段:体系结构和设计
|
阶段:体系结构和设计;实现
理解所有潜在的地区不受信任的输入可以输入软件:参数或参数,饼干,任何从网络读取环境变量,反向DNS查找,查询结果,请求头,URL组件、电子邮件、文件、文件名、数据库,以及任何外部系统提供数据的应用程序。记住,这样的投入可以获得间接通过API调用。
许多开放重定向问题出现,因为程序员假定某些输入不能修改,如饼干和隐藏的表单字段。
|
阶段:操作
使用应用程序防火墙,可以检测到攻击这个弱点。它可以是有益的情况下,代码不能固定(因为它是由第三方控制),作为一项紧急预防措施,更全面的软件保证措施被应用,或者提供深度防御。
注意:应用程序防火墙不可能覆盖所有可能的输入向量。此外,攻击技术可能可以绕过保护机制,比如使用畸形的输入,仍然可以由组件接收处理这些输入。根据功能的不同,应用程序防火墙可能会无意中拒绝或修改合法请求。最后,一些手动工作可能需要定制。 |
检测方法
人工静态分析
因为这个弱点通常并不经常出现在一个软件包,手动白盒技术可以提供足够的代码覆盖率和减少假阳性如果所有可能受到操作可以在有限的时间内评估约束。
|
自动动态分析
黑盒自动化工具,每个输入可以现货供应url位置标题修改,但是测试用例覆盖率是一个因素,和自定义重定向可能不能被检测到。 |
自动静态分析
自动静态分析工具可能无法确定输入是否影响一个URL的开始,这对减少假阳性是很重要的。 |
自动静态分析
自动静态分析,通常被称为静态应用程序安全性测试(科协),可以找到一些实例的这个弱点分析源代码或二进制/编译后的代码,而不必执行它。通常情况下,这是通过建立一个模型的数据流和控制流,然后寻找潜在攻击模式,连接“源”与“下沉”(输入)的起源(目的地数据与外部组件交互,较低的层,如操作系统,等等)。
|
自动静态分析——二进制或字节码
根据飙升,以下检测技术可能是有用的:
-
字节码的弱点分析,包括反汇编程序+源代码弱点分析
-
二进制弱点分析,包括反汇编程序+源代码弱点分析
|
动态分析与自动化的结果解释
根据飙升,以下检测技术可能是有用的:
-
Web应用程序扫描
-
Web服务的扫描仪
-
数据库扫描仪
|
动态分析与人工解释结果
根据飙升,以下检测技术可能是有用的:
|
人工静态分析源代码
根据飙升,以下检测技术可能是有用的:
|
自动静态分析源代码
根据飙升,以下检测技术可能是有用的:
-
源代码缺陷分析仪
-
Context-configured源代码分析器
|
体系结构或设计审查
根据飙升,以下检测技术可能是有用的:
|
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
722年 |
OWASP十大2004类别A1 -用户输入 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
801年 |
2010年前25 -安全组件之间的交互 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
819年 |
OWASP 2010年十大类别A10——用户重定向和转发 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
864年 |
2011年前25 -安全组件之间的交互 |
MemberOf |
视图——CWE条目的一个子集,它提供了一种检查CWE的内容。两个主要视图结构片(列表)和图(包含条目之间的关系)。 |
884年 |
CWE横截面 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
938年 |
OWASP 2013年十大类别A10——用户重定向和转发 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
990年 |
SFP二级集群:污染输入命令 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1345年 |
OWASP 2021年十大类别A01:2021——破碎的访问控制 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1382年 |
ICS操作(&维护):新兴能源技术 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1396年 |
综合分类:访问控制 |
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这CWE条目底部的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
WASC |
38 |
|
URl重定向器滥用 |
软件故障模式 |
SFP24 |
|
污染输入命令 |
引用
内容的历史
提交 |
提交日期 |
提交者 |
组织 |
2007-05-07 (CWE草案6,2007-05-07) |
匿名工具供应商(NDA) |
|
|
修改 |
修改日期 |
修饰符 |
组织 |
2008-07-01 |
Eric Dalci |
Cigital |
更新Potential_Mitigations Time_of_Introduction |
2008-09-08 |
CWE内容团队 |
主教法冠 |
更新Alternate_Terms Background_Details,描述、Detection_Factors Likelihood_of_Exploit,姓名、关系、Observed_Example Taxonomy_Mappings |
2008-10-03 |
CWE内容团队 |
主教法冠 |
更新引用和Observed_Examples |
2008-10-14 |
CWE内容团队 |
主教法冠 |
更新Alternate_Terms Observed_Examples,引用 |
2009-03-10 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2009-05-27 |
CWE内容团队 |
主教法冠 |
更新后的名字 |
2009-12-28 |
CWE内容团队 |
主教法冠 |
更新Demonstrative_Examples、Detection_Factors Likelihood_of_Exploit Potential_Mitigations |
2010-02-16 |
CWE内容团队 |
主教法冠 |
更新Applicable_Platforms、Common_Consequences Detection_Factors、Potential_Mitigations Related_Attack_Patterns,关系,Taxonomy_Mappings |
2010-04-05 |
CWE内容团队 |
主教法冠 |
更新Demonstrative_Examples |
2010-06-21 |
CWE内容团队 |
主教法冠 |
更新Common_Consequences Potential_Mitigations、引用关系 |
2010-09-27 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations |
2011-06-01 |
CWE内容团队 |
主教法冠 |
更新Common_Consequences |
2011-06-27 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2011-09-13 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations,引用 |
2012-05-11 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2012-10-30 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations |
2013-07-17 |
CWE内容团队 |
主教法冠 |
更新引用关系 |
2014-07-30 |
CWE内容团队 |
主教法冠 |
更新Detection_Factors、关系、Taxonomy_Mappings |
2015-12-07 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2017-11-08 |
CWE内容团队 |
主教法冠 |
更新Likelihood_of_Exploit Modes_of_Introduction、引用关系,Taxonomy_Mappings |
2019-01-03 |
CWE内容团队 |
主教法冠 |
更新Related_Attack_Patterns |
2019-06-20 |
CWE内容团队 |
主教法冠 |
更新关系类型 |
2020-02-24 |
CWE内容团队 |
主教法冠 |
更新Applicable_Platforms Potential_Mitigations,关系 |
2020-06-25 |
CWE内容团队 |
主教法冠 |
更新Potential_Mitigations |
2021-10-28 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2022-04-28 |
CWE内容团队 |
主教法冠 |
更新的关系 |
2022-10-13 |
CWE内容团队 |
主教法冠 |
更新Observed_Examples |
2023-01-31 |
CWE内容团队 |
主教法冠 |
更新Related_Attack_Patterns |
2023-04-27 |
CWE内容团队 |
主教法冠 |
更新描述,Detection_Factors、引用关系 |
2023-06-29 |
CWE内容团队 |
主教法冠 |
更新Mapping_Notes |
以前的条目名称 |
改变日期 |
以前的条目名称 |
2008-04-11 |
不安全的URL重定向 |
|
2008-09-09 |
URL重定向不可信的网站 |
|
2009-05-27 |
URL重定向不可信的网站(又名“开放重定向”) |
|
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|