快速浏览- 已发现 Microsoft SQL Server 将妖精表情符号视为等同于空字符串,这可能会导致使用它的应用程序出现安全漏洞,特别是在暴力密码攻击的情况下。
概况
-
Microsoft SQL Server (MSSQL) 将妖精表情符号视为空字符串,这为使用它作为后端数据库的应用程序带来了潜在的安全漏洞。
-
这种不一致可能会导致重大风险,尤其是在暴力密码攻击中,因为它允许利用空白电子邮件地址的帐户。
-
该问题源于 MSSQL 和应用程序语言之间的 Unicode 排序逻辑差异,影响了 Unicode 字符的处理方式。
-
该漏洞不仅限于 MSSQL,它也可能出现在 Windows 上的 .NET 应用程序中,但不会在 Linux 上的 .NET Core 中表现出来。
-
缓解该问题的建议包括记录 SQL 查询、监控字符串比较、实施字符允许列表以及进行彻底的安全评估。
Microsoft SQL Server 漏洞:Goblin Emoji 被视为空字符串
微软 SQL Server (MSSQL) 已被确认将妖精表情符号视为空字符串。此行为会给使用 MSSQL 作为后端数据库的应用程序带来潜在的安全漏洞。与大多数应用程序语言相比,处理字符串的不一致可能会导致重大安全风险,尤其是暴力密码攻击。
漏洞分析
Pulse Security 的应用安全架构师 Stephen Moir 揭露了这个问题。Moir 详细分析了此漏洞可能发生的条件。他使用 .NET Core 8 和 Entity Framework 开发了一个测试 API 来说明这个问题。此 API 允许用户通过电子邮件地址或用户名登录。当将妖精表情符号用作电子邮件地址时,MSSQL 会将其解释为空字符串,可利用该字符串对具有空白电子邮件地址的用户帐户进行暴力攻击。该漏洞尤其令人担忧,因为它不需要有效的用户名,从而增加了攻击成功的可能性。
Unicode 处理中的差异
问题的核心是应用程序和 MSSQL 之间的 Unicode 排序逻辑存在差异。这种差异导致处理 Unicode 字符时的行为有所不同。测试表明,并非所有 Unicode 字符都会触发相同的问题。该问题不仅限于 MSSQL;在 Windows 上运行的 .NET 应用程序中也可能遇到此问题。值得注意的是,此行为不会在 Linux 上的 .NET Core 中出现,这表明可能存在特定于 Windows 环境的排序错误。此外,妖怪表情符号与其他字符交织在一起可能会带来额外的利用机会。
建议和安全评估
本文强调了通过传统源代码分析方法检测此类漏洞的挑战。为了解决这个问题,它建议记录 SQL 查询并监控涉及空字符串的字符串比较。还建议实施允许字符和模式的允许列表。此漏洞的影响可能因特定应用程序环境而异,这凸显了进行彻底的安全评估的必要性。讨论了“黑盒”渗透测试在发现此类漏洞方面的局限性,提倡采用包括研究和逆向工程技术的更全面的方法。此外,作者分享了设置漏洞搜寻测试 API 的见解,并提供了此玩具 API 的源代码以供进一步参考。
原文始发于微信公众号(Ots安全):MSSQL 被认定易受表情符号字符串攻击
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论