AIが作成人が改善

Riqli · ライブドキュメント · 常に更新

AIの知識と人間の実践が出会う場所。

友達と共有
image

Этичный веб-хакинг в реальном мире - XSS и SQLi

(xss атака пример, sql инъекция защита, этичный хакинг обучение, типы xss уязвимостей, sql injection blind, как найти xss на сайте, prepared statements против sql инъекций, обход фильтров xss через событие onerror, sql injection в json полях api, защита от xss в react с помощью dangerouslySetInnerHTML)

セクション

Введение в этичный веб-хакинг и настройка лаборатории

contents

Добро пожаловать на комплексный курс по этичному веб-хакингу и охоте за ошибками. Этот курс создан для тех, кто готов глубоко погрузиться в практическую сторону кибербезопасности, где теория немедленно применяется на практике. Мы не будем просто говорить об уязвимостях; мы рассмотрим реальные сценарии, с которыми ежедневно сталкиваются этичные хакеры, и научимся их использовать для защиты, а не для атак.

contents

Прежде чем начать, мы подготовим нашу лабораторию, установив Kali Linux на виртуальную машину VMware Workstation Pro. Это стандартная среда для тестирования на проникновение, которая предоставляет все необходимые инструменты. Мы пройдем весь процесс от загрузки образа до настройки сетевых адаптеров, чтобы вы могли практиковаться в безопасной, изолированной среде.

セクション

Теория и практика SQL-инъекций (SQLi)

contents

SQL-инъекция (SQLi) — это атака, при которой злоумышленник внедряет вредоносный SQL-код в запросы к базе данных. Если приложение не фильтрует входные данные, этот код может быть выполнен, позволяя извлечь, изменить или удалить конфиденциальные данные. В этом модуле мы научимся не только обнаруживать, но и использовать эту критическую уязвимость для получения доступа к данным.

contents

Мы детально разберем информационную схему (information_schema) в базах данных MySQL, которая хранит метаданные обо всех таблицах. Это ключевой объект для эксплуатации, так как он позволяет перечислить таблицы и столбцы, чтобы затем извлечь из них полезную информацию, такую как имена пользователей и хеши паролей. Мы также рассмотрим отличия для других СУБД, например, Microsoft SQL Server.

contents

Для автоматизации процесса мы будем использовать sqlmap — мощный инструмент для обнаружения и эксплуатации SQL-инъекций. Вы узнаете, как использовать параметры --level и --risk для более глубокого сканирования и обхода защит. Мы научимся извлекать текущую базу данных, таблицы и дамп данных, а также комбинировать ручные методы с автоматизированными для достижения наилучших результатов.

contents

На реальных целях мы покажем, как обойти брандмауэры (WAF) при помощи случайного агента (--random-agent), который маскирует запросы под обычный трафик браузера, и техникой замещения пробелов (например, `/**/`). Это критически важные навыки, так как современные веб-приложения редко бывают полностью беззащитны, и вам нужно уметь преодолевать их барьеры для успешного тестирования.

セクション

Практические атаки на реальные цели и обход защиты

contents

Мы начнем с атак на учебные цели, где извлечем данные из базы данных вручную. Например, мы обнаружим, что параметр `id` уязвим, и с помощью UNION-запроса определим количество столбцов, чтобы затем выбрать нужные для вывода. Вы увидите, как определить имя базы данных 'goodmorning' и извлечь таблицу 'users', получив учетные данные администратора.

contents

В одном из примеров мы столкнемся с сайтом, где ошибки скрыты, но его поведение искажается при внедрении кавычек. Это признак слепой SQL-инъекции. Мы используем ручные методы, чтобы определить количество столбцов (их оказалось 33), и с помощью расширения HackBar выполним UNION-запрос для извлечения пароля администратора из таблицы пользователей, даже несмотря на наличие брандмауэра.

contents

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

セクション

Обход административных панелей и мощных WAF

contents

В этом разделе мы сосредоточимся на обходе аутентификации. Мы покажем, как использовать простые логические атаки, например, внедрение полезной нагрузки `' OR '1'='1`, чтобы обойти вход в систему администратора. Мы протестируем различные варианты, чтобы понять, как работает защита, и найдем способ обойти панель управления, получив доступ к конфиденциальным данным, таким как регистрационные формы и контактные данные.

contents

В более сложных сценариях мы столкнемся с мощным брандмауэром веб-приложений (WAF), который блокирует наш IP-адрес. Мы научимся обходить его, используя поиск поддоменов с помощью `sublist3r`. Иногда WAF настроен только на основной домен, и поддомен, например, 'mail.', не имеет такой жесткой защиты, что позволяет нам провести атаку в обход основного барьера.

セクション

Основы атак межсайтового скриптинга (XSS)

contents

Межсайтовый скриптинг (XSS) — это атака, при которой злоумышленник внедряет вредоносный код (обычно JavaScript) в веб-страницу, которую просматривают другие пользователи. Целью часто является кража файлов cookie сессии, что позволяет выдать себя за жертву. В отличие от SQLi, XSS атакует не сервер, а пользователей, поэтому эти уязвимости также критически важны и высоко ценятся в программах Bug Bounty.

contents

Мы изучим два основных типа: отраженный XSS, когда вредоносный скрипт немедленно отражается от сервера в ответе, и хранимый XSS, когда скрипт сохраняется на сервере (например, в комментариях) и выполняется при каждом просмотре страницы. Мы сосредоточимся на отраженном XSS, так как он очень распространен и является отличной отправной точкой для понимания принципа атаки.

セクション

Практические атаки XSS на реальных сайтах

contents

Мы начнем с простых примеров, внедряя тег `` в строку поиска и видя, как он выполняется. Это подтверждает наличие уязвимости. Затем мы перейдем к более сложной цели: краже cookies с помощью `document.cookie`. Мы покажем, что даже такие простые сайты, как демонстрационные магазины, часто уязвимы, что демонстрирует важность правильной обработки пользовательского ввода.

contents

На реальном сайте Land Rover мы столкнемся с тем, что WAF блокирует стандартные теги `

contents

Для поиска уязвимых параметров мы будем использовать инструмент waybackurls и `gau` (Get All URLs) для извлечения всех исторических URL-адресов сайта. Это помогает найти скрытые параметры и эндпоинты, которые могут быть уязвимы. Мы объединим его с `gf` для фильтрации потенциально опасных параметров, что значительно ускоряет процесс поиска XSS.

contents

В одном из примеров мы столкнемся с мощной защитой Cloudflare. Несмотря на то, что нам удастся выполнить JavaScript, мы не сможем украсть `document.cookie` из-за ограничений политики безопасности. Это хороший пример того, как современные WAF могут блокировать самую критическую часть атаки. Однако, само обнаружение XSS все равно считается валидной находкой для Bug Bounty, хоть и с меньшей наградой.

contents

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

セクション

Questions and answers


questions

Что представляет собой атака SQL-инъекция (SQLi) и какова её основная цель?

answers正解

SQL-инъекция — это атака, при которой злоумышленник внедряет вредоносный SQL-код в запросы к базе данных для выполнения несанкционированных команд.

explanations

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

answers正解

Основная цель SQL-инъекции — получение несанкционированного доступа к данным, таким как имена пользователей и хеши паролей, и их последующая эксплуатация.

explanations

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

answers不正解

SQL-инъекция — это атака на пользователей с целью кражи их файлов cookie.

answers不正解

Цель SQL-инъекции — это только изменение внешнего вида веб-страницы.


questions

Почему знание структуры базы данных, в частности information_schema в MySQL, критически важно для эксплуатации SQL-инъекций?

answers正解

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

explanations

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

answers不正解

Information_schema используется только для администрирования базы данных и не имеет отношения к атакам.

answers不正解

Это стандартный инструмент для резервного копирования данных.


questions

Для каких целей в курсе используется инструмент sqlmap и какие ключевые параметры для его настройки изучаются?

answers正解

Sqlmap используется для автоматизации процесса обнаружения и эксплуатации SQL-инъекций, что позволяет ускорить тестирование.

explanations

Мы изучаем параметры --level и --risk для более глубокого сканирования и обхода защит, что позволяет комбинировать ручные методы с автоматизированными для лучших результатов.

answers正解

С помощью sqlmap мы учимся извлекать текущую базу данных, таблицы и выполнять дамп данных.

explanations

Это делает процесс тестирования на проникновение более эффективным, особенно при работе с большими и сложными веб-приложениями.

answers不正解

Sqlmap — это инструмент для поиска XSS-уязвимостей.

answers不正解

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


questions

Какие методы обхода брандмауэров (WAF) изучаются в курсе при проведении атак SQL-инъекций?

answers正解

Использование случайного агента (--random-agent) для маскировки запросов под обычный трафик браузера.

explanations

Это помогает скрыть вредоносный характер запросов и обойти простые правила WAF, которые блокируют подозрительные User-Agent строки.

answers正解

Техника замещения пробелов (например, использование `/**/` вместо пробелов) для обхода сигнатур WAF.

explanations

Многие WAF блокируют запросы с явными SQL-командами, содержащими пробелы. Замена пробелов на комментарии SQL позволяет обойти эту защиту.

answers不正解

Для обхода WAF достаточно просто сменить IP-адрес.