Special HTTP headers
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Liste reči i alati
Zaglavlja za promenu lokacije
Prepisivanje IP izvora:
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
(Proverite hop-by-hop zaglavlja)
Prepisivanje lokacije:
X-Original-URL: /admin/console
X-Rewrite-URL: /admin/console
Hop-by-Hop zaglavlja
Hop-by-hop zaglavlje je zaglavlje koje je dizajnirano da bude obrađeno i konzumirano od strane proksija koji trenutno obrađuje zahtev, za razliku od zaglavlja end-to-end.
Connection: close, X-Forwarded-For
HTTP Request Smuggling
Content-Length: 30
Transfer-Encoding: chunked
Cache zaglavlja
Zaglavlja server keša:
X-Cache
u odgovoru može imati vrednostmiss
kada zahtev nije keširan i vrednosthit
kada je keširanSlično ponašanje u zaglavlju
Cf-Cache-Status
Cache-Control
označava da li se resurs kešira i kada će biti sledeći put keširan:Cache-Control: public, max-age=1800
Vary
se često koristi u odgovoru da označi dodatna zaglavlja koja se tretiraju kao deo keš ključa čak i ako su obično neključevi.Age
definiše vreme u sekundama koliko je objekat bio u proksi kešu.Server-Timing: cdn-cache; desc=HIT
takođe označava da je resurs keširan
Lokalna keš zaglavlja:
Clear-Site-Data
: Zaglavlje koje označava keš koji treba ukloniti:Clear-Site-Data: "cache", "cookies"
Expires
: Sadrži datum/vreme kada odgovor treba da istekne:Expires: Wed, 21 Oct 2015 07:28:00 GMT
Pragma: no-cache
isto kaoCache-Control: no-cache
Warning
:Warning
opšte HTTP zaglavlje sadrži informacije o mogućim problemima sa statusom poruke. Može se pojaviti više od jednogWarning
zaglavlja u odgovoru.Warning: 110 anderson/1.3.37 "Response is stale"
Uslovi
Zahtevi koji koriste ova zaglavlja:
If-Modified-Since
iIf-Unmodified-Since
će dobiti odgovor sa podacima samo ako zaglavlje odgovora**Last-Modified
** sadrži drugačije vreme.Uslovni zahtevi koristeći
If-Match
iIf-None-Match
koriste Etag vrednost tako da web server pošalje sadržaj odgovora ako su podaci (Etag) promenjeni.Etag
se uzima iz HTTP odgovora.Vrednost Etag se obično izračunava na osnovu sadržaja odgovora. Na primer,
ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"
označava da jeEtag
Sha1 od 37 bajtova.
Zahtevi opsega
Accept-Ranges
: Označava da li server podržava zahteve opsega, i ako da, u kojoj jedinici se opseg može izraziti.Accept-Ranges: <range-unit>
Range
: Označava deo dokumenta koji server treba da vrati.If-Range
: Stvara uslovni zahtev opsega koji se ispunjava samo ako dati etag ili datum odgovara udaljenom resursu. Koristi se da se spreči preuzimanje dva opsega iz nekompatibilnih verzija resursa.Content-Range
: Označava gde u punom telu poruke pripada delimična poruka.
Informacije o telu poruke
Content-Length
: Veličina resursa, u decimalnom broju bajtova.Content-Type
: Označava medijski tip resursaContent-Encoding
: Koristi se za specifikaciju algoritma kompresije.Content-Language
: Opisuje ljudski jezik(e) namenjene publici, tako da omogućava korisniku da razlikuje prema vlastitom preferiranom jeziku.Content-Location
: Označava alternativnu lokaciju za vraćene podatke.
Iz perspektive pentesta, ove informacije su obično "beskorisne", ali ako je resurs zaštićen 401 ili 403 i možete pronaći neki način da dobijete ove informacije, to bi moglo biti zanimljivo.
Na primer, kombinacija Range
i Etag
u HEAD zahtevu može otkriti sadržaj stranice putem HEAD zahteva:
Zahtev sa zaglavljem
Range: bytes=20-20
i sa odgovorom koji sadržiETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y"
otkriva da je SHA1 bajta 20ETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y
Informacije o serveru
Server: Apache/2.4.1 (Unix)
X-Powered-By: PHP/5.3.3
Kontrole
Allow
: Ovo zaglavlje se koristi za komunikaciju HTTP metoda koje resurs može obraditi. Na primer, može biti specificirano kaoAllow: GET, POST, HEAD
, što označava da resurs podržava ove metode.Expect
: Koristi se od strane klijenta da prenese očekivanja koja server treba da ispuni kako bi zahtev bio uspešno obrađen. Uobičajena upotreba uključuje zaglavljeExpect: 100-continue
, koje signalizira da klijent namerava da pošalje veliki paket podataka. Klijent traži100 (Continue)
odgovor pre nego što nastavi sa prenosom. Ovaj mehanizam pomaže u optimizaciji korišćenja mreže čekajući potvrdu servera.
Preuzimanja
Content-Disposition
zaglavlje u HTTP odgovorima usmerava da li bi datoteka trebala biti prikazana inline (unutar veb stranice) ili tretirana kao prilog (preuzeta). Na primer:
Ovo znači da je datoteka pod nazivom "filename.jpg" namenjena preuzimanju i čuvanju.
Bezbednosni Headeri
Politika Bezbednosti Sadržaja (CSP)
Content Security Policy (CSP) BypassPoverljivi Tipovi
Sprovodeći Poverljive Tipove putem CSP-a, aplikacije se mogu zaštititi od DOM XSS napada. Poverljivi Tipovi osiguravaju da se samo posebno izrađeni objekti, u skladu sa uspostavljenim bezbednosnim politikama, mogu koristiti u opasnim pozivima web API-ja, čime se podrazumevano osigurava JavaScript kod.
X-Content-Type-Options
Ova zaglavlja sprečavaju MIME tip sniffing, praksu koja može dovesti do XSS ranjivosti. Osigurava da pregledači poštuju MIME tipove koje je odredio server.
X-Frame-Options
Da bi se borili protiv clickjackinga, ovaj header ograničava kako se dokumenti mogu ugraditi u <frame>
, <iframe>
, <embed>
, ili <object>
tagove, preporučujući svim dokumentima da eksplicitno navedu svoja dopuštenja za ugradnju.
Cross-Origin Resource Policy (CORP) i Cross-Origin Resource Sharing (CORS)
CORP je ključan za određivanje koje resurse mogu učitati veb sajtovi, smanjujući cross-site leak-ove. CORS, s druge strane, omogućava fleksibilniji mehanizam deljenja resursa između različitih izvora, opuštajući politiku istog izvora pod određenim uslovima.
Cross-Origin Embedder Policy (COEP) i Cross-Origin Opener Policy (COOP)
COEP i COOP su ključni za omogućavanje izolacije između različitih izvora, značajno smanjujući rizik od napada sličnih Spectre-u. Oni kontrolišu učitavanje resursa iz drugih izvora i interakciju sa prozorima iz drugih izvora, redom.
HTTP Strict Transport Security (HSTS)
Na kraju, HSTS je bezbednosna funkcija koja prisiljava pretraživače da komuniciraju sa serverima samo preko sigurnih HTTPS veza, čime se poboljšava privatnost i bezbednost.
Reference
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated