İçeriğe geç

OS komut enjeksiyonu (ARCH4102)

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

Komut dizesini güvenilmeyen girdiden oluşturmak veya bir kabuk üzerinden çalıştırmak, saldırganların ; veya | gibi metakarakterlerle keyfi komut çalıştırmasına izin verir.

String host = request.getParameter("host");
Runtime.getRuntime().exec("ping -c 1 " + host);
String host = request.getParameter("host");
new ProcessBuilder("ping", "-c", "1", host).start();

Komutu ve argümanlarını ayrı bir dizi olarak ProcessBuilder’a verin; kabuk yorumlamasından ve dize birleştirmeden kaçının.