mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/hacking-with-cookies/README.md'] to it
This commit is contained in:
parent
7990bc926f
commit
9e530418d1
@ -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
|
||||
```
|
||||
|
Loading…
x
Reference in New Issue
Block a user