Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2012-2122 — CVE-2012-2122 - Обход аутентификации MySQL | Kitploit
Инструменты/GitHubGitHub/k3ystr0k3r/cve-2012-2122
Атаки на ПаролиАнализ уязвимостейЭксплуатацияТестирование на ПроникновениеАутентификацияОбучение и ОбразованиеБезопасность Баз Данных
GitHubk3ystr0k3r/cve-2012-2122

CVE-2012-2122

CVE-2012-2122 - Обход аутентификации MySQL

Репозиторий
32 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2012-2122 - Обход аутентификации в MySQL

Доказательство концепции (PoC) для CVE-2012-2122 — критической уязвимости обхода аутентификации, затрагивающей уязвимые серверы MySQL и MariaDB.

Отказ от ответственности

Этот проект предназначен исключительно для образовательных целей, исследований безопасности и авторизованного тестирования на проникновение. Не используйте данное программное обеспечение против систем, которыми вы не владеете или на тестирование которых у вас нет явного разрешения.


CVE-2012-2122 — уязвимость обхода аутентификации, обнаруженная в логике проверки паролей MySQL.

Из-за ошибки приведения типов/сравнения целых чисел аутентификация может ошибочно завершиться успешно, когда сравнение неверного пароля при определённых условиях оказывается равным.

Вместо требования знания корректного пароля атакующий может многократно пытаться пройти аутентификацию, используя произвольные пароли, пока не сработает ошибка сравнения.

Вероятность успеха составляет примерно:

  • 1 из 256 попыток аутентификации (0,39%)

Из-за этой относительно высокой вероятности автоматизированные инструменты обычно обходят аутентификацию в течение нескольких сотен попыток входа.


Серьёзность

МетрикаЗначение
CVECVE-2012-2122
CVSS v27.5 (Высокий)
Вектор атакиСеть
АутентификацияНе требуется
Взаимодействие с пользователемНе требуется
ВлияниеОбход аутентификации

Уязвимые версии

Уязвимость затрагивает сборки MySQL, скомпилированные с уязвимыми оптимизациями компилятора, включая такие версии, как:

  • MySQL 5.1.x
  • MySQL 5.5.x
  • Некоторые выпуски MariaDB, производные от уязвимого кода

Проблема в основном затрагивала дистрибутивы Linux, чьё поведение компилятора выявляло ошибку.

Не каждая установка этих версий является уязвимой.


Технические подробности

Во время проверки пароля MySQL внутренне сравнивает два хеш-значения с помощью функции memcmp().

В обычных условиях:

root@kitploit:~
memcmp(hash1, hash2)

возвращает:

  • 0, когда значения равны
  • ненулевое значение, когда различаются

Уязвимость возникла из-за того, что возвращаемое значение сохранялось в знаковом целочисленном типе и позже преобразовывалось таким образом, что некоторые ненулевые значения могли быть интерпретированы как успешная аутентификация.

Упрощённая логика:

root@kitploit:~
if (memcmp(hash1, hash2) == 0)
{
    // Вход выполнен успешно
}

При уязвимом поведении компилятора определённые возвращаемые значения memcmp() могли ошибочно удовлетворять условию сравнения.

В результате неверные пароли иногда проходили аутентификацию успешно.


Эксплуатация

Атакующему требуется только:

  • Сетевой доступ к службе MySQL
  • Действительное имя пользователя

Знание пароля не требуется.

Атакующий непрерывно отправляет попытки входа со случайными паролями.

В конечном итоге одна аутентификация завершается успешно из-за ошибки сравнения.

Типичный ход атаки:

root@kitploit:~
Попытка #1
    ↓
Аутентификация не удалась

Попытка #57
    ↓
Аутентификация не удалась

Попытка #141
    ↓
Аутентификация не удалась

Попытка #237
    ↓
Аутентификация успешна

В среднем успех происходит примерно раз в 256 попыток.


Влияние

Успешная эксплуатация позволяет атакующему:

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

Если целью являются учётные данные администратора, может быть получен полный контроль над сервером базы данных.


Обнаружение

Индикаторы включают:

  • Большое количество неудачных попыток аутентификации
  • Быстрые повторные входы с одного и того же клиента
  • Успешная аутентификация после множества неудач
  • Необычные паттерны доступа к базе данных

Проверяйте журналы аутентификации MySQL на предмет чрезмерной активности неудачных входов.


Смягчение

Рекомендуемое смягчение — обновление до исправленной версии.

Дополнительные защитные меры включают:

  • Ограничение сетевой доступности MySQL
  • Ограничение доступа с помощью межсетевых экранов
  • Отключение удалённого входа под root
  • Применение учётных записей базы данных с минимальными привилегиями
  • Мониторинг журналов аутентификации на предмет перебора паролей
  • Использование VPN или внутреннего доступа к сети, где это возможно

Ссылки

  • CVE-2012-2122
  • Охранное уведомление Oracle MySQL
  • Охранное уведомление MariaDB
  • NVD (Национальная база данных уязвимостей)

root@kitploit:~
---

## Пример использования

```bash
python3 exploit.py -ip <цель>

Пример:

root@kitploit:~
python3 exploit.py -ip 192.168.1.100

Образовательная цель

Этот репозиторий демонстрирует, как тонкая ошибка реализации в логике аутентификации может полностью подорвать проверку пароля.

Хотя уязвимости более десяти лет, она остаётся важным учебным примером в:

  • Безопасной разработке программного обеспечения
  • Поведении, зависящем от компилятора
  • Проектировании аутентификации
  • Защитном программировании
  • Исследовании уязвимостей
Скачать инструмент