Кибервойна Украина-Россия! Атака на российские сайты с помощью SQL-инъекций

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
152
Депозит
-8.95$
Добро пожаловать обратно, начинающие кибервоины!

Залоговое обеспечение снова из неизвестного места на Украине.


Сегодня мы подробно рассмотрим SQLMap, один из самых мощных инструментов для SQL-инъекций. Это первая часть серии из четырёх, в которой мы рассмотрим, как вручную тестировать и эксплуатировать уязвимости, углубимся в автоматизацию с помощью Nuclei и доркинга Python, научимся взламывать сервер и, наконец, разберём реальный случай полной компрометации сервера с помощью SQLi.

6a4a49_71f01025b9c44fd5a35b5e4bd9de840b~mv2.webp


Топ-10 OWASP


Несмотря на то, что он опустился на третье место в рейтинге OWASP Top 10, эксплойты с использованием инъекций всё ещё живы и широко используются. Более того, многие веб-сайты, включая правительственные, по-прежнему широко доступны. Иногда можно встретить простую инъекцию с ограничением по времени , которая работает медленно и скучно, но всё же приводит к утечке данных. В других случаях инъекция с использованием объединения позволит быстро и без проблем выгрузить целые базы данных.

Инъекции на основе ошибок довольно распространены и легко обнаруживаются. Инъекции на основе булевых значений также работают хорошо и довольно легко контролируются.

Но вот в чём дело — SQLi непредсказуем . Один сайт может выглядеть совершенно уязвимым, но ничего не дать, а другой может казаться надёжным, но раскрыть всё через одну полезную нагрузку. Как и в алхимии, вы не узнаете наверняка, пока не протестируете. И всегда стоит попробовать.

Простая полезная нагрузка


Начнём с основ. Зачастую вам не придётся переусердствовать, поскольку SQLMap справится с большей частью работы за вас. Я обычно использую простые полезные данные и не перехожу сразу к сложным, потому что это может привести к тому, что вы упустите реальную уязвимость. Даже слишком раннее изменение параметров, таких как –risk или –level, может привести к сбою полезной нагрузки.

Возьмём пример сайта российского интернет-провайдера. Команда проста. Обычно я использую уровни с 3 по 5. Более низкие уровни не давали результатов, если только это не был какой-нибудь очень устаревший сайт, и, честно говоря, вам не стоит тратить на них время.

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

6a4a49_aa1f1d5ad90f4bb5848e3ba591c15cc0~mv2.webp


Теперь попробуем выгрузить их данные с помощью --dump . Нас интересуют база данных биллинга ( -D billing ) и таблица users11 ( -T users11 ). В конце добавим --columns для перечисления столбцов.

6a4a49_9dacd4260ce140999cb48e4f0d8190c4~mv2.webp


Вы также можете использовать –users и –passwords для сброса внутренних данных.

6a4a49_b0ae30670bdc435d9ecaef87d179ebb2~mv2.webp


Флаг –users извлекает пользователей и пароли из базы данных. Полезно проверить, связаны ли какие-либо из них с ограничениями по IP-адресам. Если вы видите * , это означает, что все IP-адреса разрешены — это хорошо для нас.

–passwords выгрузит хеши паролей, если они доступны. В случае успеха откроется новый вектор атаки. Мы подробнее рассмотрим это позже.


Давайте теперь проверим второй пример, в котором более высокий риск и уровень работают отлично и на самом деле дают лучшие результаты.


Вот мебельный магазин в Москве. Несмотря на то, что сайт выглядит довольно современным, параметр id= может быть подменён из-за плохой очистки входных данных.

6a4a49_4597253c020e4b2f9285c95531126d6f~mv2.webp


На этот раз мы снова выберем –level=4 и –risk=3 .

6a4a49_d9e373ba279c4277b5621ffee00129b5~mv2.webp


Для дальнейшего продвижения нам потребуется выгрузить таблицу пользователей с именами пользователей и хэшами. Но имейте в виду: пользовательские форматы хэшей не взламываются SQLMap. Если это не удастся, не удивляйтесь. Просто экспортируйте их и используйте Hashcat или John the Ripper .

6a4a49_661faa091fad4c27891a39a55b8db1c4~mv2.webp


После взлома попробуйте войти на исходный сайт . Тогда вы сможете нанести реальный ущерб, получив доступ к панелям администратора, изменив контент и, возможно, даже найдя новые точки входа.

6a4a49_c19be81e2d4349fa8580a88847fe294d~mv2.webp


Мы в деле! Это было легко. Но теперь давайте поднимем градус и рассмотрим более интересную задачу.

Тамперы


А теперь немного пофантазируем. На этот раз наша цель — сайт gov.ru. Из соображений безопасности операций (OPSEC) я не буду раскрывать, какой именно, но уроки всё равно применимы.

6a4a49_1b3f43f5305948429275135e3a720e77~mv2.webp


Иногда обычные полезные данные SQLMap не работают, обычно из-за брандмауэра (WAF), который фильтрует подозрительные запросы. Именно здесь на помощь приходят скрипты-подмены. Один из моих любимых — randomcase.

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

Ещё один флаг, который вы могли заметить, — --no-cast . Он указывает SQLMap не приводить типы данных. Это может быть полезно после того, как вы обнаружите работающую инъекцию. До этого он может вам помешать.

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

6a4a49_1c3431cd87f24615984e995be1fe75b8~mv2.webp


Экспериментируйте. Со временем вы найдёте те, которые подходят именно вам.

Колонны


Перейдем к другой цели — веб-сайту правительства города Хабаровска .

Краткая история: Хабаровск — крупный город на Дальнем Востоке России, расположенный недалеко от границы с Китаем. Он известен своим военным значением и некоторыми сомнительными биологическими программами в советское время. Этот сайт похож на городской архив . Мы собираемся его изучить.

6a4a49_26a5d9077f064e3f9b054a53c6162b99~mv2.webp


Теперь внимательно посмотрите на функцию поиска. Она отображает результаты в виде понятной таблицы. Вот вам и подсказка: нужно знать, сколько столбцов возвращается. Если в вашем объединении используется неправильное количество столбцов, оно не будет работать.


6a4a49_0f7ba6e101334619b76e2f3c4dbb52b8~mv2.webp


Используйте это: –union-col=4

6a4a49_712aaf9902364396b745db1222ba5a7a~mv2.webp


Здесь мы знаем, что таблица возвращает четыре столбца, поэтому мы сопоставляем её. Кроме того, использование символа объединения (случайной строки или идентификатора) иногда может помочь стабилизировать полезную нагрузку и избежать ложных срабатываний.

Не забудьте добавить скрипты защиты от несанкционированного доступа. Вы можете даже накладывать их друг на друга, только убедитесь, что они не конфликтуют друг с другом.

Краткое содержание


Мы заложили основу, охватив основы SQL-инъекций, поработав с SQLMap, разобравшись в роли скриптов взлома и поработав с реальными целями, такими как российские компании и правительственные сайты.

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

Увидимся во второй части!
 
Назад
Сверху Снизу