
程序员征服安全:分享与学习系列-LDAP 注入
绝大多数计算机系统使用轻量级目录访问协议 (LDAP)。它用于维护任何互联网协议 (IP) 网络上的分布式目录信息服务。因此,基本上,它可以作为跟踪用户的一种方式。
应用程序通常将 LDAP 用作身份验证源,以查看用户是否有权执行各种操作,尤其是与他们在组织中定义的角色相关的权限。例如,只有会计人员才能使用公司会计软件。应用程序通常会被编程为检查 LDAP 表,以确保用户在其既定权限范围内行事。
当恶意用户可以操纵 LDAP 查询时,可能会出现问题。这样做可能会诱使接收服务器执行通常不允许的无效查询,甚至向没有密码的无效或低安全性用户授予高级或管理员访问权限。
LDAP 注入可能很棘手,但在本集中,我们将学习:
- 它们是如何工作的
- 为什么它们如此危险
- 如何设置防御措施来阻止他们。
攻击者如何使用 LDAP 注入?
基于 LDAP 的攻击多年来一直很受欢迎的原因之一是,几乎每个计算机系统都使用它。LDAP 是开源的,运行良好,因此没有创造出太多替代方案。
LDAP 的核心是跟踪基于 IP 的计算机系统或网络中的有效用户的数据库。它可以允许用户共享有关系统、网络、服务器、应用程序甚至同一网络上的其他用户的信息。
信息由 LDAP 存储在相当于数据库行或记录的形式中,该行或记录称为唯一判别名,通常缩写为 DN。每个 DN 都是独一无二的。举个例子,对于在大公司芝加哥会计办公室工作的用户来说,DN 可能是这样的。
cn=James Smith,OU=公司账户,DC=芝加哥,do=Parkview
为确保每个 DN 都是唯一的,可以向记录中添加各种代码,例如 “+”、“/”、“=” 等。还可以在记录之前或之后插入空格,以确保即使有两位詹姆斯·史密斯在芝加哥园景办公室的公司账户部门工作,他们每个人都有单独的 DN。
应用程序通常使用 LDAP 来允许用户发送有关特定 DN 的查询,例如,当试图在薪资部门找到正确的联系人来谈论支票上的错误时。当搜索查询中未验证用户提供的参数时,可能会发生 LDAP 注入。在这种情况下,黑客可以操纵良性搜索来绕过身份验证机制或执行其他任意查询。这可能会欺骗服务器显示不应允许的结果,例如用户密码,甚至导致应用程序在有或没有有效密码的情况下授予对网络中高度安全区域的访问权限。
为什么 LDAP 注入如此危险?
LDAP 注入的最大危险可能是该协议在全球大多数 IP 计算机网络中的扩散。对于想要窃取信息或提升其网络权限的黑客来说,它是一个简单的垫脚石。任何训练有素的黑客都无法检查是否可以注入 LDAP,因此安全团队必须确保这些漏洞始终处于关闭状态。
具体而言,许多应用程序经过编程,可以帮助有效用户找到有关组织内用户和群组的有限信息,或DN中包含的任何其他信息。例如,应用程序可能允许某人使用 LDAP 搜索在芝加哥工作的公司会计师的联系信息,这将返回上面示例中的朋友 James Smith。视权限而定,这可能是 LDAP 查询的完全有效用法。
当恶意用户可以添加未经过滤的查询参数,改变搜索的性质并诱使服务器提供通常不应该提供的信息时,危险就来了。例如,通过添加 user=* 字符串,攻击者可以获得有关整个组织中每个用户的信息,这可能永远不应该被允许。
对于使用 LDAP 进行身份验证的应用程序,问题可能更严重。例如,攻击者可以使用 LDAP 查询末尾的 (&) 字符串来欺骗服务器认为该论点是正确的。如果应用程序使用 LDAP 来验证密码,则通过 LDAP 注入强制使用 True 参数可能会允许未经授权的用户以管理员身份登录网络,即使没有密码。
在您的网络中将 LDAP 注入设置为 LDAP 注入
防止 LDAP 注入的最佳方法之一是实现诸如 LinqToad 或其他专门为抵抗注入而设计的框架。如果网络已经有利用 LDAP 查询的应用程序,则可能无法做到这一点。但是,即使在这种情况下,对于每个新应用程序来说,向前发展使用抗注入框架仍然是一个好主意。
还可以通过使用白名单验证和输入清理来强化使用 LDAP 的现有应用程序以防注入。在可能的情况下,将用户输入限制为一组有限的可信值。否则,应首先对作为 LDAP 查询一部分的用户输入进行清理,并且不要忘记包括 GET 和 POST 参数、cookie 和 HTTP 标头,因为它们也可以充当攻击向量。不要自己编写函数来执行输入清理;改用受信任的第三方安全性库或内置框架 API。
除了有针对性的修复外,良好的计算实践,例如为LDAP查询应用程序分配网络上所需的最低权限,也可以有所帮助。这样,如果最坏的情况发生并且LDAP注入得以通过,则可以减轻损失。
有关 LDAP 注入的更多信息
要进一步阅读,你可以看看 OWASP 写在上面 LDAP 注入,或 预防注射 备忘单。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客。
야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .

Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
데모 예약야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .


绝大多数计算机系统使用轻量级目录访问协议 (LDAP)。它用于维护任何互联网协议 (IP) 网络上的分布式目录信息服务。因此,基本上,它可以作为跟踪用户的一种方式。
应用程序通常将 LDAP 用作身份验证源,以查看用户是否有权执行各种操作,尤其是与他们在组织中定义的角色相关的权限。例如,只有会计人员才能使用公司会计软件。应用程序通常会被编程为检查 LDAP 表,以确保用户在其既定权限范围内行事。
当恶意用户可以操纵 LDAP 查询时,可能会出现问题。这样做可能会诱使接收服务器执行通常不允许的无效查询,甚至向没有密码的无效或低安全性用户授予高级或管理员访问权限。
LDAP 注入可能很棘手,但在本集中,我们将学习:
- 它们是如何工作的
- 为什么它们如此危险
- 如何设置防御措施来阻止他们。
攻击者如何使用 LDAP 注入?
基于 LDAP 的攻击多年来一直很受欢迎的原因之一是,几乎每个计算机系统都使用它。LDAP 是开源的,运行良好,因此没有创造出太多替代方案。
LDAP 的核心是跟踪基于 IP 的计算机系统或网络中的有效用户的数据库。它可以允许用户共享有关系统、网络、服务器、应用程序甚至同一网络上的其他用户的信息。
信息由 LDAP 存储在相当于数据库行或记录的形式中,该行或记录称为唯一判别名,通常缩写为 DN。每个 DN 都是独一无二的。举个例子,对于在大公司芝加哥会计办公室工作的用户来说,DN 可能是这样的。
cn=James Smith,OU=公司账户,DC=芝加哥,do=Parkview
为确保每个 DN 都是唯一的,可以向记录中添加各种代码,例如 “+”、“/”、“=” 等。还可以在记录之前或之后插入空格,以确保即使有两位詹姆斯·史密斯在芝加哥园景办公室的公司账户部门工作,他们每个人都有单独的 DN。
应用程序通常使用 LDAP 来允许用户发送有关特定 DN 的查询,例如,当试图在薪资部门找到正确的联系人来谈论支票上的错误时。当搜索查询中未验证用户提供的参数时,可能会发生 LDAP 注入。在这种情况下,黑客可以操纵良性搜索来绕过身份验证机制或执行其他任意查询。这可能会欺骗服务器显示不应允许的结果,例如用户密码,甚至导致应用程序在有或没有有效密码的情况下授予对网络中高度安全区域的访问权限。
为什么 LDAP 注入如此危险?
LDAP 注入的最大危险可能是该协议在全球大多数 IP 计算机网络中的扩散。对于想要窃取信息或提升其网络权限的黑客来说,它是一个简单的垫脚石。任何训练有素的黑客都无法检查是否可以注入 LDAP,因此安全团队必须确保这些漏洞始终处于关闭状态。
具体而言,许多应用程序经过编程,可以帮助有效用户找到有关组织内用户和群组的有限信息,或DN中包含的任何其他信息。例如,应用程序可能允许某人使用 LDAP 搜索在芝加哥工作的公司会计师的联系信息,这将返回上面示例中的朋友 James Smith。视权限而定,这可能是 LDAP 查询的完全有效用法。
当恶意用户可以添加未经过滤的查询参数,改变搜索的性质并诱使服务器提供通常不应该提供的信息时,危险就来了。例如,通过添加 user=* 字符串,攻击者可以获得有关整个组织中每个用户的信息,这可能永远不应该被允许。
对于使用 LDAP 进行身份验证的应用程序,问题可能更严重。例如,攻击者可以使用 LDAP 查询末尾的 (&) 字符串来欺骗服务器认为该论点是正确的。如果应用程序使用 LDAP 来验证密码,则通过 LDAP 注入强制使用 True 参数可能会允许未经授权的用户以管理员身份登录网络,即使没有密码。
在您的网络中将 LDAP 注入设置为 LDAP 注入
防止 LDAP 注入的最佳方法之一是实现诸如 LinqToad 或其他专门为抵抗注入而设计的框架。如果网络已经有利用 LDAP 查询的应用程序,则可能无法做到这一点。但是,即使在这种情况下,对于每个新应用程序来说,向前发展使用抗注入框架仍然是一个好主意。
还可以通过使用白名单验证和输入清理来强化使用 LDAP 的现有应用程序以防注入。在可能的情况下,将用户输入限制为一组有限的可信值。否则,应首先对作为 LDAP 查询一部分的用户输入进行清理,并且不要忘记包括 GET 和 POST 参数、cookie 和 HTTP 标头,因为它们也可以充当攻击向量。不要自己编写函数来执行输入清理;改用受信任的第三方安全性库或内置框架 API。
除了有针对性的修复外,良好的计算实践,例如为LDAP查询应用程序分配网络上所需的最低权限,也可以有所帮助。这样,如果最坏的情况发生并且LDAP注入得以通过,则可以减轻损失。
有关 LDAP 注入的更多信息
要进一步阅读,你可以看看 OWASP 写在上面 LDAP 注入,或 预防注射 备忘单。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客。

绝大多数计算机系统使用轻量级目录访问协议 (LDAP)。它用于维护任何互联网协议 (IP) 网络上的分布式目录信息服务。因此,基本上,它可以作为跟踪用户的一种方式。
应用程序通常将 LDAP 用作身份验证源,以查看用户是否有权执行各种操作,尤其是与他们在组织中定义的角色相关的权限。例如,只有会计人员才能使用公司会计软件。应用程序通常会被编程为检查 LDAP 表,以确保用户在其既定权限范围内行事。
当恶意用户可以操纵 LDAP 查询时,可能会出现问题。这样做可能会诱使接收服务器执行通常不允许的无效查询,甚至向没有密码的无效或低安全性用户授予高级或管理员访问权限。
LDAP 注入可能很棘手,但在本集中,我们将学习:
- 它们是如何工作的
- 为什么它们如此危险
- 如何设置防御措施来阻止他们。
攻击者如何使用 LDAP 注入?
基于 LDAP 的攻击多年来一直很受欢迎的原因之一是,几乎每个计算机系统都使用它。LDAP 是开源的,运行良好,因此没有创造出太多替代方案。
LDAP 的核心是跟踪基于 IP 的计算机系统或网络中的有效用户的数据库。它可以允许用户共享有关系统、网络、服务器、应用程序甚至同一网络上的其他用户的信息。
信息由 LDAP 存储在相当于数据库行或记录的形式中,该行或记录称为唯一判别名,通常缩写为 DN。每个 DN 都是独一无二的。举个例子,对于在大公司芝加哥会计办公室工作的用户来说,DN 可能是这样的。
cn=James Smith,OU=公司账户,DC=芝加哥,do=Parkview
为确保每个 DN 都是唯一的,可以向记录中添加各种代码,例如 “+”、“/”、“=” 等。还可以在记录之前或之后插入空格,以确保即使有两位詹姆斯·史密斯在芝加哥园景办公室的公司账户部门工作,他们每个人都有单独的 DN。
应用程序通常使用 LDAP 来允许用户发送有关特定 DN 的查询,例如,当试图在薪资部门找到正确的联系人来谈论支票上的错误时。当搜索查询中未验证用户提供的参数时,可能会发生 LDAP 注入。在这种情况下,黑客可以操纵良性搜索来绕过身份验证机制或执行其他任意查询。这可能会欺骗服务器显示不应允许的结果,例如用户密码,甚至导致应用程序在有或没有有效密码的情况下授予对网络中高度安全区域的访问权限。
为什么 LDAP 注入如此危险?
LDAP 注入的最大危险可能是该协议在全球大多数 IP 计算机网络中的扩散。对于想要窃取信息或提升其网络权限的黑客来说,它是一个简单的垫脚石。任何训练有素的黑客都无法检查是否可以注入 LDAP,因此安全团队必须确保这些漏洞始终处于关闭状态。
具体而言,许多应用程序经过编程,可以帮助有效用户找到有关组织内用户和群组的有限信息,或DN中包含的任何其他信息。例如,应用程序可能允许某人使用 LDAP 搜索在芝加哥工作的公司会计师的联系信息,这将返回上面示例中的朋友 James Smith。视权限而定,这可能是 LDAP 查询的完全有效用法。
当恶意用户可以添加未经过滤的查询参数,改变搜索的性质并诱使服务器提供通常不应该提供的信息时,危险就来了。例如,通过添加 user=* 字符串,攻击者可以获得有关整个组织中每个用户的信息,这可能永远不应该被允许。
对于使用 LDAP 进行身份验证的应用程序,问题可能更严重。例如,攻击者可以使用 LDAP 查询末尾的 (&) 字符串来欺骗服务器认为该论点是正确的。如果应用程序使用 LDAP 来验证密码,则通过 LDAP 注入强制使用 True 参数可能会允许未经授权的用户以管理员身份登录网络,即使没有密码。
在您的网络中将 LDAP 注入设置为 LDAP 注入
防止 LDAP 注入的最佳方法之一是实现诸如 LinqToad 或其他专门为抵抗注入而设计的框架。如果网络已经有利用 LDAP 查询的应用程序,则可能无法做到这一点。但是,即使在这种情况下,对于每个新应用程序来说,向前发展使用抗注入框架仍然是一个好主意。
还可以通过使用白名单验证和输入清理来强化使用 LDAP 的现有应用程序以防注入。在可能的情况下,将用户输入限制为一组有限的可信值。否则,应首先对作为 LDAP 查询一部分的用户输入进行清理,并且不要忘记包括 GET 和 POST 参数、cookie 和 HTTP 标头,因为它们也可以充当攻击向量。不要自己编写函数来执行输入清理;改用受信任的第三方安全性库或内置框架 API。
除了有针对性的修复外,良好的计算实践,例如为LDAP查询应用程序分配网络上所需的最低权限,也可以有所帮助。这样,如果最坏的情况发生并且LDAP注入得以通过,则可以减轻损失。
有关 LDAP 注入的更多信息
要进一步阅读,你可以看看 OWASP 写在上面 LDAP 注入,或 预防注射 备忘单。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客。

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.
Secure Code Warrior는 조직이 소프트웨어 개발 생명주기 전반에 걸쳐 코드를 보호하고 사이버 보안을 최우선으로 하는 문화를 조성하도록 지원합니다. 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 수행하는 모든 분들에게, 저희는 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
보고서 보기데모 예약야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .
绝大多数计算机系统使用轻量级目录访问协议 (LDAP)。它用于维护任何互联网协议 (IP) 网络上的分布式目录信息服务。因此,基本上,它可以作为跟踪用户的一种方式。
应用程序通常将 LDAP 用作身份验证源,以查看用户是否有权执行各种操作,尤其是与他们在组织中定义的角色相关的权限。例如,只有会计人员才能使用公司会计软件。应用程序通常会被编程为检查 LDAP 表,以确保用户在其既定权限范围内行事。
当恶意用户可以操纵 LDAP 查询时,可能会出现问题。这样做可能会诱使接收服务器执行通常不允许的无效查询,甚至向没有密码的无效或低安全性用户授予高级或管理员访问权限。
LDAP 注入可能很棘手,但在本集中,我们将学习:
- 它们是如何工作的
- 为什么它们如此危险
- 如何设置防御措施来阻止他们。
攻击者如何使用 LDAP 注入?
基于 LDAP 的攻击多年来一直很受欢迎的原因之一是,几乎每个计算机系统都使用它。LDAP 是开源的,运行良好,因此没有创造出太多替代方案。
LDAP 的核心是跟踪基于 IP 的计算机系统或网络中的有效用户的数据库。它可以允许用户共享有关系统、网络、服务器、应用程序甚至同一网络上的其他用户的信息。
信息由 LDAP 存储在相当于数据库行或记录的形式中,该行或记录称为唯一判别名,通常缩写为 DN。每个 DN 都是独一无二的。举个例子,对于在大公司芝加哥会计办公室工作的用户来说,DN 可能是这样的。
cn=James Smith,OU=公司账户,DC=芝加哥,do=Parkview
为确保每个 DN 都是唯一的,可以向记录中添加各种代码,例如 “+”、“/”、“=” 等。还可以在记录之前或之后插入空格,以确保即使有两位詹姆斯·史密斯在芝加哥园景办公室的公司账户部门工作,他们每个人都有单独的 DN。
应用程序通常使用 LDAP 来允许用户发送有关特定 DN 的查询,例如,当试图在薪资部门找到正确的联系人来谈论支票上的错误时。当搜索查询中未验证用户提供的参数时,可能会发生 LDAP 注入。在这种情况下,黑客可以操纵良性搜索来绕过身份验证机制或执行其他任意查询。这可能会欺骗服务器显示不应允许的结果,例如用户密码,甚至导致应用程序在有或没有有效密码的情况下授予对网络中高度安全区域的访问权限。
为什么 LDAP 注入如此危险?
LDAP 注入的最大危险可能是该协议在全球大多数 IP 计算机网络中的扩散。对于想要窃取信息或提升其网络权限的黑客来说,它是一个简单的垫脚石。任何训练有素的黑客都无法检查是否可以注入 LDAP,因此安全团队必须确保这些漏洞始终处于关闭状态。
具体而言,许多应用程序经过编程,可以帮助有效用户找到有关组织内用户和群组的有限信息,或DN中包含的任何其他信息。例如,应用程序可能允许某人使用 LDAP 搜索在芝加哥工作的公司会计师的联系信息,这将返回上面示例中的朋友 James Smith。视权限而定,这可能是 LDAP 查询的完全有效用法。
当恶意用户可以添加未经过滤的查询参数,改变搜索的性质并诱使服务器提供通常不应该提供的信息时,危险就来了。例如,通过添加 user=* 字符串,攻击者可以获得有关整个组织中每个用户的信息,这可能永远不应该被允许。
对于使用 LDAP 进行身份验证的应用程序,问题可能更严重。例如,攻击者可以使用 LDAP 查询末尾的 (&) 字符串来欺骗服务器认为该论点是正确的。如果应用程序使用 LDAP 来验证密码,则通过 LDAP 注入强制使用 True 参数可能会允许未经授权的用户以管理员身份登录网络,即使没有密码。
在您的网络中将 LDAP 注入设置为 LDAP 注入
防止 LDAP 注入的最佳方法之一是实现诸如 LinqToad 或其他专门为抵抗注入而设计的框架。如果网络已经有利用 LDAP 查询的应用程序,则可能无法做到这一点。但是,即使在这种情况下,对于每个新应用程序来说,向前发展使用抗注入框架仍然是一个好主意。
还可以通过使用白名单验证和输入清理来强化使用 LDAP 的现有应用程序以防注入。在可能的情况下,将用户输入限制为一组有限的可信值。否则,应首先对作为 LDAP 查询一部分的用户输入进行清理,并且不要忘记包括 GET 和 POST 参数、cookie 和 HTTP 标头,因为它们也可以充当攻击向量。不要自己编写函数来执行输入清理;改用受信任的第三方安全性库或内置框架 API。
除了有针对性的修复外,良好的计算实践,例如为LDAP查询应用程序分配网络上所需的最低权限,也可以有所帮助。这样,如果最坏的情况发生并且LDAP注入得以通过,则可以减轻损失。
有关 LDAP 注入的更多信息
要进一步阅读,你可以看看 OWASP 写在上面 LDAP 注入,或 预防注射 备忘单。你还可以使用以下方法来测试你新获得的防御知识 免费演示 Secure Code Warrior 平台,该平台培训网络安全团队成为终极网络战士。要了解有关克服此漏洞以及其他恶棍威胁的更多信息,请访问 安全代码勇士博客。




%20(1).avif)
.avif)
