Pull to refresh

Comments 17

Фантастика! Это тянет на статью года.
Именно подходом, декларированным в самом начале — отслеживание хода мысли, подробное описание использованных приёмов, а не как обычно "вот мы находим дырку… profit!"
Спасибо огромное за терпение, и при раскручивании этой уязвимости, и — главное — при написании статьи!


Как раз сейчас перечитывал "Хакеров" Стивена Леви, и в статье прямо чувствуется дух тех времен зарождения хакерства, как искусства.


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

Спасибо за отзыв!
Первая версия статьи как раз была на английском, ищется по ключевым словам на Medium.

Спасибо, нашел. Не хотите его запостить в /r/PHP на Реддите? А то у меня самого руки чешутся :) Но когда автор размещает, то это всегда лучше — и фидбек из первых рук, и вообще…
Там просто ссылку даешь, и все.

Реддитом не пользуюсь, можете запостить, я не против)

Хорошо. Хочу только уточнить один момент. Я правильно понимаю, что https://api-stage.seedr.ru/player был открыт для доступа (сейчас он у меня не открывается) и при этом вываливал на экран отладочную информацию? То есть на проде этого всего не было, но благодаря открытому стейджу и удалось получить фидбек по ошибкам?

Сидр закрыли в феврале, поэтому да, хосты могут не работать.

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

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

Решил составить TL;DR:
Надеюсь, все правильно понял


  • встроенный плеер запрашивает информацию о видео со сторонних сервисов
  • Вимео отдает инфу в формате РНР serialize(!)
  • Также в вимео есть открытый редирект (определенный параметр в URL заставляет любой скрипт вместо отдачи контента сделать редирект на указанный адрес)
  • соответственно, скрипту на Seedr пожно подсунуть свой сериализованный объект.
  • API Seedr выдает наружу системные ошибки РНР()
  • из текста ошибки стало ясно, что на сервере используется Кохана
  • стейдж сервер доступен без пароля, и при этом при ошибках вываливает дебаг панель. Хотя это, наверное, непринципиальный момент, но сильно упростил дальнейшие ходы
  • с помощью стандартной уязвимости unserialize можно создать экземпляр класса View и получить контролируемый инклюд файла
  • теперь остается найти этот файл. самый очевидный киндидат — это логи
  • находим файл, в который пишется переданный на сайт запрос. И в этом запросе размещается РНР код
  • затем этот файл с логом иклюдится через класс View.

Большое спасибо за статью! Серьёзный труд был вложен как в работу, так и в написание)

Можете поделиться, какой опыт в пентесте и багбаунти, давно ли этим занимаетесь? И про опыт разработки, если не сложно.

Мне до подобного ещё далеко, но хоть яснее наметить себе путь для развития) Спасибо!

Спасибо.


5 лет в безопасности, учитывая год самообучения до начала работы по текущему профилю. В баг-баунти года 3-4, но с большими перерывами. До этого был небольшой опыт технической поддержки, обслуживания биллинга и немного разработки на PHP, JS, Python.

Ели заинтересованы в безопасности веб-приложений, то для начала могу порекомендовать бесплатные лабы от PortSwigger. Успехов!

Классно. Прямо хорошо показано что такое современные уязвимости, откуда они берутся и как их находят и эксплуатируют. На настоящем живом примере.

Великолепная статья, интересно и подробно рассказано. Спасибо большое!

@ByQwertвышло очень круто! Особенно порадовала кооперация с Harsh Jaiswal.

P.S.: читать ход мысли после того как читал отчет вдвойне интереснее, ощущение что смотришь на сцену из-за кулис.

Sign up to leave a comment.

Articles