Представляем задачу Cloudflare PHP Capture the Flag

Источник: Cloudflare Blog•

Представляем задачу Cloudflare PHP Capture the Flag

Мы запускаем задачу PHP Capture the Flag, интегрированную с нашей программой Bug Bounty, чтобы протестировать защитные механизмы нашего WAF. Исследователи безопасности приглашаются обойти нашу защиту и захватить флаг, чтобы сделать Интернет безопаснее.

Прошедшая неделя вошла в историю интернет-безопасности. Сначала были скомпрометированы восемь промежуточных сертификатов eMudhra, что создало вероятность создания поддельных сертификатов, которые могли бы использоваться для выдачи себя за серверы. Затем появился php2shell: серьезные уязвимости в PHP, среде выполнения, обслуживающей значительную часть Веба.

Cloudflare работала круглосуточно по мере развертывания этих событий, чтобы защитить наших клиентов и помочь защитить Интернет. Мы выпустили обновления для клиентов и многочисленные средства митигации, обновили наш брандмауэр веб-приложений (WAF) новыми правилами для блокирования злоумышленников, использующих уязвимости PHP, и представили новую функцию под названием «обнаружение полных транзакций».

Как всегда в подобных ситуациях, эти новые возможности были предоставлены на всех тарифных планах, включая Бесплатный.

Испытайте наш WAF на прочность

Защита систем от подобных уязвимостей — это всегда непрерывный процесс, а не разовое событие. Широкое внедрение ИИ позволяет злоумышленникам находить новые векторы с беспрецедентной скоростью и эффективностью, поэтому сбор реальных данных для проверки наших предположений и усиления защиты имеет решающее значение.

Именно поэтому сегодня мы запускаем задачу Cloudflare PHP Capture the Flag, проводимую через нашу программу Bug Bounty. Мы разместили намеренно уязвимую установку PHP за нашим WAF и приглашаем исследователей безопасности на HackerOne попытаться обойти защиту и захватить флаг.

Как работает это соревнование Capture the Flag (CTF)

Мы упрощаем задачу. Соревнование сосредоточено на CVE-2026-109618 и CVE-2026-109619, двух уязвимостях PHP, лежащих в основе php2shell. Целевая среда работает на стандартном PHP 8.5.11 (со стандартными расширениями PHP), Apache 2 (через mod_php) и пустом файле index.php внутри Cloudflare Container, перед которым включены наши правила защиты WAF по умолчанию для этих уязвимостей. Внутри песочницы находится файл с именем /flag.

Песочница сбрасывается каждые несколько минут, включая файл флага.

Ваша миссия, если вы решите ее принять: обойти защиту WAF, скомпрометировать PHP-песочницу и восстановить содержимое /flag. Вы можете использовать собственные исследовательские инструменты. На странице соревнования указаны детали окружения, область действия и форма проверки флага.

Требования соревнования

Это ограниченное по времени соревнование проводится через программу Bug Bounty от Cloudflare на HackerOne. Все аспекты этого соревнования регулируются правилами HackerOne и правилами программы Cloudflare HackerOne (далее — «Условия выплаты вознаграждений»). Если вы найдете подходящий обходной путь, вы должны выполнить следующие требования, чтобы получить вознаграждение:

  • Все участники должны зарегистрировать учетную запись HackerOne, а также изучить Условия выплаты вознаграждений и согласиться с ними перед участием в CTF.
  • Продемонстрируйте выполнение контролируемого злоумышленником кода PHP или команд внутри песочницы с помощью авторизованного POST-запроса.
  • Используйте это удаленное выполнение кода (RCE) для восстановления текущего содержимого /flag, а затем успешно проверьте флаг через пользовательский интерфейс CTF (UI). Выполните проверку оперативно до сброса; сохраните успешный результат для последующего анализа.
  • Отправьте приватный отчёт в Cloudflare на HackerOne. Укажите PHP CTF в заголовке и предоставьте: конечную точку, полный полезный нагрузочный модуль (пейлоуд) и последовательность запросов, сохраняя соответствующие заголовки, кодировку и байты тела. Необработанные дампы запросов/ответов или читаемое доказательство концепции (PoC), достаточное для воспроизведения всей цепочки. Объяснение обхода WAF, выполненного кода или команды и того, как это выполнение восстановило /flag. Идентификатор попытки, успешный результат проверки в UI и временные метки UTC эксплойта/проверки. При необходимости включите флаг в закрытом виде для проверки.
  • Конечная точка, полный полезный нагрузочный модуль (пейлоуд) и последовательность запросов, сохраняя соответствующие заголовки, кодировку и байты тела.
  • Необработанные дампы запросов/ответов или читаемое доказательство концепции (PoC), достатчное для воспроизведения всей цепочки.
  • Объяснение обхода WAF, выполненного кода или команды и того, как это выполнение восстановило /flag.
  • Идентификатор попытки, успешный результат проверки в UI и временные метки UTC эксплойта/проверки. При необходимости включите флаг в закрытом виде для проверки.
  • Что делает этот метод или пейлоуд существенно отличным от других, а также известные вам связанные отправленные отчеты.

Проверка через UI не отправляет отчет и не устанавливает приоритет рассмотрения. Раскрытие файлов без RCE, RCE без успешного восстановления флага и проверки в UI, локальные эксплойты, повторное обнаружение известных уязвимостей PHP, а также различия в обнаружении WAF или неполные цепочки без достижения основной цели не имеют права на участие в программе.

Для получения наград требуется существенно отличный метод обхода или полезная нагрузка эксплойта, даже для того же самого CVE PHP. Новые флаги, сбросы, идентификаторы попыток или косметические изменения, включая эквивалентные кодировки, не считаются уникальными. Эквивалентные заявки считаются дубликатами, даже если они не исправлены; рассматривается только первый полный, воспроизводимый отчет на HackerOne. Решения о дубликатах и наградах принимает Cloudflare.

Мы записываем метаданные попыток и полезные нагрузки запросов, чтобы помочь анализировать отчеты, поэтому используйте только тестовые данные. Не отправляйте учетные данные, личную информацию или что-либо еще, что вы не хотели бы включать в исследовательский архив. Ознакомьтесь с уведомлением о конфиденциальности Cloudflare перед тестированием.

Тестирование разрешено только в отношении конечных точек /php/* (только метод POST), защищенных WAF для хост-несущего соревнование. Другие службы Cloudflare, прямой доступ к базовой инфраструктуре, вышестоящий проект PHP и сторонние системы находятся вне зоны действия. Запрещены отказ в обслуживании (DoS), высокоскоростное сканирование, закрепление в системе, социальная инженерия или атаки на других участников. Если вы получаете ошибку 429 или 503, сбавьте обороты.

В случае возникновения каких-либо противоречий между этой публикацией в блоге и Условиями выплаты вознаграждений, преимущественную силу имеют Условия выплаты вознаграждений.

Cloudflare оставляет за собой право приостановить или прекратить данное соревнование в любое время. Как только соревнование будет удалено из HackerOne, оно официально считается завершенным, поэтому обращайтесь к странице Cloudflare на HackerOne для получения самой актуальной информации о том, остается ли это соревнование открытым.

Не заменяет исправление уязвимостей (патчинг)

Наш WAF защищает вас, но он не заменяет устранение уязвимостей в программном обеспечении. Блокирование ответов может предотвратить попадание раскрытых данных к злоумышленнику, но оно не может отменить действия, уже выполненные на сервере-источнике. Если вы используете PHP, следуйте последним рекомендациям по безопасности PHP и применяйте соответствующие обновления.

Прошедшая неделя напомнила нам, что помощь в создании лучшего Интернета часто требует сложной и срочной совместной работы многих людей: исследователей, мейнтейнеров и команд по всей индустрии.

Мы надеемся, что это соревнование предоставит каждому удобный способ присоединиться. Переходите к , если хотите принять участие: флаг там, и мы хотели бы знать, сможете ли вы его получить.

О чём эта статья

Ещё в разделе «Облака и инфраструктура»

Все →

Ещё от Cloudflare