2012-12-29 132 views
1

我試圖理解OR LDAP查詢(特別是盲LDAP注入)。瞭解LDAP或過濾器

我說得對,爲了推斷objectClass可以假設的值(這裏是U)下面的過濾器發送到LDAP服務器是正確的嗎?

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

假設Web應用程序返回一個對象,我可以肯定地說,LDAP目錄中包括一個稱爲U類別?...是我的推理是否正確?

非常感謝

回答

1

是我的推理是否正確?

否'或'是'或'。正如你寫的那樣,(i)對象類將是無效的(不管是什麼意思),或者(ii)對象類將是U.

過濾器的其餘部分是無效的。有一個內部的OR過濾器和一個內部的AND過濾器,但沒有外部操作員說明它們如何加入。例如,過濾器解析器可能在第一個))處停止是合理的,因爲解析沒有有效的延續。

4

您的過濾器無效。

您顯示:

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

什麼是你想實現什麼? -Jim

-1

如果你的目標是瞭解OR操作符(本身)一個LDAP查詢裏面,我發現文中的「or-operator in LDAP queries」非常有幫助:

總之,「&」是「和」運算符「!」是「不」運算符, 「|」是「Or」運算符,「*」是通配符。嵌套在圓括號中的條件可以是 。通配符不能用於DN屬性。

(|(givenName=foo*)(middlename=foo*)(mail=foo*))實現了三倍OR還給所有出現,其中foo出現在eather給定的名稱,中間名或郵箱地址。有關更多詳細信息,請參閱帖子「LDAP multiple or syntax」。

+0

親愛的downvoter,請這麼好,讓我知道你的評論家,請。 –