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:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA USAJILI!
- Pata swag rasmi ya PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa kipekee wa NFTs
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud github repos.
Orodha za Maneno & Zana
- https://github.com/danielmiessler/SecLists/tree/master/Miscellaneous/web/http-request-headers
- https://github.com/rfc-st/humble
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 thamanimiss
wakati ombi halikuhifadhiwa na thamanihit
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
inaamua 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.md" %} cache-deception.md {% 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 naCache-Control: no-cache
Warning
: Kichwa chaWarning
cha jumla cha HTTP kina habari kuhusu matatizo yanayowezekana na hali ya ujumbe. Zaidi ya kichwa kimoja chaWarning
kinaweza kuonekana kwenye jibu.Warning: 110 anderson/1.3.37 "Response is stale"
Masharti
- Maombi yanayotumia vichwa hivi:
If-Modified-Since
naIf-Unmodified-Since
yatajibiwa na data ikiwa tu kichwa cha majibu**Last-Modified
** kina wakati tofauti. - Maombi ya masharti kwa kutumia
If-Match
naIf-None-Match
hutumia thamani ya Etag ili seva ya wavuti itume maudhui ya jibu ikiwa data (Etag) imebadilika.Etag
inachukuliwa kutoka kwa majibu ya HTTP. - Thamani ya Etag kawaida huhesabiwa kulingana na maudhui ya majibu. Kwa mfano,
ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"
inaonyesha kuwaEtag
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 lisilofaa 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 rasilimaliContent-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 KICHWA linaweza kufichua maudhui ya ukurasa kupitia maombi ya KICHWA:
- Ombi lenye kichwa
Range: bytes=20-20
na majibu yanayoonyeshaETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y"
inafichua kuwa SHA1 ya baiti 20 niETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y
Taarifa ya 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 kamaAllow: GET, POST, HEAD
, ikionyesha kwamba rasilimali inasaidia njia hizi.Expect
: Hutumiwa na mteja kuwasilisha matarajio ambayo seva inahitaji kukidhi ili ombi litendewe kazi kwa mafanikio. Matumizi ya kawaida ni pamoja na kichwa chaExpect: 100-continue
, ambacho kinaashiria kwamba mteja anapanga kutuma mzigo mkubwa wa data. Mteja hutarajia jibu la100 (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 hufanya iweze kuelekeza 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 makini, 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, '<').replace(/>/g, '>');
});
}
// 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, mazoea 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 kueleza wazi ruhusa zao za kuingizwa.
X-Frame-Options: DENY
Sera ya Malipo ya Mwanzo wa Mzazi (CORP) na Kugawana Rasilmali kwa Mzazi wa Mwanzo (CORS)
CORP ni muhimu kwa kufafanua ni rasilmali zipi zinaweza kupakia na tovuti, kupunguza uvujaji wa tovuti za msalaba. CORS, kwa upande mwingine, inaruhusu mfumo wa kugawana rasilmali wa msalaba wenye mtego zaidi, ukiruhusu sera ile ile ya asili chini ya hali fulani.
Cross-Origin-Resource-Policy: same-origin
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
Sera ya Kuingiza ya Asili ya Msingi (COEP) na Sera ya Mfunguaji ya Asili ya Msingi (COOP)
COEP na COOP ni muhimu kwa kuwezesha kufungamanisha asili ya msingi, kupunguza hatari ya mashambulizi kama ya Spectre. Wanadhibiti upakiaji wa rasilimali za asili ya msingi na mwingiliano na madirisha ya asili ya msingi, 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
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Disposition
- https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
- https://web.dev/security-headers/
- https://web.dev/articles/security-headers
Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!
Njia nyingine za kusaidia HackTricks:
- Ikiwa unataka kuona kampuni yako ikitangazwa kwenye HackTricks au kupakua HackTricks kwa PDF Angalia MIPANGO YA USAJILI!
- Pata bidhaa rasmi za PEASS & HackTricks
- Gundua Familia ya PEASS, mkusanyiko wetu wa NFTs ya kipekee
- Jiunge na 💬 Kikundi cha Discord au kikundi cha telegram au tufuate kwenye Twitter 🐦 @carlospolopm.
- Shiriki mbinu zako za udukuzi kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.