← Все комнаты Путь «Первые шаги» →Путь «Веб» →
НовичокВеб Флаг Осенний CTF

Процентный доход

Прогресс комнаты 0 / 4
Задание 1Введение

Цель: Раскодировать percent-encoding, который часто прячет атаки в логах.

В журнале веб-сервера найден странный параметр запроса. Что в нём на самом деле?

Задание 2Теория и инструменты

В URL нельзя использовать любые символы, поэтому их кодируют как %XX, где XX — hex-код байта: пробел — %20, { — %7B.

Атакующие кодируют полезную нагрузку (например, ../ или <script>), чтобы обойти простые фильтры и спрятаться от глаз в логах.

Инструменты

  • Python: urllib.parse.unquote(s)
  • JS: decodeURIComponent(s)
  • CyberChef: URL Decode

Больше теории — в разделе «Обучение: Веб».

Задание 3Практика: найдите флаг
Данные задания86 символов
GET /search?q=%43%54%46%7B%70%33%72%63%33%6E%74%5F%33%6E%63%30%64%31%6E%67%7D HTTP/1.1
Войдите, чтобы ответить

Пошаговый план — открывайте по одному шагу

  1. 1
    Выделите значение параметра q= (до пробела перед HTTP/1.1).

Подсказки — каждая до решения стоит −10 очков

Задание 4Как защититься

Фильтры и WAF должны проверять данные после полного декодирования, а лучше — использовать параметризованные API, а не фильтровать строки.

Разборы участников

Разборы открываются после того, как вы решите комнату, — чтобы не спойлерить ответ.