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)
Skrypty CGI to skrypty perl, więc jeśli skompromitowałeś serwer, który może wykonywać .cgi skrypty, możesz przesłać powłokę odwrotną w perl (/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 powłoki odwrotnej z przeglądarki internetowej, aby ją wykonać. Aby przetestować vulny CGI, zaleca się użycie nikto -C all
(i wszystkich wtyczek)
ShellShock to vulnerability, która dotyczy szeroko stosowanej powłoki wiersza poleceń Bash w systemach operacyjnych opartych na Unixie. Skierowana jest na zdolność 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 skompromitowanie systemu.
Wykorzystując tę wrażliwość, strona może zgłaszać błąd.
Możesz znaleźć tę wrażliwość 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 WWW. 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 WWW 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.
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)