Это лабораторное занятие — хороший способ попрактиковаться в XSS и навыках перехвата сеанса.
Ссылка на лабораторию
Мы должны проверить, уязвим ли сайт для атаки XSS. Итак, я публикую комментарий в блоге, но, поскольку я не использовал Burp Collaborator, мне пришлось создать код для получения формы данных и перехватить сеанс.
Во-первых, давайте проверим ввод формы, используя:
‹img src=0 onerror=print()›
Если вы проверите каждый ввод с помощью этого скрипта, вы увидите, что поле комментария уязвимо для XSS, и возврат на страницу подтвердит загруженную функцию печати.
Чтобы сделать запрос POST в этой форме, мне нужно получить значение «csrf» скрытого поля, поэтому мне нужно было создать токен со значением «csrf», чтобы форма могла опубликовать комментарий.
Давайте посмотрим на запрос POST на Burp:
Обратим внимание на «crsf».
Взглянув на источник представления, вы можете увидеть скрытый ввод под названием «crsf».
Приведенная выше команда может помочь вам получить значение «crsf»:
var token = document.getElementsByName(‘csrf’)[0].value;
Используйте DevTools для подтверждения:
Используя этот скрипт, вы можете использовать форму XSS.
Сначала вы дождетесь рендеринга DOM с DOMContentLoaded и только затем получите значение токена.
Просто обратите внимание на то, чтобы значение postId совпадало с тем, которое вы будете комментировать.
После публикации комментария вы увидите идентификатор сеанса и сможете использовать его для захваченного сеанса.
Перейдите в Burp Repeater, добавьте поле «Cookie: session: ‹‹session on comment››» и отправьте запрос.
Я увижу, что теперь вы вошли в систему как администратор.
Если у вас есть лучшие идеи для решения этой лабораторной работы, сообщите мне об этом в комментариях.