Категория > Новости > Самый сочный веб-апп. Громим OWASP Juice Shop — полигон для атак на веб-приложения - «Новости»
Самый сочный веб-апп. Громим OWASP Juice Shop — полигон для атак на веб-приложения - «Новости»20-05-2021, 21:29. Автор: Платон |
OWASP (Open Web Application Security Project). Это открытый некоммерческий фонд, который занимается вопросами обеспечения безопасности веб‑приложений. Кроме крайне популярного OWASP Top 10, там разработали и постоянно развивают очень интересный проект Juice Shop, призванный продемонстрировать самые часто встречаемые уязвимости в приложениях и «худшие практики» веб‑разработки. Этот магазинчик — идеальный полигон для тренировки и изучения пентеста реальных приложений. В этой статье я покажу, как ставить, запускать и искать свои первые уязвимости.
Установка и запускJuice Shop поддерживает разные варианты установки, но я рекомендую использовать локальный вариант с Node.js. В версии Docker доступны не все возможные уязвимости, кроме того, неплохо научиться ставить Node.js без рута и узнать, как использовать одновременно несколько разных версий. Установка Node.jsJuice Shop поддерживает разные стабильные релизы Node.js. На момент написания статьи последней LTS (Long Term Support) Node.js была 14 версия, ее‑то мы и будем ставить. Чтобы не захламлять свою ОС пакетами и иметь возможность использовать разные релизы, был придуман Node Version Manager. Он устанавливается в домашнюю папку и позволяет легко рулить версиями. Сейчас последняя версия — 0.38, но я всегда рекомендую сходить и проверить перед установкой. Установка выполняется одной командой в домашней папке. Теперь тебе нужно открыть и закрыть терминал, чтобы внесенные скриптом изменения применились. Проверь установленную версию nvm и переходи непосредственно к установке Node.js. $nvm install --lts Проверь версию установленной команды node и запомни ее. Если тебе понадобится несколько разных версий одновременно, просто установи нужные и выбирай актуальную по необходимости (эта часть уже не нужна для работы Juice Shop). $nvm use <номер версии> Установка Juice ShopВ гитхабе разработчиков всегда можно найти свежие релизы. Проект постоянно развивается, вносятся новые задания и исправляются ошибки, поэтому всегда бери самый свежий вариант! Но он должен быть совместимым с твоим Node.js. Если на предыдущем этапе ты установил Node.js 14, то тебе будет нужен На этом установка завершена. Переходи в папку с Juice Shop и запускай его: Если все прошло успешно, ты увидишь сообщение «info: Server listening on port 3000». Открывай любимый браузер и переходи на http://localhost:3000. В правом верхнем углу есть выбор языка, я всегда рекомендую ставить английский, так ты не встретишься с проблемами перевода разных терминов и, возможно, выучишь пару новых словечек. Надеюсь, тебе нравятся соки и этот прекрасный дырявый пакет, так как они и Burp Suite станут твоими лучшими друзьями на множество увлекательных часов. Настройка Burp SuiteЯ буду использовать и показывать скриншоты Burp Suite Community, но ты можешь использовать любой удобный тебе инструмент. Поскольку грамотная настройка Burp и интеграция его с любимым браузером потянет на хорошую статью, я оставлю тебе это в качестве домашнего задания. Помни, если все статьи и советы в интернете кажутся тебе безнадежно устаревшими — официальная документация всегда к твоим услугам! Основные уязвимые местаВ своей предыдущей статье я уже упоминал о важности методики и системного подхода к пентесту. В случае с веб‑приложениями это вдвойне важно! В сети есть множество отличных чек‑листов вроде Pentesting Web Checklist. Если ты никогда не слышал о XSS, IDOR, CSRF, OAUTH — очень рекомендую тебе бесплатный курс разработчиков Burp Suite. Теперь перейдем непосредственно к анализу нашего приложения. Я рекомендую сделать табличку с описанием доступных функций и необходимых уровней доступа. Она поможет тебе потом экспериментировать над приложением и отвечать на вопросы вроде «А что будет, если я отправлю админский запрос с правами гостя?» Доступные функции Пройдись по всему приложению, понажимай все кнопки, посмотри товар. Теперь зарегистрируйся и попробуй пройти весь путь покупки товара от добавления его в корзину до доставки. Твоя задача — познакомиться с функциями приложения и подумать, где могут быть логические ошибки разработчиков или неучтенные моменты. Если вдруг закончились идеи, какие еще места магазина можно посетить, посмотри на Happy Path подробный гид, составленный разработчиками. warningЯ очень надеюсь, что ты не использовал при тестировании этого приложения реальные номера банковских карт и адреса! Помни, оно полно дыр как в плане безопасности, так и в плане приватности. Если вдруг сделал это, просто удали папку с приложением и установи его снова. На какие места и функции этого и других приложений я рекомендую обращать особое внимание:
Теперь самое время посмотреть на OWASP Top 10. Все десять категорий обязательно присутствуют в Juice Shop. Что самое интересное, в каждой из этих категорий подробно описаны варианты возникновения и методы защиты. Варианты можно использовать как чек‑лист для проверки вроде «А посмотрел ли я этот момент в приложении?» или, если ты разработчик, «А не допустил ли я такой же ошибки у себя?» На этом скучная (но очень важная!) вводная часть заканчивается, и я перехожу к непосредственно демонстрации уязвимостей магазина. Ищем доску с заданиямиТы наверняка при первом запуске уже заметил пакет с соком, предлагающий решить очень простую задачу, а именно найти доску с заданиями и результатами, она же Score Board. У этой крайне простой задачи есть два варианта решения.
Исходный код главной страницы Juice Shop Что сразу же бросается в глаза? Огромное количество подключаемых скриптов на JS! Нас с тобой будет интересовать скрипт Перейти обратно к новости |