mirror of
https://github.com/carlospolop/hacktricks
synced 2025-02-17 06:28:27 +00:00
Translated ['pentesting-web/hacking-with-cookies/cookie-tossing.md'] to
This commit is contained in:
parent
28b7fcb074
commit
a7233c89f2
1 changed files with 14 additions and 14 deletions
|
@ -26,39 +26,39 @@ Dlatego **atakujący będzie mógł ustawić dla domeny i subdomen określone co
|
|||
|
||||
Może to być niebezpieczne, ponieważ atakujący może:
|
||||
|
||||
* **Zafiksować cookie ofiary na konto atakującego**, więc jeśli użytkownik tego nie zauważy, **wykona czynności na koncie atakującego**, a atakujący może uzyskać pewne interesujące informacje (sprawdź historię wyszukiwań użytkownika na platformie, ofiara może wprowadzić swój numer karty kredytowej do konta...)
|
||||
* **Zafiksować cookie ofiary na konto atakującego**, więc jeśli użytkownik tego nie zauważy, **wykona czynności na koncie atakującego**, a atakujący może uzyskać pewne interesujące informacje (sprawdź historię wyszukiwań użytkownika na platformie, ofiara może podać swój numer karty kredytowej w koncie...)
|
||||
* Jeśli **cookie nie zmienia się po zalogowaniu**, atakujący może po prostu **zafiksować cookie (session-fixation)**, poczekać aż ofiara się zaloguje, a następnie **użyć tego cookie do zalogowania się jako ofiara**.
|
||||
* Czasami, nawet jeśli ciasteczko sesji się zmienia, atakujący może użyć poprzedniego i otrzyma również nowe.
|
||||
* Jeśli **cookie ustawia jakąś początkową wartość** (jak w przypadku flask, gdzie **cookie** może **ustawić** token **CSRF** sesji, a ta wartość będzie utrzymywana po zalogowaniu ofiary), **atakujący może ustawić tę znaną wartość, a następnie z niej skorzystać** (w tym scenariuszu atakujący może sprawić, że użytkownik wyśle żądanie CSRF, ponieważ zna token CSRF).
|
||||
* Czasami, nawet jeśli cookie sesji się zmienia, atakujący może użyć poprzedniego i otrzyma również nowy.
|
||||
* Jeśli **cookie ustawia jakąś początkową wartość** (jak w przypadku flask, gdzie **cookie** może **ustawić** token **CSRF** sesji, a ta wartość będzie utrzymywana po zalogowaniu ofiary), **atakujący może ustawić tę znaną wartość, a następnie z niej skorzystać** (w takim scenariuszu atakujący może sprawić, że użytkownik wyśle żądanie CSRF, ponieważ zna token CSRF).
|
||||
* Podobnie jak ustawianie wartości, atakujący mógłby również uzyskać nieuwierzytelnione cookie wygenerowane przez serwer, pobrać z niego token CSRF i go użyć.
|
||||
|
||||
### Kolejność Cookie
|
||||
|
||||
Gdy przeglądarka otrzymuje dwa ciasteczka o tej samej nazwie **częściowo wpływające na ten sam zakres** (domena, subdomeny i ścieżka), **przeglądarka wyśle obie wartości ciasteczka**, gdy obie są ważne dla żądania.
|
||||
Gdy przeglądarka otrzymuje dwa pliki cookie o tej samej nazwie **częściowo wpływające na ten sam zakres** (domena, subdomeny i ścieżka), **przeglądarka wyśle obie wartości cookie**, gdy obie są ważne dla żądania.
|
||||
|
||||
W zależności od tego, kto ma **najbardziej specyficzną ścieżkę** lub który jest **starszy**, przeglądarka **ustawi najpierw wartość ciasteczka**, a następnie wartość drugiego, jak w: `Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;`
|
||||
W zależności od tego, kto ma **najbardziej specyficzną ścieżkę** lub który jest **starszy**, przeglądarka **ustawi najpierw wartość cookie**, a następnie wartość drugiego, jak w: `Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;`
|
||||
|
||||
Większość **stron internetowych użyje tylko pierwszej wartości**. Dlatego jeśli atakujący chce ustawić ciasteczko, lepiej je ustawić przed ustawieniem innego lub ustawić je z bardziej specyficzną ścieżką.
|
||||
Większość **stron internetowych użyje tylko pierwszej wartości**. Dlatego, jeśli atakujący chce ustawić cookie, lepiej je ustawić przed ustawieniem innego lub ustawić je z bardziej specyficzną ścieżką.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Co więcej, możliwość **ustawienia ciasteczka w bardziej specyficznej ścieżce** jest bardzo interesująca, ponieważ pozwala **ofiary pracować z jej ciasteczkiem z wyjątkiem określonej ścieżki, gdzie ustawione zostanie złośliwe ciasteczko**.
|
||||
Co więcej, możliwość **ustawienia cookie w bardziej specyficznej ścieżce** jest bardzo interesująca, ponieważ pozwala to **ofiary pracować z jej cookie, z wyjątkiem konkretnej ścieżki, gdzie ustawione zostanie złośliwe cookie**.
|
||||
{% endhint %}
|
||||
|
||||
### Ominięcie Ochrony
|
||||
|
||||
Możliwą ochroną przed tym atakiem byłoby to, że **serwer sieciowy nie akceptuje żądań z dwoma ciasteczkami o tej samej nazwie, ale dwiema różnymi wartościami**.
|
||||
Możliwą ochroną przed tym atakiem byłoby to, że **serwer sieciowy nie akceptuje żądań z dwoma plikami cookie o tej samej nazwie, ale dwiema różnymi wartościami**.
|
||||
|
||||
Aby ominąć scenariusz, w którym atakujący ustawia ciasteczko po tym, jak ofiara już je otrzymała, atakujący mógłby spowodować **przepełnienie ciasteczek** i następnie, gdy **legitymacyjne ciasteczko zostanie usunięte, ustawić złośliwe**.
|
||||
Aby ominąć scenariusz, w którym atakujący ustawia cookie po tym, jak ofiara już otrzymała cookie, atakujący mógłby spowodować **przepełnienie pliku cookie**, a następnie, gdy **legitymacyjne cookie zostanie usunięte, ustawić złośliwe**.
|
||||
|
||||
{% content-ref url="cookie-jar-overflow.md" %}
|
||||
[cookie-jar-overflow.md](cookie-jar-overflow.md)
|
||||
{% endcontent-ref %}
|
||||
|
||||
Innym przydatnym **sposobem ominięcia** mogłoby być **kodowanie URL nazwy ciasteczka**, ponieważ niektóre zabezpieczenia sprawdzają, czy w żądaniu są 2 ciasteczka o tej samej nazwie, a następnie serwer zdekoduje nazwy ciasteczek.
|
||||
Innym przydatnym **sposobem ominięcia** mogłoby być **kodowanie URL nazwy pliku cookie**, ponieważ niektóre zabezpieczenia sprawdzają, czy w żądaniu są 2 pliki cookie o tej samej nazwie, a następnie serwer zdekoduje nazwy plików cookie.
|
||||
|
||||
### Bomba Cookie
|
||||
|
||||
Atak Cookie Tossing może być również wykorzystany do przeprowadzenia ataku **Cookie Bomb**:
|
||||
Atak Cookie Tossing może również być wykorzystany do przeprowadzenia ataku **Cookie Bomb**:
|
||||
|
||||
{% content-ref url="cookie-bomb.md" %}
|
||||
[cookie-bomb.md](cookie-bomb.md)
|
||||
|
@ -66,10 +66,10 @@ Atak Cookie Tossing może być również wykorzystany do przeprowadzenia ataku *
|
|||
|
||||
### Obrona
|
||||
|
||||
#### **Użyj prefiksu `__Host` w nazwie ciasteczka**
|
||||
#### **Użyj prefiksu `__Host` w nazwie pliku cookie**
|
||||
|
||||
* Jeśli nazwa ciasteczka ma ten prefiks, **będzie akceptowana tylko** w dyrektywie Set-Cookie, jeśli jest oznaczona jako Secure, została wysłana z bezpiecznego źródła, nie zawiera atrybutu Domain i ma ustawiony atrybut Path na /
|
||||
* **Zapobiega to subdomenom narzucania ciasteczka na domenę nadrzędną, ponieważ te ciasteczka mogą być postrzegane jako "zablokowane dla domeny"**
|
||||
* Jeśli nazwa pliku cookie ma ten prefiks, **będzie akceptowana tylko** w dyrektywie Set-Cookie, jeśli jest oznaczona jako Secure, została wysłana z bezpiecznego źródła, nie zawiera atrybutu Domain i ma ustawiony atrybut Path na /
|
||||
* **Zapobiega to subdomenom wymuszającym cookie na domenę apex, ponieważ te pliki cookie mogą być postrzegane jako "zablokowane dla domeny"**
|
||||
|
||||
### Referencje
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue