hacktricks/network-services-pentesting/pentesting-web/special-http-headers.md

12 KiB

Vichwa Maalum vya HTTP

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Orodha za Maneno & Zana

Vichwa vya Kubadilisha Mahali

Badilisha IP chanzo:

  • X-Originating-IP: 127.0.0.1
  • X-Forwarded-For: 127.0.0.1
  • X-Forwarded: 127.0.0.1
  • Forwarded-For: 127.0.0.1
  • X-Forwarded-Host: 127.0.0.1
  • X-Remote-IP: 127.0.0.1
  • X-Remote-Addr: 127.0.0.1
  • X-ProxyUser-Ip: 127.0.0.1
  • X-Original-URL: 127.0.0.1
  • Client-IP: 127.0.0.1
  • X-Client-IP: 127.0.0.1
  • X-Host: 127.0.0.1
  • True-Client-IP: 127.0.0.1
  • Cluster-Client-IP: 127.0.0.1
  • Via: 1.0 fred, 1.1 127.0.0.1
  • Connection: close, X-Forwarded-For (Angalia vichwa vya hatua kwa hatua)

Badilisha mahali:

  • X-Original-URL: /admin/console
  • X-Rewrite-URL: /admin/console

Vichwa vya Hatua kwa Hatua

Kichwa cha hatua kwa hatua ni kichwa ambacho kimeundwa kusindika na kutumiwa na wakala anayeshughulikia ombi wakati huo, tofauti na kichwa cha mwisho hadi mwisho.

  • Connection: close, X-Forwarded-For

{% content-ref url="../../pentesting-web/abusing-hop-by-hop-headers.md" %} abusing-hop-by-hop-headers.md {% endcontent-ref %}

Kudukua Ombi la HTTP

  • Content-Length: 30
  • Transfer-Encoding: chunked

{% content-ref url="../../pentesting-web/http-request-smuggling/" %} http-request-smuggling {% endcontent-ref %}

Vichwa vya Kuhifadhi

Vichwa vya Kuhifadhi kwenye Seva:

  • X-Cache kwenye jibu inaweza kuwa na thamani miss wakati ombi halikuhifadhiwa na thamani hit wakati inahifadhiwa
  • Tabia sawa kwenye kichwa Cf-Cache-Status
  • Cache-Control inaonyesha ikiwa rasilimali inahifadhiwa na lini itahifadhiwa tena: Cache-Control: public, max-age=1800
  • Vary mara nyingi hutumiwa kwenye jibu kuonyesha vichwa vingine vinavyotibiwa kama sehemu ya ufunguo wa hifadhi hata kama kawaida hawana ufunguo.
  • Age inaainisha wakati katika sekunde ambazo kitu kimekuwa kwenye hifadhi ya wakala.
  • Server-Timing: cdn-cache; desc=HIT pia inaonyesha kwamba rasilimali ilihifadhiwa

{% content-ref url="../../pentesting-web/cache-deception/" %} cache-deception {% endcontent-ref %}

Vichwa vya Hifadhi za Kienyeji:

  • Clear-Site-Data: Kichwa cha kuonyesha hifadhi inayopaswa kuondolewa: Clear-Site-Data: "cache", "cookies"
  • Expires: Ina tarehe/saa ambayo jibu linapaswa kumalizika: Expires: Wed, 21 Oct 2015 07:28:00 GMT
  • Pragma: no-cache sawa na Cache-Control: no-cache
  • Warning: Kichwa cha Warning cha jumla cha HTTP kina habari kuhusu matatizo yanayowezekana na hali ya ujumbe. Zaidi ya kichwa kimoja cha Warning kinaweza kuonekana kwenye jibu. Warning: 110 anderson/1.3.37 "Response is stale"

Masharti

  • Maombi yanayotumia vichwa hivi: If-Modified-Since na If-Unmodified-Since yatajibiwa na data tu ikiwa kichwa cha jibu**Last-Modified** kina wakati tofauti.
  • Maombi ya masharti kwa kutumia If-Match na If-None-Match hutumia thamani ya Etag ili seva ya wavuti itume maudhui ya jibu ikiwa data (Etag) imebadilika. Etag inachukuliwa kutoka kwa jibu la HTTP.
  • Thamani ya Etag kawaida huhesabiwa kulingana na maudhui ya jibu. Kwa mfano, ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI" inaonyesha kuwa Etag ni Sha1 ya baiti 37.

Maombi ya Mipaka

  • Accept-Ranges: Inaonyesha ikiwa seva inasaidia maombi ya mipaka, na ikiwa ndivyo, kwa kipimo gani mipaka inaweza kutolewa. Accept-Ranges: <range-unit>
  • Range: Inaonyesha sehemu ya hati ambayo seva inapaswa kurudisha.
  • If-Range: Inaunda ombi la mipaka la masharti ambalo litatimizwa tu ikiwa etag au tarehe iliyotolewa inalingana na rasilimali ya mbali. Hutumiwa kuzuia kupakua mipaka miwili kutoka kwa toleo lisilofanana la rasilimali.
  • Content-Range: Inaonyesha wapi katika ujumbe kamili wa mwili sehemu ndogo ya ujumbe inahusika.

Taarifa ya Mwili wa Ujumbe

  • Content-Length: Ukubwa wa rasilimali, kwa idadi ya desimali ya baiti.
  • Content-Type: Inaonyesha aina ya media ya rasilimali
  • Content-Encoding: Hutumiwa kueleza algorithm ya ujazo.
  • Content-Language: Inaelezea lugha za binadamu zilizokusudiwa kwa hadhira, ili kuruhusu mtumiaji kutofautisha kulingana na lugha wanayopendelea.
  • Content-Location: Inaonyesha mahali mbadala kwa data iliyorudishwa.

Kutoka mtazamo wa pentest habari hii kawaida ni "haina maana", lakini ikiwa rasilimali inalindwa na 401 au 403 na unaweza kupata njia fulani ya kupata habari hii, hii inaweza kuwa ya kuvutia.
Kwa mfano, mchanganyiko wa Range na Etag katika ombi la HEAD inaweza kufichua maudhui ya ukurasa kupitia maombi ya HEAD:

  • Ombi lenye kichwa Range: bytes=20-20 na jibu lenye ETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y" linafichua kuwa SHA1 ya baiti 20 ni ETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y

Taarifa za Seva

  • Server: Apache/2.4.1 (Unix)
  • X-Powered-By: PHP/5.3.3

Udhibiti

  • Allow: Kichwa hiki hutumika kuwasiliana njia za HTTP ambazo rasilimali inaweza kushughulikia. Kwa mfano, inaweza kutajwa kama Allow: GET, POST, HEAD, ikionyesha kuwa rasilimali inasaidia njia hizi.
  • Expect: Hutumiwa na mteja kuwasilisha matarajio ambayo seva inahitaji kukidhi ili ombi litendewe kwa mafanikio. Matumizi ya kawaida ni pamoja na kichwa cha Expect: 100-continue, ambacho kinaashiria kuwa mteja anapanga kutuma mzigo mkubwa wa data. Mteja hutarajia jibu la 100 (Endelea) kabla ya kuendelea na uhamishaji. Mbinu hii husaidia katika kuboresha matumizi ya mtandao kwa kusubiri uthibitisho wa seva.

Upakuaji

  • Kichwa cha Content-Disposition katika majibu ya HTTP hutoa maelekezo ikiwa faili inapaswa kuonyeshwa inline (ndani ya ukurasa wa wavuti) au kutendewa kama attachment (kupakuliwa). Kwa mfano:
Content-Disposition: attachment; filename="filename.jpg"

Vichwa vya Usalama

Sera ya Usalama wa Yaliyomo (CSP)

{% content-ref url="../../pentesting-web/content-security-policy-csp-bypass/" %} content-security-policy-csp-bypass {% endcontent-ref %}

Aina Zilizothibitishwa

Kwa kutekeleza Aina Zilizothibitishwa kupitia CSP, programu zinaweza kulindwa dhidi ya mashambulizi ya DOM XSS. Aina Zilizothibitishwa hufanya uhakika kwamba vitu vilivyoundwa kwa makusudi maalum, vinavyofuata sera za usalama zilizowekwa, ndivyo vinavyoweza kutumika katika wito hatari wa API za wavuti, hivyo kuhakikisha msimbo wa JavaScript kwa chaguo-msingi.

// Feature detection
if (window.trustedTypes && trustedTypes.createPolicy) {
// Name and create a policy
const policy = trustedTypes.createPolicy('escapePolicy', {
createHTML: str => str.replace(/\</g, '&lt;').replace(/>/g, '&gt;');
});
}
// Assignment of raw strings is blocked, ensuring safety.
el.innerHTML = 'some string'; // Throws an exception.
const escaped = policy.createHTML('<img src=x onerror=alert(1)>');
el.innerHTML = escaped;  // Results in safe assignment.

X-Content-Type-Options

Kichwa hiki kinazuia uchunguzi wa aina ya MIME, mazoezi ambayo yanaweza kusababisha udhaifu wa XSS. Inahakikisha kuwa vivinjari vinaheshimu aina za MIME zilizotajwa na seva.

X-Content-Type-Options: nosniff

X-Frame-Options

Ili kupambana na clickjacking, kichwa hiki kinazuia jinsi nyaraka zinavyoweza kuingizwa katika lebo za <frame>, <iframe>, <embed>, au <object>, ikipendekeza nyaraka zote kufafanua wazi ruhusa zao za kuingizwa.

X-Frame-Options: DENY

Sera ya Malipo ya Rasilimali ya Msingi (CORP) na Kugawana Rasilimali ya Msingi ya Msingi (CORS)

CORP ni muhimu kwa kueleza ni rasilimali zipi zinaweza kupakiawa na tovuti, kupunguza uvujaji wa msingi wa tovuti. CORS, kwa upande mwingine, inaruhusu mfumo wa kugawana rasilimali ya msingi ya msingi zaidi, ikirekebisha sera ya asili sawa chini ya hali fulani.

Cross-Origin-Resource-Policy: same-origin
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true

Cross-Origin Embedder Policy (COEP) na Cross-Origin Opener Policy (COOP)

COEP na COOP ni muhimu kwa kuwezesha kufungua kwa msingi wa asili, kupunguza hatari ya mashambulizi kama ya Spectre. Wanadhibiti upakiaji wa rasilimali za asili tofauti na mwingiliano na madirisha ya asili tofauti, mtawalia.

Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin-allow-popups

HTTP Strict Transport Security (HSTS)

Mwishowe, HSTS ni kipengele cha usalama ambacho hulazimisha vivinjari kuwasiliana na seva tu kupitia muunganisho salama wa HTTPS, hivyo kuimarisha faragha na usalama.

Strict-Transport-Security: max-age=3153600

Marejeo

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks: