![]() |
С помощью запроса JSON и JavaScript можно удаленно выполнить код на устройстве жертвы https://www.securitylab.ru/upload/ib...a87f9edd5.jpeg JavaScript-платформа Blitz.js выпустила исправление для критической уязвимости загрязнения прототипа, чтобы предотвратить удаленное выполнение кода (RCE) на серверах Node.js. Загрязнение прототипа — это особый вид уязвимости JavaScript, который позволяет хакеру манипулировать структурой языка и использовать его несколькими способами. По словам исследователя безопасности Sonar Пола Герсте , это также позволяет злоумышленнику использовать код в приложении Blitz.js для разработки обратной оболочки и запуска произвольных команд на сервере. Герсте обнаружил цепочку эксплойтов, которые можно использовать с помощью RCE-уязвимости. Злоумышленники нацеливаются на Node.js, отправляя JSON-запрос на сервер, который запускает функцию маршрутизации Blitz.js для загрузки JavaScript-файла с загрязненным прототипом. Это позволяет киберпреступнику использовать вредоносный JavaScript-объект для выполнения произвольного кода. Злоумышленник должен запустить файл на сервере, но Blitz.js не поддерживает функцию загрузки. Однако, у платформы есть сценарий CLI, который использует функцию JavaScript spawn() для запуска нового процесса. Злоумышленник может использовать эту функцию для запуска процесса CLI и выполнения произвольной команды на сервере. Уязвимость может быть активирована без какой-либо аутентификации, а это означает, что любой пользователь, имеющий доступ к приложению Blitz.js, сможет выполнять RCE-атаки. «Этот метод атаки использует шаблон кода, который сам по себе не является уязвимостью. Загрязнение прототипа может отрицательно влиять на целевое приложение, и потребуется много работы для избавления от всего кода, на который может повлиять загрязнение прототипа», — объяснил Герсте. В своем сообщении в блоге исследователь упомянул некоторые общие рекомендации по защите приложений JavaScript от загрязнения прототипов, включая замораживание «object.prototype» или использование флага «--disable-proto=delete» в Node.js. «Я думаю, что загрязнение прототипов до сих пор неизвестно многим JavaScript-разработчикам», — добавил Герсте. |
All times are GMT. The time now is 12:21 PM. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc.