From 9e530418d1b474ff7ed710be4795e6736eb8e326 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 18 May 2025 03:21:42 +0000 Subject: [PATCH] Translated ['src/pentesting-web/hacking-with-cookies/README.md'] to it --- .../hacking-with-cookies/README.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/pentesting-web/hacking-with-cookies/README.md b/src/pentesting-web/hacking-with-cookies/README.md index 141303079..2ac909c86 100644 --- a/src/pentesting-web/hacking-with-cookies/README.md +++ b/src/pentesting-web/hacking-with-cookies/README.md @@ -12,7 +12,7 @@ La data di scadenza di un cookie è determinata dall'attributo `Expires`. Al con ### Domain -Gli host che ricevono un cookie sono specificati dall'attributo `Domain`. Per impostazione predefinita, questo è impostato sull'host che ha emesso il cookie, senza includere i suoi sottodomini. Tuttavia, quando l'attributo `Domain` è esplicitamente impostato, comprende anche i sottodomini. Questo rende la specifica dell'attributo `Domain` un'opzione meno restrittiva, utile per scenari in cui è necessario condividere cookie tra sottodomini. Ad esempio, impostare `Domain=mozilla.org` rende i cookie accessibili sui suoi sottodomini come `developer.mozilla.org`. +Gli host che ricevono un cookie sono specificati dall'attributo `Domain`. Per impostazione predefinita, questo è impostato sull'host che ha emesso il cookie, escludendo i suoi sottodomini. Tuttavia, quando l'attributo `Domain` è esplicitamente impostato, comprende anche i sottodomini. Questo rende la specifica dell'attributo `Domain` un'opzione meno restrittiva, utile per scenari in cui è necessario condividere i cookie tra sottodomini. Ad esempio, impostare `Domain=mozilla.org` rende i cookie accessibili sui suoi sottodomini come `developer.mozilla.org`. ### Path @@ -141,7 +141,7 @@ Questo attacco costringe un utente autenticato a eseguire azioni indesiderate su ### Empty Cookies -(Controlla ulteriori dettagli nella [ricerca originale](https://blog.ankursundara.com/cookie-bugs/)) I browser consentono la creazione di cookie senza nome, il che può essere dimostrato tramite JavaScript come segue: +(Controlla ulteriori dettagli nella [ricerca originale](https://blog.ankursundara.com/cookie-bugs/)) I browser consentono la creazione di cookie senza un nome, il che può essere dimostrato tramite JavaScript come segue: ```js document.cookie = "a=v1" document.cookie = "=test value;" // Setting an empty named cookie @@ -204,26 +204,26 @@ document.cookie = `param1="start`; // any cookies inside the sandwich will be placed into param1 value server-side document.cookie = `param2=end";`; ``` -### Bypass dei WAF +### WAF bypasses #### Cookies $version Controlla la sezione precedente. -#### Analisi del valore di bypass con codifica di stringa quotata +#### Bypassing value analysis with quoted-string encoding -Questo parsing indica di disattivare i valori scappati all'interno dei cookie, quindi "\a" diventa "a". Questo può essere utile per bypassare i WAF come: +Questo parsing indica di disattivare l'escape dei valori all'interno dei cookie, quindi "\a" diventa "a". Questo può essere utile per bypassare i WAF come: -- `eval('test') => vietato` -- `"\e\v\a\l\(\'\t\e\s\t\'\)" => consentito` +- `eval('test') => forbidden` +- `"\e\v\a\l\(\'\t\e\s\t\'\)" => allowed` -#### Bypass delle blacklist dei nomi dei cookie +#### Bypassing cookie-name blocklists -Nell'RFC2109 è indicato che una **virgola può essere usata come separatore tra i valori dei cookie**. Ed è anche possibile aggiungere **spazi e tabulazioni prima e dopo il segno di uguale**. Pertanto, un cookie come `$Version=1; foo=bar, abc = qux` non genera il cookie `"foo":"bar, admin = qux"` ma i cookie `foo":"bar"` e `"admin":"qux"`. Nota come vengono generati 2 cookie e come "admin" ha rimosso lo spazio prima e dopo il segno di uguale. +Nell'RFC2109 è indicato che una **virgola può essere usata come separatore tra i valori dei cookie**. Ed è anche possibile aggiungere **spazi e tabulazioni prima e dopo il segno di uguale**. Pertanto, un cookie come `$Version=1; foo=bar, abc = qux` non genera il cookie `"foo":"bar, admin = qux"` ma i cookie `foo":"bar"` e `"admin":"qux"`. Nota come vengono generati 2 cookie e come l'admin ha rimosso lo spazio prima e dopo il segno di uguale. -#### Bypass dell'analisi del valore con la suddivisione dei cookie +#### Bypassing value analysis with cookie splitting -Infine, diverse backdoor si unirebbero in una stringa diversi cookie passati in intestazioni di cookie diverse come in: +Infine, diverse backdoor si unirebbero in una stringa diversi cookie passati in intestazioni di cookie differenti come in: ``` GET / HTTP/1.1 Host: example.com @@ -241,7 +241,7 @@ Resulting cookie: name=eval('test//, comment') => allowed #### **Controlli di base** -- Il **cookie** è **sempre** lo **stesso** ogni volta che ti **accedi**. +- Il **cookie** è lo **stesso** ogni volta che ti **accedi**. - Disconnettiti e prova a usare lo stesso cookie. - Prova ad accedere con 2 dispositivi (o browser) allo stesso account usando lo stesso cookie. - Controlla se il cookie contiene informazioni e prova a modificarlo. @@ -269,9 +269,9 @@ padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28E ``` Padbuster farà diversi tentativi e ti chiederà quale condizione è la condizione di errore (quella che non è valida). -Poi inizierà a decrittografare il cookie (potrebbe richiedere diversi minuti). +Poi inizierà a decrittografare il cookie (potrebbe richiedere diversi minuti) -Se l'attacco è stato eseguito con successo, allora potresti provare a crittografare una stringa a tua scelta. Ad esempio, se desideri **encrypt** **user=administrator**. +Se l'attacco è stato eseguito con successo, allora potresti provare a crittografare una stringa a tua scelta. Ad esempio, se desideri **encrypt** **user=administrator** ``` padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator ```