İçeriğe geç

İşletim sistemi komut enjeksiyonu (ARCH7102)

Anahtar php.security.os-command-injection · Önem error · Kategori security · CWE CWE-78

Komut dizesini kullanıcı girdisiyle kurup kabuğa geçirmek, saldırganların kabuk meta karakterleriyle ek komut zincirlemesine olanak tanır. Argümanları kaçışlamak veya kabuğu atlamak gerekir.

<?php
$host = $_GET['host'];
$output = shell_exec("ping -c 1 $host");
echo $output;
<?php
$host = $_GET['host'];
$cmd = 'ping -c 1 ' . escapeshellarg($host);
$output = shell_exec($cmd);
echo htmlspecialchars($output);

Argümanları escapeshellarg() ile kaçışlayın veya doğrudan kabuğa girdi geçirmek yerine izin listesiyle doğrulayın.