cwe - 566:授权旁路通过用户控制SQL主键
描述
产品使用一个数据库表,包括记录不应该访问的一个演员,但它执行一个SQL语句的主键可以控制的演员。
扩展描述
当一个用户可以设置任何值的主键,然后用户可以修改的关键指未经授权的记录。
数据库访问控制时出现错误:
- 从一个不可信的源数据输入程序。
- 数据是用于指定一个主键的值在一个SQL查询。
- 不受信任的源没有能够访问的权限关联表中的所有行。
的关系
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关的视图”研究概念”(cwe - 1000)
自然 |
类型 |
ID |
的名字 |
ChildOf |
Base -一个弱点,仍主要是独立的资源或技术,但有足够的细节来提供特定的检测和预防方法。基础水平的弱点通常描述问题的2或3以下维度:行为、财产、技术、语言,和资源。 |
639年 |
授权旁路通过用户控制的关键 |
此表显示了弱点和高水平类别相关的这一弱点。这些关系被定义为ChildOf、ParentOf MemberOf,并洞察类似项目可能存在的在较高和较低的抽象级别。此外,关系如PeerOf和CanAlsoBe定义显示类似的弱点,用户可能想要探索。
相关视图”架构概念”(cwe - 1008)
自然 |
类型 |
ID |
的名字 |
MemberOf |
类别——CWE条目包含一组其他条目,共享一个共同的特点。 |
1011年 |
授权的演员 |
模式的介绍
不同模式的引入提供了信息如何以及何时可以纳入这一弱点。生命周期的阶段识别点的介绍可能发生,而相关的报告提供了一个典型的场景介绍在给定的阶段。
阶段 |
请注意 |
架构和设计 |
委员会:这个弱点是指一个不正确的设计与架构相关的安全策略。 |
实现 |
|
常见的后果
这个表指定不同的个人相关后果的弱点。标识应用程序范围的安全领域侵犯,而影响了负面的技术影响,如果敌人成功利用这个弱点。可能提供的信息如何可能的具体结果预计将看到列表中相对于其它后果。例如,可能会有高可能性,缺点将被利用来实现一定的影响,但较低的可能性,它将被利用来实现不同的影响。
范围 |
影响 |
可能性 |
保密 完整性 访问控制
|
技术的影响:阅读应用程序数据;修改应用程序数据;旁路保护机制
|
|
示范例子
示例1
下面的代码使用参数化的语句,这逃元字符和防止SQL注入漏洞,建立和执行一个SQL查询,搜索一个发票匹配指定的标识符[1]。所有发票的标识符从列表中选择与当前的身份验证的用户。
… 康涅狄格州= new SqlConnection (_ConnectionString); conn.Open (); int16 id = System.Convert.ToInt16 (invoiceID.Text); SqlCommand查询= new SqlCommand (“SELECT *从发票id = @ id ",康涅狄格州); query.Parameters。AddWithValue (@ id, id); SqlDataReader objReader = objCommand.ExecuteReader (); …
问题是,开发人员没有考虑所有可能的值的id。尽管界面生成一个列表的发票属于当前用户的标识符,攻击者可以绕过这个接口请求任何想要的发票。因为这个示例中的代码不检查,以确保用户权限访问所请求的发票,它将显示任何发票,即使它不属于当前用户。
潜在的缓解措施
实施阶段:
假设所有的输入是恶意的。使用一个标准的输入验证机制来验证所有输入的长度,类型,语法,和业务规则之前接受数据。使用一个“接受好的“验证策略。 |
实施阶段:
使用参数化查询,确保接受值符合业务规则。相应的构造SQL语句。 |
检测方法
自动静态分析
自动静态分析,通常被称为静态应用程序安全性测试(科协),可以找到一些实例的这个弱点分析源代码或二进制/编译后的代码,而不必执行它。通常情况下,这是通过建立一个模型的数据流和控制流,然后寻找潜在攻击模式,连接“源”与“下沉”(输入)的起源(目的地数据与外部组件交互,较低的层,如操作系统,等等)。
|
会员资格
这MemberOf关系表显示额外CWE类别和视图引用这个弱点作为成员。这些信息通常是有用的在理解一个弱点符合外部信息源的上下文中。
脆弱性映射笔记
用法:允许
(CWE ID可以用来映射到现实世界的漏洞) |
原因:可接受的使用 |
理由是: 这个CWE条目是变体的抽象级别,这是一个首选的抽象级别映射到漏洞的根本原因。 |
评论: 仔细阅读这两个名称和描述,以确保此映射是一个适当的配合。不要试图“力”映射到底层基础/变体只是遵守这首选的抽象级别。 |
分类法映射
映射分类名称 |
节点ID |
适合 |
映射节点名 |
软件故障模式 |
SFP25 |
|
受污染的输入变量 |
更多的信息是可用的,请编辑自定义过滤器或选择一个不同的过滤器。
|