Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
Читайте также: Байкал Электроникс предлагает современные энергоэффективные русские микропроцессоры, обладающие широким набором высокоскоростных сетевых интегрированных коммуникационных интерфейсов, позволяющие организовать пересылку данных с минимальными транзитными задержками и низким энергопотреблением только у нас - байкал по доступным ценам ...
Juice Shop поддерживает разные варианты установки, но я рекомендую использовать локальный вариант с Node.js. В версии Docker доступны не все возможные уязвимости, кроме того, неплохо научиться ставить Node.js без рута и узнать, как использовать одновременно несколько разных версий.
Juice 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 <номер версии>
В гитхабе разработчиков всегда можно найти свежие релизы. Проект постоянно развивается, вносятся новые задания и исправляются ошибки, поэтому всегда бери самый свежий вариант! Но он должен быть совместимым с твоим Node.js. Если на предыдущем этапе ты установил Node.js 14, то тебе будет нужен juice-shop-xx.
. Скачай его и распакуй в удобную тебе папку.
На этом установка завершена. Переходи в папку с Juice Shop и запускай его:
Если все прошло успешно, ты увидишь сообщение «info: Server listening on port 3000». Открывай любимый браузер и переходи на http://localhost:3000. В правом верхнем углу есть выбор языка, я всегда рекомендую ставить английский, так ты не встретишься с проблемами перевода разных терминов и, возможно, выучишь пару новых словечек. Надеюсь, тебе нравятся соки и этот прекрасный дырявый пакет, так как они и Burp Suite станут твоими лучшими друзьями на множество увлекательных часов.
Я буду использовать и показывать скриншоты Burp Suite Community, но ты можешь использовать любой удобный тебе инструмент. Поскольку грамотная настройка Burp и интеграция его с любимым браузером потянет на хорошую статью, я оставлю тебе это в качестве домашнего задания. Помни, если все статьи и советы в интернете кажутся тебе безнадежно устаревшими — официальная документация всегда к твоим услугам!
В своей предыдущей статье я уже упоминал о важности методики и системного подхода к пентесту. В случае с веб‑приложениями это вдвойне важно! В сети есть множество отличных чек‑листов вроде Pentesting Web Checklist. Если ты никогда не слышал о XSS, IDOR, CSRF, OAUTH — очень рекомендую тебе бесплатный курс разработчиков Burp Suite.
Теперь перейдем непосредственно к анализу нашего приложения. Я рекомендую сделать табличку с описанием доступных функций и необходимых уровней доступа. Она поможет тебе потом экспериментировать над приложением и отвечать на вопросы вроде «А что будет, если я отправлю админский запрос с правами гостя?»
Пройдись по всему приложению, понажимай все кнопки, посмотри товар. Теперь зарегистрируйся и попробуй пройти весь путь покупки товара от добавления его в корзину до доставки. Твоя задача — познакомиться с функциями приложения и подумать, где могут быть логические ошибки разработчиков или неучтенные моменты. Если вдруг закончились идеи, какие еще места магазина можно посетить, посмотри на Happy Path подробный гид, составленный разработчиками.
Я очень надеюсь, что ты не использовал при тестировании этого приложения реальные номера банковских карт и адреса! Помни, оно полно дыр как в плане безопасности, так и в плане приватности. Если вдруг сделал это, просто удали папку с приложением и установи его снова.
На какие места и функции этого и других приложений я рекомендую обращать особое внимание:
Теперь самое время посмотреть на OWASP Top 10. Все десять категорий обязательно присутствуют в Juice Shop. Что самое интересное, в каждой из этих категорий подробно описаны варианты возникновения и методы защиты. Варианты можно использовать как чек‑лист для проверки вроде «А посмотрел ли я этот момент в приложении?» или, если ты разработчик, «А не допустил ли я такой же ошибки у себя?»
На этом скучная (но очень важная!) вводная часть заканчивается, и я перехожу к непосредственно демонстрации уязвимостей магазина.
Ты наверняка при первом запуске уже заметил пакет с соком, предлагающий решить очень простую задачу, а именно найти доску с заданиями и результатами, она же Score Board. У этой крайне простой задачи есть два варианта решения.
/#/search
, /#/login
и так далее и подумай, а какой бы была строка для доступа к Score Board? Сразу скажу, этот вариант мне не очень нравится, поскольку нужно играть в угадайку, и не всегда успешно. Поэтому я предпочитаю вариант номер два.Что сразу же бросается в глаза? Огромное количество подключаемых скриптов на JS! Нас с тобой будет интересовать скрипт main
. За что отвечают другие скрипты, ты можешь выяснить на досуге с помощью любимого поисковика.
|
|