PHP Object Injection в корпоративных CMS — снова в топе эксплуатируемых уязвимостей, разбираем на примере
Рейтинг: 43.6% · 6 голосов
Войдите, чтобы голосовать
Голосовать «За» и «Против» могут только авторизованные пользователи. Войдите в свой аккаунт — или зарегистрируйтесь, это займёт минуту.
Нет аккаунта? Зарегистрироваться
PHP Object Injection в корпоративных CMS — снова в топе эксплуатируемых уязвимостей, разбираем на примере
По данным отчётов за первый квартал 2026, PHP Object Injection вернулась в тройку самых эксплуатируемых веб-уязвимостей наряду с Blind SQL Injection и File Upload. Казалось бы, про это рассказывали ещё лет десять назад, но корпоративные самописные CMS на PHP 7.x продолжают это тащить. Хочу разобрать типичный сценарий для тех, кто только начинает делать пентесты веба, и заодно обсудить как это ловить в багбаунти.
✔ Лучший ответ сформирован автоматически — Rhemix
@kakazulu, Классика жанра: приложение делает unserialize() на пользовательском вводе без валидации класса. Ищем в коде паттерн unserialize($_COOKIE[...]) или unserialize(base64_decode(...)). Дальше смотрим на доступные классы с магическими методами __wakeup(), __destruct(), __toString(). Если в зависимостях есть Guzzle, Monolog или любой популярный пакет — цепочка POP (Property-Oriented…
Re: PHP Object Injection в корпоративных CMS — снова в топе эксплуатируемых уязвимостей, разбираем на примере
✔ Лучший ответ — сформирован автоматически
@kakazulu, Классика жанра: приложение делает unserialize() на пользовательском вводе без валидации класса. Ищем в коде паттерн unserialize($_COOKIE[...]) или unserialize(base64_decode(...)). Дальше смотрим на доступные классы с магическими методами __wakeup(), __destruct(), __toString(). Если в зависимостях есть Guzzle, Monolog или любой популярный пакет — цепочка POP (Property-Oriented Programming) скорее всего уже собрана кем-то на GitHub. PHPGGC — твой друг, там база готовых гаджет-чейнов.
Re: PHP Object Injection в корпоративных CMS — снова в топе эксплуатируемых уязвимостей, разбираем на примере
@Rhemix, Для поиска в чёрном ящике: в Burp Suite ставишь расширение PHP Object Injection Scanner, он автоматом подставляет тестовые пейлоады во все параметры включая куки. Плюс смотри на куки с base64-паттерном O: — это почти всегда сериализованный объект. На bagbounty платформах это регулярно Medium/High, иногда Critical если можно выйти в RCE.
Re: PHP Object Injection в корпоративных CMS — снова в топе эксплуатируемых уязвимостей, разбираем на примере
@ivan21, Стоит добавить: на PHP 8.2+ ситуация получше, там deprecated ряд небезопасных паттернов, но не убраны. Реальная проблема — легаси на PHP 7.4 и даже 7.1, которое «работает и трогать не будем». Видел такое у двух региональных банков в рамках легального пентеста по договору. Разработчики вообще не знали что unserialize это опасно.
Re: PHP Object Injection в корпоративных CMS — снова в топе эксплуатируемых уязвимостей, разбираем на примере
@Rhemix, Я на прошлой неделе закрыл такую находку на одном e-commerce портале (программа на HackerOne, всё легально). Цепочка через Symfony HttpFoundation до записи файла в webroot. От отправки пейлоада до шелла — 20 минут. Заплатили $1500, пофиксили за день. Мораль: используйте json_decode вместо unserialize там где не нужна сериализация объектов, и whitelist классов через allowed_classes в unserialize() если уж нельзя отказаться.
Поделиться темой:
✈ Telegram
VK
- Похожие темы
-
- LLM в продукте — кто как защищается от prompt injection? OWASP LLM Top 10
10 ответов · 751 просмотров
-
- CVE-2025-53773: prompt injection в Copilot привёл к RCE 9.6. Мы реально открыли ящик Пандоры с RAG
9 ответов · 495 просмотров
-
- Как тестировать LLM-приложения на prompt injection — методология и инструменты в 2026
6 ответов · 82 просмотров
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость