From 66652e8147990d3db8a39e03442c788fe0941512 Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 22 Jul 2025 08:43:46 +0000 Subject: [PATCH] Translated ['src/pentesting-web/ssrf-server-side-request-forgery/url-for --- .../url-format-bypass.md | 38 +++++++++++++++++-- 1 file changed, 35 insertions(+), 3 deletions(-) diff --git a/src/pentesting-web/ssrf-server-side-request-forgery/url-format-bypass.md b/src/pentesting-web/ssrf-server-side-request-forgery/url-format-bypass.md index aa6f92077..4bf867792 100644 --- a/src/pentesting-web/ssrf-server-side-request-forgery/url-format-bypass.md +++ b/src/pentesting-web/ssrf-server-side-request-forgery/url-format-bypass.md @@ -109,7 +109,7 @@ attacker。com Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴ ⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿ ``` -### Zbunjenost domena +### Zbunjenost Domenа ```bash # Try also to change attacker.com for 127.0.0.1 to try to access localhost # Try replacing https by http @@ -158,7 +158,7 @@ Alat [**recollapse**](https://github.com/0xacb/recollapse) može generisati vari ### Automatic Custom Wordlists -Pogledajte [**URL validation bypass cheat sheet** webapp](https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet) od portswigger-a gde možete uneti dozvoljeni host i napadačev host, a on će generisati listu URL-ova koje možete isprobati. Takođe uzima u obzir da li možete koristiti URL u parametru, u Host header-u ili u CORS header-u. +Pogledajte [**URL validation bypass cheat sheet** webapp](https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet) od portswigger-a gde možete uneti dozvoljeni host i napadačev, i generisaće listu URL-ova koje možete isprobati. Takođe uzima u obzir da li možete koristiti URL u parametru, u Host header-u ili u CORS header-u. {{#ref}} https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet @@ -166,7 +166,7 @@ https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet ### Bypass via redirect -Moguće je da server **filtrira originalni zahtev** za SSRF **ali ne** mogući **redirect** odgovor na taj zahtev.\ +Moguće je da server **filtrira originalni zahtev** SSRF **ali ne** mogući **redirect** odgovor na taj zahtev.\ Na primer, server koji je ranjiv na SSRF putem: `url=https://www.google.com/` može **filtrirati url parametar**. Ali ako koristite [python server da odgovori sa 302](https://pastebin.com/raw/ywAUhFrv) na mesto gde želite da preusmerite, možda ćete moći da **pristupite filtriranim IP adresama** kao što je 127.0.0.1 ili čak filtriranim **protokolima** kao što je gopher.\ [Pogledajte ovaj izveštaj.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530) ```python @@ -207,10 +207,42 @@ Karakter “levo kvadratno zagrade” `[` u segmentu korisničkih informacija mo slika sa [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/) +### IPv6 Zone Identifier (%25) trik + +Moderni URL parseri koji podržavaju RFC 6874 omogućavaju *link-local* IPv6 adrese da uključuju **zone identifier** nakon procentnog znaka. Neki sigurnosni filteri nisu svesni ove sintakse i samo će ukloniti IPv6 literale u kvadratnim zagradama, dopuštajući sledećem payload-u da dođe do interne interfejsa: +```text +http://[fe80::1%25eth0]/ # %25 = encoded '%', interpreted as fe80::1%eth0 +http://[fe80::a9ff:fe00:1%25en0]/ # Another example (macOS style) +``` +Ako ciljana aplikacija validira da host *nije* `fe80::1`, ali prestaje da analizira na `%`, može pogrešno tretirati zahtev kao eksterni. Uvek normalizujte adresu **pre** bilo kakve bezbednosne odluke ili potpuno uklonite opcioni identifikator zone. + +### Nedavne CVE-ove vezane za analizu biblioteka (2022–2025) + +Nekoliko mainstream okvira imalo je problema sa neusaglašavanjem imena hosta koji se mogu iskoristiti za SSRF kada je validacija URL-a zaobiđena trikovima navedenim iznad: + +| Godina | CVE | Komponenta | Sinopsis greške | Minimalni PoC | +|--------|-----|------------|------------------|---------------| +| 2024 | CVE-2024-22243 / ‑22262 | Spring `UriComponentsBuilder` | `[` nije dozvoljen u *userinfo* sekciji, tako da `https://example.com\[@internal` se analizira kao host `example.com` od strane Spring-a, ali kao `internal` od strane pregledača, omogućavajući open-redirect i SSRF kada se koriste liste dozvoljenih hostova. Ažurirajte na Spring 5.3.34 / 6.0.19 / 6.1.6+. | +| 2023 | CVE-2023-27592 | **urllib3** <1.26.15 | Zbunjenost sa obrnutim kosim crticama omogućila je `http://example.com\\@169.254.169.254/` da zaobiđe filtere hosta koji se dele na `@`. | +| 2022 | CVE-2022-3602 | OpenSSL | Verifikacija imena hosta je preskočena kada je ime završeno sa `.` (zbunjenost bez tačke). | + +Kada se oslanjate na analize URL-a trećih strana, **uporedite kanonizovani host koji vraća biblioteka kojoj verujete sa sirovim stringom koji je korisnik dostavio** kako biste otkrili ove klase problema. + +### Pomoćnici za generisanje payload-a (2024+) + +Kreiranje velikih prilagođenih lista reči ručno je zamorno. Open-source alat **SSRF-PayloadMaker** (Python 3) sada može automatski generisati *80 k+* kombinacija za izmenu hosta, uključujući mešane kodiranja, prisilno HTTP snižavanje i varijante sa obrnutim kosim crticama: +```bash +# Generate every known bypass that transforms the allowed host example.com to attacker.com +python3 ssrf_maker.py --allowed example.com --attacker attacker.com -A -o payloads.txt +``` +Rezultantna lista može se direktno uneti u Burp Intruder ili `ffuf`. + ## Reference - [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25) - [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md) - [https://portswigger.net/research/new-crazy-payloads-in-the-url-validation-bypass-cheat-sheet](https://portswigger.net/research/new-crazy-payloads-in-the-url-validation-bypass-cheat-sheet) +- [https://nvd.nist.gov/vuln/detail/CVE-2024-22243](https://nvd.nist.gov/vuln/detail/CVE-2024-22243) +- [https://github.com/hsynuzm/SSRF-PayloadMaker](https://github.com/hsynuzm/SSRF-PayloadMaker) {{#include ../../banners/hacktricks-training.md}}