了解LDAP OR过滤器

时间:2012-12-29 21:22:36

标签: ldap

我正在尝试理解OR LDAP查询(特别是盲注LDAP)。

我是否正确地说,为了推断objectClass可以假设的值(这里U),以下过滤器发送到LDAP服务器,是否正确?

(|(objectClass=void)(objectClass=U))(&(objectClass=void)(type=P*))

假设Web应用程序返回一个对象,我可以安全地说LDAP目录包含一个名为U的类别吗?...我的推理是否正确?

非常感谢

3 个答案:

答案 0 :(得分:4)

您的过滤器无效。

你表示:

(|(objectClass=void)(objectClass=U))(&(objectClass=void)(type=P*))

你想要完成什么? -Jim

答案 1 :(得分:1)

  

我的推理是否正确?

没有。 '或'是'或'。正如你所写的那样,(i)对象类将是无效的(无论这意味着什么),或者(ii)对象类将是U.

过滤器的其余部分无效。有一个内部OR过滤器和一个内部AND过滤器,但没有外部操作符来说明它们的连接方式。例如,过滤器解析器在第一个))停止时可能是合理的,因为没有有效的解析延续。

答案 2 :(得分:0)

如果您的目标是了解LDAP查询中的OR运算符(本身),我找到了文章" or-operator in LDAP queries"非常有帮助:

  

总结一下,"&"是"和"运营商,"!"是"不是"运营商,   " |"是"或"运营商," *"是通配符。条件可以   嵌套在括号中。通配符不能用于DN属性。

示例(|(givenName=foo*)(middlename=foo*)(mail=foo*))实现了三倍OR,将所有匹配项都显示回来,其中foo出现在给定名称,中间名或邮件地址中。有关详细信息,请参阅帖子" LDAP multiple or syntax"。