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 bidhaa rasmi za 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 repos za github.
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
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 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 tu ikiwa kichwa cha jibu**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 jibu la HTTP. - Thamani ya Etag kawaida huhesabiwa kulingana na maudhui ya jibu. 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 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 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 HEAD inaweza kufichua maudhui ya ukurasa kupitia maombi ya HEAD:
- Ombi lenye kichwa
Range: bytes=20-20
na jibu lenyeETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y"
linafichua kuwa SHA1 ya baiti 20 niETag: 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 kamaAllow: 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 chaExpect: 100-continue
, ambacho kinaashiria kuwa 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 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, '<').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, 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
- 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.