Translated ['src/pentesting-web/hacking-with-cookies/README.md'] to it

This commit is contained in:
Translator 2025-05-18 03:21:42 +00:00
parent 7990bc926f
commit 9e530418d1

View File

@ -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
```