
Эксплойт-доказательство концепции для CVE-2023-33404: уязвимость аутентифицированной загрузки файлов в BlogEngine.NET CMS 3.3.8.0 и более ранних версиях, позволяющая удаленное выполнение кода через жестко заданный путь загрузки.
Пользователь, имеющий права EditOwnPosts в BlogEngine.NET CMS (версия 3.3.8.0 и более ранние), может загрузить вредоносный файл в жестко заданное расположение.
POST-запрос к конечной точке /api/upload с параметрами "action=video", как показано на скриншоте ниже, запускает процесс загрузки файла.

Приложение сначала проверяет, есть ли у пользователя права EditOwnPosts для продолжения загрузки видео, в противном случае приложение выдает ошибку.
Как показано на скриншоте ниже, в строках 101 и 105 приложение задает жестко закодированное расположение для загружаемых файлов. После этого оно вызывает функцию с именем UploadVideo (строка 107).

Функция UploadVideo проверяет, существует ли целевая директория, создает её, если её нет, и сохраняет файл в эту директорию.

Как показано на скриншоте ниже, она перемещает вредоносный файл в жестко заданную директорию. Запрос к загруженному файлу приводит к RCE.
