Это лабораторное занятие — хороший способ попрактиковаться в 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››» и отправьте запрос.

Я увижу, что теперь вы вошли в систему как администратор.

Если у вас есть лучшие идеи для решения этой лабораторной работы, сообщите мне об этом в комментариях.