- PVSM.RU - https://www.pvsm.ru -
Hacksplaining представляет каталогизированный и наглядный онлайн-туториал по основным веб-уязвимостям. По каждой уязвимости представлено подробное описание, насколько часто встречается, как сложно ее эксплуатировать и уровень ее критичности. К каждой уязвимости приложено подробное описание, вектор эксплуатации, уязвимый код и рекомендации по устранению и защите. В качестве примера в статье приведен разбор одного из заданий по взлому онлайн-банкинга с помощью эксплуатации sql-инъекции.
Внедрение SQL-кода — один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.
XSS — «межсайтовый скриптинг» тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного кода (который будет выполнен на компьютере пользователя при открытии им этой страницы) и взаимодействии этого кода с веб-сервером злоумышленника. В контексте сайта рассматриваются три вида таких атак: хранимые, отраженные и DOM-based.
Атака, при которой целью является выполнение произвольных команд в операционной системе хоста через уязвимое веб-приложение.
Клиент-сайд вектор атаки: пользователь, совершая клик на специально сформированной странице злоумышленника, на самом деле кликает по ссылке на совершенно другом сайте.
«Межсайтовая подделка запроса», — вид атак на посетителей веб-сайтов, использующий недостатки протокола HTTP. Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на другой сервер (например, на сервер платёжной системы), осуществляющий некую вредоносную операцию (например, перевод денег на счёт злоумышленника).
Обход каталога (или обход пути) заключается в использовании недостаточной проверки безопасности предоставленных пользователем имен файлов, так что символы, представляющие переход к родительскому каталогу, передаются через API.
К загрузкам файлов следует относиться с осторожностью — они представляют собой простой способ для злоумышленника внедрить вредоносный код в ваше приложение.
Все ресурсы на вашем сайте должны иметь реализованный контроль доступа, даже если они не предназначены для обычных пользователей. Полагаться на «security through obscurity» нельзя.
Большинство веб-приложений использует функционал переадресаций. Если ваш сайт перенаправляет все URL-адреса, указанные в строке запроса — это может помочь злоумышленнику сформировать фишинговые вектора атак.
Недостаточное шифрование может сделать вас уязвимыми для атак типа «Man-in-the-Middle». Обязательно используйте HTTPS при передаче любого типа конфиденциальной информации.
Если злоумышленник может злоупотреблять функцией проверки подлинности, чтобы проверить, существует ли имя пользователя на вашем сайте, это значительно упростит использование других уязвимостей.
Выявление служебной информации помогает злоумышленнику узнать о технологиях вашего сайта, путях и т.д. и может дать возможность злоумышленнику
Безопасная обработка паролей имеет важное значение для безопасной системы аутентификации.
Повышение привилегий — злоумышленник использует уязвимость для представления другим пользователем (как правило с более высокими правами) или получения дополнительных разрешений.
Небезопасная обработка идентификаторов сеансов может привести к захвату сессии пользователя.
Предполагаемые идентификаторы сеанса делают ваш сайт уязвимым для захвата сеанса.
XML-документы могут включать встроенные макросы. Небезопасная обработка этих макросов может сделать ваш сервер уязвимым для атак из специально сформированных XML-файлов.
XML-файлы могут включать встроенные ссылки на другие документы. Небезопасная обработка внешних ссылок позволяет злоумышленнику получить доступ к файловой системе.
На первом шаге мы видим форму авторизации онлайн-банкинга и уведомление о наличии вероятной уязвимости:
Для удобства внизу страницы расположен лог запроса:
Далее нас просят ввести произвольный легитимный логин и пароль:
Данные неверны, попробуем обойти системы авторизации:
Получаем сообщение об ошибке (и более детальную информацию в логе):
На появившейся вкладке CODE выявляем природу ошибки:
Мы видим завершение запроса, теперь попробуем использовать эту уязвимость для обхода авторизации онлайн-банкинга:
Как вы видите мы добавили условие «1=1», значит критерием проверки будет «если логин ‘user’ или 1=1», но ведь 1 всегда равно 1. Если описать более простым языком — мы пытаемся войти в систему под пользователем user, с паролем равным условию 1=1.
Условие соблюдено — 1=1, а парольное поле отбрасывается!
Таким способом мы проникли внутрь онлайн-банкинга. Далее нам предоставляется описание методов защиты от инъекций: примеры кода, описание рисков и т.д.
В качестве дополнения к эксплуатации вектора SQL-инъекция рекомендую ознакомиться: со следующим материалом:
Онлайн туториал сделан довольно подробно и добротно и рекомендован к изучению в первую очередь разработчикам в качестве наглядного пособия «как не надо писать код.» Для специалистов по информационной безопасности это неплохая шпаргалка и средство визуализации веб-уязвимостей с хорошим описанием и пошаговой демонстрацией вектора атаки.
https://www.hacksplaining.com [3]
Автор: LukaSafonov
Источник [4]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/informatsionnaya-bezopasnost/253631
Ссылки в тексте:
[1] Методы обхода защитных средств веб-приложений при эксплуатации SQL-инъекций: https://habrahabr.ru/company/pentestit/blog/326362/
[2] Шпаргалка по sql-инъекциям: https://defcon.ru/web-security/2784/
[3] https://www.hacksplaining.com: https://www.hacksplaining.com
[4] Источник: https://habrahabr.ru/post/327270/
Нажмите здесь для печати.