OS Command İnjection Açığı Nedir Nerede Bulunur ?

Bazı durumlarda web uygulamalarının işletim sistemi ile iletişime geçmesi gerekmektedir. Kullanıcılar istek (request) web uygulaması (response) döndürür buna request response cycle denir. Eğer 60 saniyede bu işlem bitmiyorsa arkaplanda işlemler gerçekleşir. İşte bu arkaplandaki işlemler işletim sistemi sayesinde yapılır yani burada asenkron yapısı vardır. Dedim ya bazı işlemler için komut çalıştırmak gereklidir örneğin siz bir sosyal ağ platformundaki bütün fotoğraflarınızı, arşivinizi indirmek istiyorsunuz burada arkaplanda olan işlem olacak komut satırında bir komut yazılacak ve en sonunda size mail gibi bişey gelecek. İşte command injection açığı bu tür olan her yerde bulunabilir.


Bazı Dillerde Komut Çalıştırma;


Python ;
import subprocess
subprocess.call(["ls", "-la"])

PHP ;
system("ls -la")

Java ;
getRunTime()



Bu açığı iyi bir şekilde kullanabilmeniz için Linux ve cmd komutlarını iyi şekilde bilmeniz gerekiyor örnek olarak port swigger labını çözerken bir görüntü bıraktım. Eğer kontrol etmek istiyorsanız en iyi komut dnslookup sanırım win ve linux de de çalışan komut. Bu arada hiç bilmeyenler ";" , "|" gibi operatörleri sorabilir bunlar linux üzerinde ikinci bir komut çalıştırmaya olanak sağlar dediğim gibi linux bilmek büyük önem taşımakta.


YouTube




YouTube