RCE

Удаленное выполнение кода (RCE) позволяет злоумышленнику выполнить произвольный код на удаленном устройстве. Злоумышленник может достичь RCE несколькими различными способами, включая:

Примеры уязвимого кода:

PHP

$user_input = $_POST['user_input'];
eval($user_input);

Этот код принимает вводимые пользователем данные из запроса POST, а затем использует eval() функция для выполнения его в виде PHP-кода. С тех пор как eval() если злоумышленник может выполнить любой допустимый PHP-код, он может предоставить вредоносный код в качестве входных данных для выполнения произвольных команд на сервере.

Java

Runtime.getRuntime().exec(request.getParameter("cmd"));

Этот код принимает пользовательский ввод из веб-запроса и передает его в exec() метод проведения Время выполнения класс без надлежащей проверки входных данных. Злоумышленник может предоставить специально созданный ввод для выполнения произвольных команд в системе.

C#

string cmd = Request.QueryString["cmd"];
System.Diagnostics.Process.Start("cmd.exe", cmd);

Этот код принимает вводимые пользователем данные из строки запроса, а затем использует Process.Start() способ выполнения команды в системе. Злоумышленник может ввести специально созданную команду в качестве входных данных для выполнения произвольных команд в системе.

Последствия RCE-атак

Некоторые из основных последствий атаки RCE включают: