Special HTTP headers

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Woordlyste & Gereedskap

Koptekste om Ligging te Verander

Herskryf IP bron:

  • 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 (Kyk hop-by-hop koptekste)

Herskryf ligging:

  • X-Original-URL: /admin/console

  • X-Rewrite-URL: /admin/console

Hop-by-Hop koptekste

'n hop-by-hop koptekst is 'n koptekst wat ontwerp is om verwerk en verbruik te word deur die proxy wat tans die versoek hanteer, in teenstelling met 'n eind-tot-eind koptekst.

  • Connection: close, X-Forwarded-For

hop-by-hop headers

HTTP Versoek Smuggling

  • Content-Length: 30

  • Transfer-Encoding: chunked

HTTP Request Smuggling / HTTP Desync Attack

Cache Koptekste

Bediener Cache Koptekste:

  • X-Cache in die antwoord mag die waarde miss hê wanneer die versoek nie in die cache was nie en die waarde hit wanneer dit in die cache is

  • Soortgelyke gedrag in die koptekst Cf-Cache-Status

  • Cache-Control dui aan of 'n hulpbron in die cache gehou word en wanneer die volgende keer die hulpbron weer in die cache gehou sal word: Cache-Control: public, max-age=1800

  • Vary word dikwels in die antwoord gebruik om addisionele koptekste aan te dui wat as deel van die cache sleutel behandel word, selfs al is hulle normaalweg nie gesleutel nie.

  • Age definieer die tyd in sekondes wat die objek in die proxy cache was.

  • Server-Timing: cdn-cache; desc=HIT dui ook aan dat 'n hulpbron in die cache gehou is

Cache Poisoning and Cache Deception

Plaaslike Cache koptekste:

  • Clear-Site-Data: Koptekst om aan te dui watter cache verwyder moet word: Clear-Site-Data: "cache", "cookies"

  • Expires: Bevat datum/tyd wanneer die antwoord moet verval: Expires: Wed, 21 Oct 2015 07:28:00 GMT

  • Pragma: no-cache dieselfde as Cache-Control: no-cache

  • Warning: Die Warning algemene HTTP koptekst bevat inligting oor moontlike probleme met die status van die boodskap. Meer as een Warning koptekst mag in 'n antwoord verskyn. Warning: 110 anderson/1.3.37 "Response is stale"

Voorwaardes

  • Versoeke wat hierdie koptekste gebruik: If-Modified-Since en If-Unmodified-Since sal met data geantwoord word slegs as die antwoord koptekst**Last-Modified** 'n ander tyd bevat.

  • Voorwaardelike versoeke wat If-Match en If-None-Match gebruik, gebruik 'n Etag waarde sodat die webbediener die inhoud van die antwoord sal stuur as die data (Etag) verander het. Die Etag word geneem uit die HTTP antwoord.

  • Die Etag waarde word gewoonlik bereken op grond van die inhoud van die antwoord. Byvoorbeeld, ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI" dui aan dat die Etag die Sha1 van 37 bytes is.

Bereik versoeke

  • Accept-Ranges: Dui aan of die bediener bereik versoeke ondersteun, en indien wel in watter eenheid die bereik uitgedruk kan word. Accept-Ranges: <range-unit>

  • Range: Dui die deel van 'n dokument aan wat die bediener moet terugstuur.

  • If-Range: Skep 'n voorwaardelike bereik versoek wat slegs vervul word as die gegewe etag of datum met die afstandlike hulpbron ooreenstem. Gebruik om te voorkom dat twee bereik van onverenigbare weergawes van die hulpbron afgelaai word.

  • Content-Range: Dui aan waar in 'n volle liggaamsboodskap 'n gedeeltelike boodskap behoort.

Boodskap liggaam inligting

  • Content-Length: Die grootte van die hulpbron, in desimale aantal bytes.

  • Content-Type: Dui die media tipe van die hulpbron aan

  • Content-Encoding: Gebruik om die kompressie algoritme aan te dui.

  • Content-Language: Beskryf die menslike taal/tale wat bedoel is vir die gehoor, sodat dit 'n gebruiker toelaat om te onderskei volgens die gebruiker se eie verkose taal.

  • Content-Location: Dui 'n alternatiewe ligging aan vir die teruggestuurde data.

Van 'n pentest oogpunt is hierdie inligting gewoonlik "nutteloos", maar as die hulpbron beskerm word deur 'n 401 of 403 en jy kan 'n manier vind om hierdie inligting te kry, kan dit interessant wees. Byvoorbeeld, 'n kombinasie van Range en Etag in 'n HEAD versoek kan die inhoud van die bladsy via HEAD versoeke lek:

  • 'n versoek met die koptekst Range: bytes=20-20 en met 'n antwoord wat ETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y" bevat, lek dat die SHA1 van die byte 20 ETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y is

Bediener Inligting

  • Server: Apache/2.4.1 (Unix)

  • X-Powered-By: PHP/5.3.3

Beheer

  • Allow: Hierdie koptekst word gebruik om die HTTP metodes te kommunikeer wat 'n hulpbron kan hanteer. Byvoorbeeld, dit mag gespesifiseer word as Allow: GET, POST, HEAD, wat aandui dat die hulpbron hierdie metodes ondersteun.

  • Expect: Gebruik deur die kliënt om verwagtinge oor te dra wat die bediener moet nakom vir die versoek om suksesvol verwerk te word. 'n Algemene gebruiksgeval behels die Expect: 100-continue koptekst, wat dui dat die kliënt van plan is om 'n groot data payload te stuur. Die kliënt soek 'n 100 (Continue) antwoord voordat hy met die oordrag voortgaan. Hierdie mekanisme help om netwerkgebruik te optimaliseer deur op bedienerbevestiging te wag.

Aflaaie

  • Die Content-Disposition koptekst in HTTP antwoorde dui aan of 'n lêer inline (binne die webblad) vertoon moet word of as 'n aanhegting (afgelaai) behandel moet word. Byvoorbeeld:

Content-Disposition: attachment; filename="filename.jpg"

Dit beteken die lêer met die naam "filename.jpg" is bedoel om afgelaai en gestoor te word.

Sekuriteitskoppe

Inhoud Sekuriteitsbeleid (CSP)

Content Security Policy (CSP) Bypass

Vertroude Tipes

Deur Vertroude Tipes deur CSP af te dwing, kan toepassings teen DOM XSS-aanvalle beskerm word. Vertroude Tipes verseker dat slegs spesifiek saamgestelde voorwerpe, wat voldoen aan gevestigde sekuriteitsbeleide, in gevaarlike web API-oproepe gebruik kan word, wat JavaScript-kode standaard beveilig.

// 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

Hierdie kop voorkom MIME-tipe sniffing, 'n praktyk wat kan lei tot XSS kwesbaarhede. Dit verseker dat blaaiers die MIME-tipes wat deur die bediener gespesifiseer is, respekteer.

X-Content-Type-Options: nosniff

X-Frame-Options

Om clickjacking te bekamp, beperk hierdie kop wat dokumente in <frame>, <iframe>, <embed>, of <object> etikette kan ingebed word, en beveel aan dat alle dokumente hul inbedingsregte eksplisiet spesifiseer.

X-Frame-Options: DENY

Cross-Origin Resource Policy (CORP) en Cross-Origin Resource Sharing (CORS)

CORP is belangrik om te spesifiseer watter hulpbronne deur webwerwe gelaai kan word, wat kruis-web lekkasies verminder. CORS, aan die ander kant, stel 'n meer buigsame kruis-oorsprong hulpbron deelmekanisem in, wat die self-oorsprong beleid onder sekere omstandighede verslap.

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

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

COEP en COOP is noodsaaklik vir die aktivering van kruis-oorsprong isolasie, wat die risiko van Spectre-agtige aanvalle aansienlik verminder. Hulle beheer die laai van kruis-oorsprong hulpbronne en die interaksie met kruis-oorsprong vensters, onderskeidelik.

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

HTTP Strict Transport Security (HSTS)

Laastens is HSTS 'n sekuriteitskenmerk wat blaaiers dwing om slegs oor veilige HTTPS-verbindinge met bedieners te kommunikeer, wat privaatheid en sekuriteit verbeter.

Strict-Transport-Security: max-age=3153600

Verwysings

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

Last updated