ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Чужие Статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

[Перевод] Инъекции в Ldap
  #1  
Старый 10.11.2007, 00:53
Аватар для NeMiNeM
NeMiNeM
Постоянный
Регистрация: 22.08.2005
Сообщений: 540
Провел на форуме:
4372175

Репутация: 1221


По умолчанию [Перевод] Инъекции в Ldap

Инъекции в LDAP


Автор: ka0x
Контакты: ka0x01[!]gmail.com
D.O.M TEAM 2007

Перевод: NeMiNeM
antichat.ru

- Вступление
- Фильтры LDAP
- Инъекции в LDAP в сетевых-приложениях
- Ссылки



[Вступление]

Техника LDAP (Lightweight Directory Access Protocol или Облегченный (упрощенный) протокол доступа к [сетевым] каталогам) представляет собой упрощенную версию ориентированного на соединение протокола DAP из набора стандартов X.500. Этот протокол работает через TCP/IP. Протокол доступа LDAP используется для запросов и модификации объектов.

[Фильтры LDAP]

Достаточно важно понять как работают фильтры в LDAP:

FC 4515 (6/2006) (http://tools.ietf.org/html/rfc4515)

Filter = ( filtercomp )
Filtercomp = and / or / not / item
And = & filterlist
Or = | filterlist
Not = ! filter
Filterlist = 1*filter
Item = simple / present / substring
Simple = attr filtertype assertionvalue
Filtertype = "=" /"~="/ ">=" / "<="
Present = attr = *
Substring = attr "=" [initial] * [final]
Initial = assertionvalue
Final = assertionvalue

Логические операторы:

- AND "&"
- OR "|"
- NOT "!"

Реляционные операторы:

<=, >=, =, ~=

Специальный символ "*" используется для замены символов.

Пример фильтра:

(&(objectClass=user)(uid=*)):

Возвращает список всех объектов класса user, в независимости от значения атрибута "uid".

[Инъекции в LDAP в сетевых-приложениях]


Инъекции в LDAP очень похожи на SQL инъекции. Атака на сервер производится с помощью команд пользователя.

Пример уязвимого кода с комментариями Sacha Faust.

Код HTML:
line 0: <html>
line 1: <body>
line 2: <%@ Language=VBScript %>
line 3: <%
line 4:     Dim userName
line 5:     Dim filter
line 6:     Dim ldapObj
line 7:
line 8:     Const LDAP_SERVER = "ldap.example"
line 9:
line 10:     userName = Request.QueryString("user")
line 11:
line 12:     if( userName = "" ) then
line 13:         Response.Write("<b>Invalid request. Please specify a valid user name</b><br>")
line 14:         Response.End()
line 15:     end if
line 16:
line 17:
line 18:     filter = "(uid=" + CStr(userName) + ")"        ' searching for the user entry
line 19:
line 20:
line 21:     'Creating the LDAP object and setting the base dn
line 22:     Set ldapObj = Server.CreateObject("IPWorksASP.LDAP")
line 23:     ldapObj.ServerName = LDAP_SERVER
line 24:     ldapObj.DN = "ou=people,dc=spilab,dc=com"
line 25:
line 26:     'Setting the search filter
line 27:     ldapObj.SearchFilter = filter
line 28:
line 29:     ldapObj.Search
line 30:
line 31:     'Showing the user information
line 32:     While ldapObj.NextResult = 1
line 33:         Response.Write("<p>")
line 34:
line 35:         Response.Write("<b><u>User information for : " + ldapObj.AttrValue(0) + "</u></b><br>")
line 36:         For i = 0 To ldapObj.AttrCount -1
line 37:             Response.Write("<b>" + ldapObj.AttrType(i) + "</b> : " + ldapObj.AttrValue(i) + "<br>" )
line 38:         Next
line 39:         Response.Write("</p>")
line 40:     Wend
line 41: %>
line 42: </body>
line 43: </html>
Обратите внимание, в 10 строке переменная userName инициализируется с значением параметра user и сразу проверяется на валидность. Если значение не 0, то переменная userName переходит к фильтру в строке 18. Эта новая переменная используется для создания поиска LDAP и последственного вызова SearchFilter в строке 27.

Взломщик имеет полный контроль над действиями такого сервера.
Вы получите результат, когда исполнение кода достигнет строк 32-40.


Пример 1:
http://website/ldap.asp?user=*

В этом примере символ "*" - это параметр для значения "user", которое заканчивается в фильтре переменной.

Эта команда в LDAP покажет вам любой объект, который имеет атрибут uid.

Мы увидим на екране всех пользователей и информацию о них.

Пример 2:

http://website/ldap.asp?user=ka0x)(|(homedirectory=*)

Это покажет нам путь к пользователю ka0x. Перед уходом, можно поэксперементировать с кодом.

[Ссылки]


На оригинал - http://www.milw0rm.com/papers/183

http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol
http://es.wikipedia.org/wiki/LDAP
http://www.ldapman.org/

Для antichat.ru

ps: В статье/переводе возможны ошибки. Просьба не кричать, а спокойно указать и исправить. Спасибо.

Последний раз редактировалось NeMiNeM; 11.11.2007 в 15:40..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SQL Инъекции m0nzt3r Уязвимости 12414 17.06.2010 21:21
более продвинутые sql инъекции bxN5 Чужие Статьи 0 15.04.2007 19:58
SiXSS ...и более продвинутые sql инъекции }{0TT@БЬ)Ч Чужие Статьи 2 25.12.2006 19:33
Sql инъекция и Oracle, часть первая k00p3r Чужие Статьи 0 13.06.2005 11:23
SQL Injection в Oracle k00p3r Чужие Статьи 0 12.06.2005 12:41



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ