Больше людей имеют доступ к Интернету, чем когда-либо прежде. Это побудило многие организации разрабатывать веб-приложения, которые пользователи могут использовать в Интернете для взаимодействия с организацией. Плохо написанный код веб-приложений может быть использован для получения несанкционированного доступа к конфиденциальным данным и веб-серверам.
В этом руководстве вы узнаете, как взламывать веб-сайты, и мы познакомим вас с методами взлома веб-приложений и мерами противодействия, которые вы можете принять для защиты от таких атак .
Темы, затронутые в этом руководстве
- Что такое веб-приложение? Что такое веб-угрозы?
- Как защитить свой сайт от взломов?
- Уловки взлома веб-сайтов: взломайте веб-сайт в Интернете!
Что такое веб-приложение? Что такое веб-угрозы?
Веб-приложение (также известное как веб-сайт) - это приложение, основанное на модели клиент-сервер. Сервер обеспечивает доступ к базе данных и бизнес-логику. Он размещен на веб-сервере. Клиентское приложение запускается в клиентском веб-браузере. Веб-приложения обычно пишутся на таких языках, как Java, C # и VB.Net, PHP, язык разметки ColdFusion и т. Д., Механизмы баз данных, используемые в веб-приложениях, включают MySQL, MS SQL Server, PostgreSQL, SQLite и т. Д.
Большинство веб-приложений размещаются на общедоступных серверах, доступных через Интернет. Это делает их уязвимыми для атак из-за легкого доступа. Ниже перечислены распространенные угрозы веб-приложений.
- SQL-инъекция - целью этой угрозы может быть обход алгоритмов входа в систему, саботаж данных и т. Д.
- Атаки отказа в обслуживании - целью этой угрозы может быть отказ законным пользователям в доступе к ресурсу.
- Межсайтовый скриптинг XSS - целью этой угрозы может быть внедрение кода, который может быть выполнен в браузере на стороне клиента.
- Отравление файлов cookie / сеанса - цель этой угрозы - изменить файлы cookie / данные сеанса злоумышленником для получения несанкционированного доступа.
- Подделка формы - цель этой угрозы - изменить данные формы, такие как цены, в приложениях электронной коммерции, чтобы злоумышленник мог получить товары по сниженным ценам.
- Внедрение кода - цель этой угрозы - внедрить код, такой как PHP, Python и т. Д., Который может быть выполнен на сервере. Код может устанавливать бэкдоры, раскрывать конфиденциальную информацию и т. Д.
- Defacement - цель этой угрозы - изменить страницу, отображаемую на веб-сайте, и перенаправить все запросы страниц на одну страницу, содержащую сообщение злоумышленника.
Как защитить свой сайт от взломов?
Организация может принять следующую политику для защиты от атак веб-сервера.
- SQL-инъекция - дезинфекция и проверка пользовательских параметров перед их отправкой в базу данных для обработки может помочь снизить вероятность атаки с помощью SQL-инъекции. Механизмы баз данных, такие как MS SQL Server, MySQL и т. Д., Поддерживают параметры и подготовленные операторы. Они намного безопаснее традиционных операторов SQL.
- Атаки отказа в обслуживании - брандмауэры могут использоваться для отбрасывания трафика с подозрительного IP-адреса, если атака представляет собой простой DoS. Правильная настройка сетей и системы обнаружения вторжений также может помочь снизить вероятность успеха DoS-атаки.
- Межсайтовый скриптинг - проверка и очистка заголовков, параметров, передаваемых через URL-адрес, параметров формы и скрытых значений, может помочь уменьшить атаки XSS.
- Отравление файлов cookie / сеанса - этого можно предотвратить, зашифровав содержимое файлов cookie, отключив файлы cookie по истечении некоторого времени, связав файлы cookie с IP-адресом клиента, который использовался для их создания.
- Темперирование формы - этого можно избежать, проверив вводимые пользователем данные перед их обработкой.
- Внедрение кода - этого можно избежать, рассматривая все параметры как данные, а не как исполняемый код. Для этого можно использовать дезинфекцию и проверку.
- Defacement - хорошая политика безопасности разработки веб-приложений должна гарантировать, что она закрывает часто используемые уязвимости для доступа к веб-серверу. Это может быть правильная конфигурация операционной системы, программного обеспечения веб-сервера и передовые методы безопасности при разработке веб-приложений.
Уловки для взлома веб-сайтов: взломайте веб-сайт в Интернете
В этом практическом сценарии взлома веб-сайта мы собираемся захватить сеанс пользователя веб-приложения, расположенного на www.techpanda.org. Мы будем использовать межсайтовый скриптинг для чтения идентификатора сеанса cookie, а затем использовать его для олицетворения законного сеанса пользователя.
Предполагается, что злоумышленник имеет доступ к веб-приложению и хочет перехватить сеансы других пользователей, использующих то же приложение. Целью этой атаки может быть получение доступа администратора к веб-приложению, если учетная запись злоумышленника ограничена.
Начиная
- Откройте http://www.techpanda.org/
- Для практических целей настоятельно рекомендуется получить доступ с помощью SQL Injection. Обратитесь к этой статье для получения дополнительной информации о том, как это сделать.
- Адрес электронной почты для входа: Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. Пароль: Password2010.
- Если вы успешно вошли в систему, вы получите следующую панель управления
- Нажмите на Добавить новый контакт.
- Введите следующее в качестве имени
ЗДЕСЬ,
В приведенном выше коде используется JavaScript . Он добавляет гиперссылку с событием onclick . Когда ничего не подозревающий пользователь щелкает ссылку, событие получает идентификатор сеанса cookie PHP и отправляет его на страницу snatch_sess_id.php вместе с идентификатором сеанса в URL-адресе.
- Введите оставшиеся данные, как показано ниже.
- Нажмите "Сохранить изменения".
- Ваша панель управления теперь будет выглядеть как на следующем экране
- Поскольку код межсайтового скрипта хранится в базе данных, он будет загружаться каждый раз, когда пользователи с правами доступа входят в систему.
- Предположим, администратор входит в систему и нажимает на гиперссылку с надписью Dark
- Он / она получит окно с идентификатором сеанса, отображаемым в URL-адресе.
Примечание : сценарий может отправлять значение на какой-то удаленный сервер, где хранится PHPSESSID, а затем пользователь перенаправляется обратно на веб-сайт, как будто ничего не произошло.
Примечание : полученное вами значение может отличаться от значения в этом руководстве по взлому веб-страницы, но концепция та же
Имитация сеанса с помощью Firefox и надстройки Tamper Data
На блок-схеме ниже показаны шаги, которые необходимо предпринять для выполнения этого упражнения.
- Для этого раздела вам понадобится веб-браузер Firefox и надстройка Tamper Data.
- Откройте Firefox и установите надстройку, как показано на схемах ниже.
- Найдите данные о вмешательстве, затем нажмите на установку, как показано выше.
- Нажмите "Принять и установить".
- По завершении установки нажмите «Перезагрузить».
- Включите строку меню в Firefox, если она не отображается
- Нажмите на меню инструментов, затем выберите Tamper Data, как показано ниже.
- Вы получите следующее окно. Примечание: если Windows не пуста, нажмите кнопку очистки
- Нажмите на меню Start Tamper.
- Вернитесь в браузер Firefox, введите http://www.techpanda.org/dashboard.php и нажмите клавишу ввода, чтобы загрузить страницу.
- Вы получите следующее всплывающее окно от Tamper Data
- Во всплывающем окне есть три (3) варианта. Опция Tamper позволяет вам изменять информацию заголовка HTTP перед ее отправкой на сервер .
- Нажмите здесь
- Вы получите следующее окно
- Скопируйте идентификатор сеанса PHP, который вы скопировали из URL-адреса атаки, и вставьте его после знака равенства. Теперь ваше значение должно выглядеть так
PHPSESSID = 2DVLTIPP2N8LDBN11B2RA76LM2
- Нажмите кнопку ОК
- Вы снова увидите всплывающее окно с данными о вскрытии.
- Снимите флажок Продолжить вмешательство?
- Нажмите кнопку отправки, когда закончите
- Вы должны увидеть панель управления, как показано ниже.
Примечание : мы не входили в систему, мы олицетворяли сеанс входа в систему, используя значение PHPSESSID, которое мы получили с помощью межсайтового скриптинга.
Резюме
- Веб-приложение основано на модели сервер-клиент. Клиентская сторона использует веб-браузер для доступа к ресурсам на сервере.
- Веб-приложения обычно доступны через Интернет. Это делает их уязвимыми для атак.
- Угрозы веб-приложений включают внедрение SQL, внедрение кода, XSS, дефейсинг, отравление файлов cookie и т. Д.
- Хорошая политика безопасности при разработке веб-приложений может помочь сделать их безопасными.