Цель работы: Поиск и устранение XSS уязвимостей.
Те кто делает лабораторную на своём языке программирования, должны сначала восстановить в точности этот пример
В папке lab3
находится nodejs
уязвимое приложение. Необходимо развернуть его, найти источники XSS и исправить. Модифицированное приложение загрузить в свой репозиторий GitHub.
Для выполнения лабораторной потребуется проделать следующие шаги (если вы их проделали для лабораторной 2, то повторять не нужно):
- Установить PostgreSQL сервер любой версии
- Создать БД
lib
- Применить к ней скрипты из папки
db
(либо создать объекты и вставить данные в таблицы руками). Скрипты выполнять в порядке указанном в имени файла.
3.1 Восстановить данные из файлаdata.sql
- Установить
nodejs
версии 14. - Перейти в папку
lab3
и выполнить в ней командуnpm install
. - Запустить сайт через Visual Studio Code или через команду
npm start
. - Войти на сайт и увидеть список книг и авторов
- На странице со списком книг найти
8.1 Reflected XSS в поиске книг
8.2 Persisted (Stored) XSS при создании книги и отображении списка книг
8.3 Потенциальную уязвимость через Cookie Injection
8.4 Некорректное создание сессионной cookie, которое приводит к захвату сессии (Session hijacking) - Написать отчёт с описанием найденных уязвимости и примерами их эксплуатации
- Исправить уязвимость
10.1 В отчёте привести пример того, что уязвимости больше не эксплуатируются - Сохранить отчёт в свой репозиторий
Полезные ссылки
- lecture 5 (cross site scripting).pptx lecture 6 (cross site scripting cont.).pptx
- https://owasp.org/www-community/Types_of_Cross-Site_Scripting
- https://www.ptsecurity.com/ww-en/analytics/knowledge-base/what-is-a-cross-site-scripting-xss-attack/
- https://habr.com/ru/post/511318/
- https://pugjs.org/api/getting-started.html
- https://pugjs.org/language/code.html
- https://developer.mozilla.org/ru/docs/Web/HTTP/Cookies
- https://developer.mozilla.org/en-US/docs/Web/Security/Types_of_attacks#session_hijacking
- https://owasp.org/www-community/attacks/Session_hijacking_attack
- https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html