Введение в LDAP-инъекцию

В наши дни веб-приложение должно быть гораздо больше, чем просто платформа, которая обрабатывает запросы пользователя. В более ранний период веб-приложение было полностью связано с тем местом, куда пользователи могут приходить, выполнять свою работу и выходить из системы, и к моменту выхода из системы приложение перестает работать. Но в наши дни веб-приложение должно работать, даже если пользователь его не использует, что может быть реализовано с помощью файлов cookie. Facebook недавно подтвердил, что они используют куки для проверки действий пользователей, чтобы убедиться, что их система не используется. Таким образом, в то время, когда онлайн-приложения должны быть более мощными, безопасность приложения возглавляет список требований. Здесь мы сосредоточимся на одном типе режима кибератаки, о котором необходимо позаботиться, чтобы обеспечить безопасность системы.

Что такое инъекция LDAP?

  • LDAP расшифровывается как облегченный протокол доступа к каталогам. Его можно определить как протокол, который не зависит от производителя и работает на уровне поверх стека TCP / IP. Он используется для введения механизма проверки прав доступа и аутентификации в веб-приложении для обеспечения его безопасности и очень часто используется при разработке веб-приложений. LDAP очень часто используется в веб-приложениях, которые используются через Интернет или интранет. Для веб-приложения очень важно использовать LDAP, поскольку это очень распространенный и важный фактор, облегчающий безопасную разработку веб-приложения.
  • LDAP также может быть определен как набор стандартов, которые используются для выполнения проверок безопасности, чтобы выяснить, есть ли у пользователя все разрешения на доступ к существующей системе. Есть несколько способов сделать проверки, но в конечном итоге, мотив всех проверок заключается в обеспечении безопасности веб-приложения. Он запрещает несанкционированный доступ пользователей, которые не имеют надлежащих привилегий. Основываясь на правах, которые пользователь имеет для определенного веб-приложения, он гарантирует, что пользователь сможет иметь доступ только к тем вещам, на которые он имеет право. Хотя он используется для обеспечения безопасности веб-приложения, хакеры также могут обмануть его, чтобы извлечь сок из приложения.

Выполнение инъекции LDAP с примером

  • Веб-приложение должно принять ввод от пользователя для дальнейшей обработки. Злоумышленник может воспользоваться этим, если введенное пользователями значение не очищено должным образом и напрямую отправляется в базу данных для выполнения. Здесь мы увидим, как внедрение LDAP может быть запущено в любом веб-приложении, подверженном этой атаке.

IEnter your name

  • Упомянутый выше запрос будет преобразован в дружественную LDAP-команду, чтобы приложение облегчало выполнение запроса.

String ldapQueryToSearch= "(sq=" + $userName + ")";
System.out.println(ldapQueryToSearch);

  • В приведенном выше случае, если значение, предоставленное пользователем, не подвергается санитарной обработке, это может привести к получению имени всех существующих пользователей, если в поле ввода ввести «*». Звездочкой обозначены все доступные опции, поэтому, когда база данных будет обрабатывать звездочку, а не какое-либо конкретное имя пользователя, ей будут присвоены все объекты, хранящиеся в базе данных LDAP. Фактический запрос, который будет выполняться в базе данных, будет

findingLogin="(&(usrid="+username+")(userPwd=(MD5)"+base64(pack("H*", md5(pass)))+"))";

  • Когда данные не очищены, и база данных принимает значение звездочки для процесса, код будет таким, как показано ниже.

findingLogin="(&(usrid=*)(usrid=*))(|(usrid=*)(userPwd=(MD5)Xkjr1Hj5LydgyfeuILpxM==))";

Как только вышеуказанный уязвимый код попадет в базу данных LDAP, он пройдет через все объекты, хранящиеся в базе данных LDAP, и приведет к нанесению вреда веб-приложению. Результат внедрения LDAP будет затем использован хакером для злоупотребления системой и нарушения безопасности.

Как вы можете защитить от атак LDAP Injection?

  • Если в приложении есть уязвимость, должно существовать и ее исправление. Вряд ли найдется какая-либо уязвимость, которую нельзя устранить или исправить для защиты системы. Точно так же существует несколько способов защиты веб-приложения от внедрения LDAP.
  • Самый первый и самый важный способ - очистить входные данные перед дальнейшей обработкой. Ввод, предоставленный пользователем, должен быть проверен, если он соответствует требованию, которое соответствует тому, что приложение ожидает через это текстовое поле. Например, если пользователь пытается ввести какие-либо специальные символы в текстовом поле, которое запрашивает имя, пользователь должен быть предупрежден о том, что он не может заполнить специальный символ в этом поле. Это проверка на стороне клиента. Теперь также потребуется проверка на стороне сервера, чтобы убедиться, что предоставленные данные являются подлинными.
  • Следующим является настройка LDAP с учетом безопасности. Конфигурирование LDAP должно выполняться таким образом, чтобы неавторизованные пользователи могли вносить любые злонамеренные изменения в систему. Кроме того, следующим является то, что результат запроса LDAP должен быть ограничен и не может раскрывать какие-либо данные, которые могут привести к нарушениям безопасности. Если данных будет недостаточно, чтобы нанести вред системе, злоумышленник не сможет каким-либо образом повлиять на веб-приложение, даже если он сможет запустить атаку LDAP-инъекцией.

Вывод

Облегченный протокол доступа к каталогам предоставляет приложению возможность гарантировать, что пользователь, пытающийся получить доступ к системе, должным образом аутентифицирован и авторизован для использования системы. Очень важно учитывать LDAP, заботясь обо всех проблемах безопасности. Система должна быть достаточно сильной, чтобы не позволить любому хакеру запустить LDAP-атаку. Поскольку база данных LDAP содержит очень прибыльную информацию, администратор должен убедиться, что входные данные от пользователя были тщательно обработаны, а конфигурация должна выполняться с учетом всех факторов безопасности.

Рекомендуемые статьи

Это руководство по инъекции LDAP. Здесь мы обсудим, что такое LDAP-инъекция, ее примеры и как защитить от атак LDAP-инъекцию. Вы также можете просмотреть другие наши статьи, чтобы узнать больше-

  1. Что такое SQL-инъекция?
  2. Что такое Ларавел?
  3. Тестирование безопасности
  4. Что такое интерфейс Java?