12 KiB
Spesiale HTTP-koppe
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacking-truuks deur PR's in te dien by die HackTricks en HackTricks Cloud GitHub-opslagplekke.
Woordlyste & Gereedskap
- https://github.com/danielmiessler/SecLists/tree/master/Miscellaneous/web/http-request-headers
- https://github.com/rfc-st/humble
Koppe 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-koppe na)
Herskryf ligging:
X-Original-URL: /admin/console
X-Rewrite-URL: /admin/console
Hop-by-Hop-koppe
'n Hop-by-hop-kop is 'n kop wat ontwerp is om verwerk en verbruik te word deur die tans hanteerende proksi, in teenstelling met 'n end-to-end-kop.
Connection: close, X-Forwarded-For
{% content-ref url="../../pentesting-web/abusing-hop-by-hop-headers.md" %} abusing-hop-by-hop-headers.md {% endcontent-ref %}
HTTP-versoeksmokkelary
Content-Length: 30
Transfer-Encoding: chunked
{% content-ref url="../../pentesting-web/http-request-smuggling/" %} http-request-smuggling {% endcontent-ref %}
Kaskoppe
Bedienerkaskoppe:
X-Cache
in die respons kan die waardemiss
hê as die versoek nie gekasheer is nie en die waardehit
as dit gekasheer isCache-Control
dui aan of 'n bron gekasheer word en wanneer die bron weer gekasheer sal word:Cache-Control: public, max-age=1800
Vary
word dikwels in die respons gebruik om bykomende koppe aan te dui wat as deel van die kassleutel hanteer word, selfs al is hulle normaalweg nie gesleutel nie.Age
definieer die tyd in sekondes wat die voorwerp in die proksi-kas was.Server-Timing: cdn-cache; desc=HIT
dui ook aan dat 'n bron gekasheer is
{% content-ref url="../../pentesting-web/cache-deception.md" %} cache-deception.md {% endcontent-ref %}
Plaaslike kaskoppe:
Clear-Site-Data
: Kop om aan te dui watter kas verwyder moet word:Clear-Site-Data: "cache", "cookies"
Expires
: Bevat die datum/tyd wanneer die respons moet verval:Expires: Wed, 21 Oct 2015 07:28:00 GMT
Pragma: no-cache
dieselfde asCache-Control: no-cache
Warning
: DieWarning
algemene HTTP-kop bevat inligting oor moontlike probleme met die status van die boodskap. Meer as eenWarning
-kop kan in 'n respons voorkom.Warning: 110 anderson/1.3.37 "Response is stale"
Voorwaardelik
- Versoeke met hierdie koppe:
If-Modified-Since
enIf-Unmodified-Since
sal slegs met data reageer as die responskop**Last-Modified
** 'n ander tyd bevat. - Voorwaardelike versoeke met
If-Match
enIf-None-Match
gebruik 'n Etag-waarde sodat die webbediener die inhoud van die respons sal stuur as die data (Etag) verander het. DieEtag
word geneem uit die HTTP-respons. - Die Etag-waarde word gewoonlik bereken op grond van die inhoud van die respons. Byvoorbeeld,
ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"
dui aan dat dieEtag
die Sha1 van 37 byte is.
Reeksversoeke
Accept-Ranges
: Dui aan of die bediener reeksversoeke ondersteun, en indien wel, in watter eenheid die reeks 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 reeksversoek wat slegs vervul word as die gegewe etiket of datum ooreenstem met die afgelewerde bron. Word gebruik om te voorkom dat twee reekse vanaf 'n onverenigbare weergawe van die bron afgelaai word.Content-Range
: Dui aan waar in 'n volledige boodskap 'n gedeeltelike boodskap hoort.
Inligting oor boodskapliggaam
Content-Length
: Die grootte van die bron, in desimale getal van byte.Content-Type
: Dui die media-tipe van die bron aanContent-Encoding
: Word gebruik om die kompressie-algoritme aan te dui.Content-Language
: Beskryf die menslike taal(tale) bedoel vir die gehoor, sodat dit 'n gebruiker in staat stel om te onderskei volgens die gebruikers se eie voorkeurstaal.Content-Location
: Dui 'n alternatiewe ligging vir die teruggekeerde data aan.
Vanuit 'n pentest-oogpunt is hierdie inligting gewoonlik "nutteloos", maar as die bron 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
Bedienerinligting
Bediener: Apache/2.4.1 (Unix)
X-Powered-By: PHP/5.3.3
Beheer
Allow
: Hierdie kop is gebruik om die HTTP-metodes te kommunikeer wat 'n hulpbron kan hanteer. Byvoorbeeld, dit kan gespesifiseer word asAllow: GET, POST, HEAD
, wat aandui dat die hulpbron hierdie metodes ondersteun.Expect
: Dit word deur die kliënt gebruik om verwagtinge oor te dra wat die bediener moet nakom vir die versoek om suksesvol verwerk te word. 'n Algemene gebruikssituasie behels dieExpect: 100-continue
kop, wat aandui dat die kliënt van plan is om 'n groot data-pakket te stuur. Die kliënt soek na 'n100 (Continue)
-reaksie voordat hy met die oordrag voortgaan. Hierdie meganisme help om netwerkgebruik te optimaliseer deur op bevestiging van die bediener te wag.
Aflaai
- Die
Content-Disposition
-kop in HTTP-reaksies bepaal of 'n lêer inline (binne die webblad) vertoon moet word of as 'n bylaag (afgelaai) behandel moet word. Byvoorbeeld:
Content-Disposition: attachment; filename="filename.jpg"
Dit beteken die lêernaam "filename.jpg" is bedoel om afgelaai en gestoor te word.
Sekuriteitskoppe
Inhoud Sekuriteitsbeleid (CSP)
{% content-ref url="../../pentesting-web/content-security-policy-csp-bypass/" %} content-security-policy-csp-bypass {% endcontent-ref %}
Vertroue Tipes
Deur Vertroue Tipes af te dwing deur middel van CSP, kan programme beskerm word teen DOM XSS-aanvalle. Vertroue Tipes verseker dat slegs spesifiek ontwerpte voorwerpe, wat voldoen aan vasgestelde sekuriteitsbeleide, gebruik kan word in gevaarlike web API-oproepe, en sodoende 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, '<').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-Inhouds-Tipe-Keuses
Hierdie kop voorkom MIME-tipe sniffing, 'n praktyk wat kan lei tot XSS kwesbaarhede. Dit verseker dat webblaaier die MIME-tipes wat deur die bediener gespesifiseer is, respekteer.
X-Content-Type-Options: nosniff
X-Frame-Options
Om clickjacking te beveg, beperk hierdie kop die manier waarop dokumente ingebed kan word in <frame>
, <iframe>
, <embed>
, of <object>
etikette, en beveel aan dat alle dokumente hul ingebedde toestemmings eksplisiet spesifiseer.
X-Frame-Options: DENY
Cross-Origin Resource Policy (CORP) en Cross-Origin Resource Sharing (CORS)
CORP is krities vir die spesifisering van watter hulpbronne deur webwerwe gelaai kan word, om kruisweb-lekke te verminder. CORS, aan die ander kant, maak voorsiening vir 'n meer buigsame meganisme vir die deel van hulpbronne oor oorsprongsgrense heen, deur die selfde-oorsprong-beleid onder sekere voorwaardes te 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-soort 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 Streng Transport Sekuriteit (HSTS)
Laastens, HSTS is 'n sekuriteitskenmerk wat dwing dat webblaaier slegs met bedieners kommunikeer oor veilige HTTPS-verbindinge, wat privaatheid en sekuriteit verbeter.
Strict-Transport-Security: max-age=3153600
Verwysings
- 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
Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!
Ander maniere om HackTricks te ondersteun:
- As jy jou maatskappy geadverteer wil sien in HackTricks of HackTricks in PDF wil aflaai, kyk na die SUBSCRIPTION PLANS!
- Kry die amptelike PEASS & HackTricks swag
- Ontdek The PEASS Family, ons versameling eksklusiewe NFTs
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @carlospolopm.
- Deel jou hacking-truuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.