Есть ли способ использования putenv ()?

Я использую следующий код:

$data = json_decode($_GET["payload"]);
$env = $data->env;

putenv("MYENV=".$env);

Но эта функция эксплуатируется. Понятия не имею как. Злоумышленник может выполнить любой код на моей машине (Windows).

У кого-нибудь есть идея, как это возможно или как это исправить?

0

Решение

Это называется уязвимость ShellShock. Он в основном выполняет любой код, который хочет злоумышленник, если { :;}; включены. Например

MYENV="{ :; }"; /bin/eject

приведет к извлечению диска DVDROM в Linux. Так что на самом деле все возможно здесь.

Источник:

0

Другие решения

Потому что некоторые переменные окружения опасны, как LD_PRELOAD в Linux.
Обычно это зависит не только от putenv, но и от другой возможной уязвимости в вашем коде (например, если вы выполняете что-то, что использует магическую конфигурацию через среду, это может привести к эксплуатации)

0

По вопросам рекламы [email protected]