LDAP未授权访问学习
LDAP未授权访问学习
一、LDAP
介绍
LDAP的全称为Lightweight Directory Access Protocol(轻量级目录访问协议), 基于X.500标准, 支持 TCP/IP。
LDAP目录为数据库,通过LDAP服务器(相当于DBMS)处理查询和更新, 以树状的层次结构来存储数据,相对关系型数据库, LDAP主要是优化数据读取的性能,适用于比较少改变、跨平台的信息。
LDAP属性
属性 | 全名 | 描述 |
---|---|---|
dn | distinguished name | 唯一标识名,类似于绝对路径,每个对象都有唯一标识名。 例如:uid=tester,ou=People,dc=example,dc=com |
rdn | relative | 相对标识名,类似于相对路径。 例如:uid=tester |
uid | user id | 通常指用户登录名。 例如:uid=tester |
sn | sur name | 通常指一个人的姓氏。 例如:sn: Su |
giveName | 通常指一个人的名字。 例如:giveName: Aldwin | |
I | 通常指一个地方的地名。 例如:I: Beijing | |
objectClass | objectClass是特殊属性,包含数据存储的方式以及相关属性信息。 | |
dc | domain component | 通常指定一个域名。 例如:dc=example,dc=com |
ou | organization unit | 通常指定一个组织单元的名称。 例如:ou=people,dc=example,dc=com |
cn | common name | 通常指一个对象的名称。如果是人,需要使用全名。 |
c | country | 一个二位的国家代码。 例如:CN、US、HK、JP等。 |
二、LDAP&phpldapadmin搭建
Ubuntu系统搭建LDAP服务及web端管理服务phpldapadmin
参考文章:
https://my.oschina.net/u/2496664/blog/801996
上面文章写的很详细,有些步骤由于可能版本更新而有微小的差异。
比如不用选择数据库;注意编辑配置文件的时候不需要改注释内的东西,改注释外的代码即可。下图为完成界面。
三、LDIF文件
关于LDIF文件:
LDIF 完全独立于在所有特定目录中使用的储存格式,LDIF 通常用于从 LDAP 服务器导出目录信息或将数据导入 LDAP 服务器。
demo
dn: dc=Zh1z3ven,dc=com
objectclass: top
dc: Zh1z3ven
dn: ou=People,dc=Zh1z3ven,dc=com
objectclass: organizationalUnit
ou: People
dn: uid=Zh1z3ven,ou=People,dc=Zh1z3ven,dc=com
uid: Zh1z3ven
objectClass: inetOrgPerson
userPassword: 111111
sn: Zh
cn: Zh1z3ven Zh
四、LDAP未授权漏洞
0x01 产生原因
未对LDAP的访问进行密码验证,导致未授权访问。
这一般是大部分LDAP服务出现此漏洞的主要原因,导致可以使用ldapbrowser直接连接,获取目录内容。
0x02 简述
比如我上面搭建好的环境明明是有密码123456的,但是利用ldapbrowser可以直接读取到目录内容而跳过了web端那种密码验证的方式
注意Anonymous bind那里要勾选上,因为默认的LDAP服务都是开启匿名访问的,但是只能进行read和search操作,不可以删除和修改。
如需指定用户则需要在下图红框内指定cn和相应的password
五、修复建议
0)关于如何禁止LDAP匿名访问:
https://www.cnblogs.com/rusking/p/4936341.html
1)修改ldap的acl,不允许匿名访问。
2)根据业务设置ldap访问白名单或黑名单。
LDAP未授权访问学习的更多相关文章
- 关于docker remote api未授权访问漏洞的学习与研究
漏洞介绍: 该未授权访问漏洞是因为docker remote api可以执行docker命令,从官方文档可以看出,该接口是目的是取代docker 命令界面,通过url操作docker. docker ...
- Memcache未授权访问漏洞利用及修复
Memcached是一套分布式的高速缓存系统.它以Key-Value(键值对)形式将数据存储在内存中,这些数据通常是应用读取频繁的.正因为内存中数据的读取远远大于硬盘,因此可以用来加速应用的访问.本文 ...
- Redis未授权访问漏洞复现及修复方案
首先,第一个复现Redis未授权访问这个漏洞是有原因的,在 2019-07-24 的某一天,我同学的服务器突然特别卡,卡到连不上的那种,通过 top,free,netstat 等命令查看后发现,CPU ...
- [Shell]Redis未授权访问反弹shell
原作者:Cream 文章出处: 贝塔安全实验室 0x01 Redis未授权访问反弹shell Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value ...
- Springboot之actuator未授权访问
copy 子杰的哈,懒的写了 0x01 未授权访问可以理解为需要授权才可以访问的页面由于错误的配置等其他原因,导致其他用户可以直接访问,从而引发各种敏感信息泄露. 0x02 Spring Boot ...
- rsync未授权访问漏洞复现
rsync未授权访问漏洞简介 rsync是Linux/Unix下的一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件和目录,默认运行在873端口.由于配置不当,导致任何人可未授权访问r ...
- Redis未授权访问漏洞复现与利用
漏洞简介 Redis默认情况下,会绑定在0.0.0.0:6379,如果没有进行采用相关的策略,比如添加防火墙规则避免其他非信任来源ip访问等,这样将会将Redis服务暴露到公网上,如果在没有设置密码认 ...
- mongodb未授权访问漏洞
catalogue . mongodb安装 . 未授权访问漏洞 . 漏洞修复及加固 . 自动化检测点 1. mongodb安装 apt-get install mongodb 0x1: 创建数据库目录 ...
- Redis未授权访问漏洞分析
catalog . Redis简介 . 漏洞概述 . 漏洞利用方式 . 修复方式 1. Redis简介 Relevant Link: http://www.cnblogs.com/LittleHann ...
随机推荐
- Springboot:@RequestMapping注解及属性详解
@RequestMapping 注解: @RequestMapping 是 Spring Web 应用程序中最常被用到的注解之一.这个注解会将 HTTP 请求映射到 MVC 和 REST 控制器的处理 ...
- php 扩展kafka
一.安装librdkafka cd /usr/local/src/ git clone https://github.com/edenhill/librdkafka.git cd librdkafka ...
- rosbag 初尝试
overview ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件.它提供了硬件抽象.设备驱动.函数库.可视化工具. ...
- Docker原理:Cgroup
目录 Cgroup 主要功能 术语 参考 Cgroup 全称Linux Control Group, 是Linux内核的一个功能,用来限制.控制与分离一个进程组群的资源(如CPU.内存.磁盘输入输出等 ...
- 常见内部排序算法对比分析及C++ 实现代码
内部排序是指在排序期间数据元素全部存放在内存的排序.外部排序是指在排序期间全部元素的个数过多,不能同时存放在内存,必须根据排序过程的要求,不断在内存和外存之间移动的排序.本次主要介绍常见的内部排序算法 ...
- C语言:宏完美定义
#include <stdio.h> #define M (n*n+3*n) #define M1 n*n+3*n int main(){ int sum, n; printf(" ...
- CF1330B题解
题意: 给定一个长为 \(n\) 序列 \(a\) ,问是否能分成两个排列,并输出方案 (排列:从 \(1-n\) 中选取不同的 \(n\) 个元素组成的序列) 思路: 观察数据范围可以猜出,这题 \ ...
- 【译】.NET 对象分配工具
随着 Visual Studio 16.10 的发布,性能分析器又有了一个新的分析引擎,.NET 对象分配工具是第一个加入的工具.这为该工具提供了一些新特性,并显著提高了 perf 性能.在你的 C# ...
- bootstrap栅格布局-v客学院知识分享
今天主要跟大家讲解下bootstrap的栅格布局,以及使用过程中应该注意的问题 首先我们要使用bootstrp的栅格布局就必须使用HTML正确的基本结构 如下图: 必须给要使用栅格布局的盒子定义cla ...
- LC-322. 零钱兑换
322. 零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币:以及一个整数 amount ,表示总金额. 计算并返回可以凑成总金额所需的 最少的硬币个数 .如果没有任何一种硬币组合能组成总金 ...