当前位置: 首页 > 工具软件 > ldapjs > 使用案例 >

ldap

孙修德
2023-12-01

这两天着手ldap注入的扫描插件。

可以分为几个点

LDAP环境选用

LDAP结构

LDAP语法

LDAP命令

该篇慢慢补充,之后再进行拆分。

 


 

 

关于bwapp中的ldap

 

花了一个晚上的时间,下载了bwapp-box,打开。

 

几个困惑的点:

 

 

php ldap_connect()函数

打开bwapp的ldap页面,有 login、password、server、base dn四个填空项。

填写提交后,只提示 认证错误或者服务器错误。

此时遇到的第一个问题是,server是什么?

于是打开

/var/www/bWAPP

 

路径下的ldap_connect.php文件

在下列语句后加了判断连接成功与否的语句

$ds=ldap_connect($server);

[ 添加 ]

if($ds === false || $ds <= 0){
    echo '<p>service connect false!!!!!!</p>';
}
else{
    echo '<p>success!!!!!!!!!!!!!</p>';
    print_r($ds);
}

 

结果是,无论server输入什么,都不会报错。

对比 php ldap的文档,ldap_connect()是会返回false与true的,初以为是bwapp中重写了php ldap,从而不用搭建服务器,做了一个伪的ldap。

其实是:

如果服务器端是 OpenLDAP 2.x.x 或更高版本,那么此函数将始终返回一个LDAP连接标识符,而永远不会失败。实际的连接动作将在接下来调用 ldap_* 函数[通常是ldap_bind()]时执行。

(http://www.jinbuguo.com/php/php-ldap.html)

(https://stackoverflow.com/questions/5309372/php-warning-ldap-bind-unable-to-bind-to-server-cant-contact-ldap-server)

 

那么应该bwapp中如何判断连接成功与否呢?

$r = @ldap_bind($ds, $login, $password);

去掉@,开启这一句的报错,则能够在前端页面中看到错误原因。

 

是否真的有ldap服务器

因为ldap比较偏门,且ldap的注入则更为偏门,所以资料比较少。

google一遍,发现大部分都没有细说bwapp - ldap的

比如 youtube视频 , 讲解bwapp中各种注入,居然跳过了ldap;

某圈中讲解,对这一项表示太难不做;

或者说了半天等于没说,最后来一句,连接server(https://hydrasky.com/network-security/how-to-authenticate-client-computers-using-ldap/)

可能对的解释:

server参数需要自己再搭建ldap服务器或者有其他服务器可以填写,这样子的话,bwapp只是提供了一个web端,服务器端要自己准备,没什么用。

(https://github.com/theand-fork/bwapp-code/issues/1)

结论:自己搞吧

 


 

bwapp搭建选用windows+openldap

这一方面已经搭建好了,但是还有一些小点不明白:

1. 为什么修改conf之后某些操作失效了

2. 对于环境安装的整个过程顺序还有意义还未能理解透彻

等理解透彻后并整理完毕再补充这一篇


Failed to Read Entry dc=maxcrc,dc=com

需要初始化数据

ldapmodify -x -a -D cn=manager,dc=maxcrc,dc=com -w secret -f ..\maxcrc.ldif

https://www.userbooster.de/forum/yaf_postsm336findunread_Just-keep-getting-that--Failed-to-Read-Entry--message.aspx


ldap_search报错:

ldap_search(): supplied argument is not a valid ldap link resource

原因

因代码写错,ldap_bind()的接收参数与ldap_connect()一样,将ldap_connect()的覆盖掉了,所以将 ldap_bind()的返回对象传入给第一个参数,而第一个参数要求的是ldap_connect()的返回对象。

 

ldap命令

开启:slapd.exe -d 1 -f ./slapd.conf

 

转载于:https://www.cnblogs.com/huim/p/9404327.html

 类似资料: