CSRF (Cross Site Request Forgery)
Sluit aan by HackenProof Discord bediener om te kommunikeer met ervare hackers en bug bounty jagters!
Hacking Inligting Betrek met inhoud wat die opwinding en uitdagings van hacking ondersoek
Regstydse Hack Nuus Bly op hoogte van die vinnige hacking wêreld deur regstydse nuus en insigte
Laaste Aankondigings Bly ingelig oor die nuutste bug bounties wat bekendgestel word en belangrike platform opdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Cross-Site Request Forgery (CSRF) Verduidelik
Cross-Site Request Forgery (CSRF) is 'n tipe sekuriteitskwesbaarheid wat in webtoepassings gevind word. Dit stel aanvallers in staat om aksies namens onskuldige gebruikers uit te voer deur hul geverifieerde sessies te benut. Die aanval word uitgevoer wanneer 'n gebruiker, wat in 'n slagoffer se platform aangemeld is, 'n kwaadwillige webwerf besoek. Hierdie webwerf aktiveer dan versoeke na die slagoffer se rekening deur metodes soos die uitvoer van JavaScript, indien van vorms, of opvra van beelde.
Voorvereistes vir 'n CSRF-aanval
Om 'n CSRF-kwesbaarheid te benut, moet verskeie voorwaardes nagekom word:
Identifiseer 'n Waardevolle Aksie: Die aanvaller moet 'n aksie vind wat die moeite werd is om te benut, soos om die gebruiker se wagwoord, e-pos of bevoegdhede te verander.
Sessie Bestuur: Die gebruiker se sessie moet uitsluitlik deur koekies of die HTTP Basic Authentication koptekst bestuur word, aangesien ander koptekste nie vir hierdie doel gemanipuleer kan word nie.
Afwesigheid van Onvoorspelbare Parameters: Die versoek moet nie onvoorspelbare parameters bevat nie, aangesien dit die aanval kan voorkom.
Vinige Kontrole
Jy kan die versoek in Burp vasvang en CSRF beskermings nagaan en om van die blaaier te toets kan jy op Kopieer as fetch klik en die versoek nagaan:
Verdediging teen CSRF
Verskeie teenmaatreëls kan geïmplementeer word om teen CSRF-aanvalle te beskerm:
SameSite koekies: Hierdie attribuut verhoed dat die blaaier koekies saam met kruis-web versoeke stuur. Meer oor SameSite koekies.
Cross-origin resource sharing: Die CORS-beleid van die slagoffer webwerf kan die haalbaarheid van die aanval beïnvloed, veral as die aanval vereis dat die antwoord van die slagoffer webwerf gelees word. Leer oor CORS omseilings.
Gebruiker Verifikasie: Om die gebruiker se wagwoord te vra of 'n captcha op te los kan die gebruiker se bedoeling bevestig.
Kontroleer Referrer of Oorsprong Koptekste: Die validering van hierdie koptekste kan help om te verseker dat versoeke van vertroude bronne kom. Dit is egter moontlik om swak geïmplementeerde kontroles te omseil deur sorgvuldig URL's te skep, soos:
Gebruik
http://mal.net?orig=http://example.com
(URL eindig met die vertroude URL)Gebruik
http://example.com.mal.net
(URL begin met die vertroude URL)Wysig Parametername: Die name van parameters in POST of GET versoeke kan verander word om geoutomatiseerde aanvalle te voorkom.
CSRF Tokens: Die insluiting van 'n unieke CSRF-token in elke sessie en die vereiste van hierdie token in daaropvolgende versoeke kan die risiko van CSRF aansienlik verminder. Die doeltreffendheid van die token kan verbeter word deur CORS af te dwing.
Om hierdie verdediging te verstaan en te implementeer is van kardinale belang om die sekuriteit en integriteit van webtoepassings te handhaaf.
Verdedigings Omseiling
Van POST na GET
Miskien is die vorm wat jy wil misbruik voorberei om 'n POST versoek met 'n CSRF-token te stuur, maar jy moet kontroleer of 'n GET ook geld en of wanneer jy 'n GET versoek stuur die CSRF-token steeds geverifieer word.
Gebrek aan token
Toepassings mag 'n meganisme implementeer om tokens te verifieer wanneer hulle teenwoordig is. 'n Kwesbaarheid ontstaan egter as die verifikasie heeltemal oorgeslaan word wanneer die token afwesig is. Aanvallers kan dit benut deur die parameter wat die token dra, nie net sy waarde, te verwyder. Dit stel hulle in staat om die verifikasieproses te omseil en 'n Cross-Site Request Forgery (CSRF) aanval effektief uit te voer.
CSRF-token is nie aan die gebruiker se sessie gekoppel nie
Toepassings wat CSRF-tokens nie aan gebruiker sessies koppel nie bied 'n beduidende sekuriteitsrisiko. Hierdie stelsels verifieer tokens teen 'n globale poel eerder as om te verseker dat elke token aan die inisiërende sessie gebind is.
Hier is hoe aanvallers dit benut:
Verifieer met hul eie rekening.
Verkry 'n geldige CSRF-token uit die globale poel.
Gebruik hierdie token in 'n CSRF-aanval teen 'n slagoffer.
Hierdie kwesbaarheid stel aanvallers in staat om ongeoorloofde versoeke namens die slagoffer te maak, wat die toepassing se onvoldoende token verifikasie meganisme benut.
Metode omseiling
As die versoek 'n "vreemde" metode gebruik, kontroleer of die metode oorskrywing funksionaliteit werk. Byvoorbeeld, as dit 'n PUT metode gebruik, kan jy probeer om 'n POST metode te gebruik en stuur: https://example.com/my/dear/api/val/num?_method=PUT
Dit kan ook werk deur die _method parameter binne 'n POST versoek te stuur of deur die koptekste te gebruik:
X-HTTP-Method
X-HTTP-Method-Override
X-Method-Override
Aangepaste koptekst token omseiling
As die versoek 'n aangepaste koptekst met 'n token aan die versoek voeg as CSRF beskermingsmetode, dan:
Toets die versoek sonder die Aangepaste Token en ook koptekst.
Toets die versoek met presies dieselfde lengte maar 'n ander token.
CSRF-token word deur 'n koekie geverifieer
Toepassings mag CSRF-beskerming implementeer deur die token in beide 'n koekie en 'n versoekparameter te dupliceer of deur 'n CSRF-koekie in te stel en te verifieer of die token wat in die agtergrond gestuur word ooreenstem met die koekie. Die toepassing verifieer versoeke deur te kontroleer of die token in die versoekparameter ooreenstem met die waarde in die koekie.
Hierdie metode is egter kwesbaar vir CSRF-aanvalle as die webwerf gebreke het wat 'n aanvaller toelaat om 'n CSRF-koekie in die slagoffer se blaaier in te stel, soos 'n CRLF kwesbaarheid. Die aanvaller kan dit benut deur 'n misleidende beeld te laai wat die koekie stel, gevolg deur die inisiëring van die CSRF-aanval.
Hieronder is 'n voorbeeld van hoe 'n aanval gestruktureer kan word:
Let daarop dat as die csrf token verband hou met die sessie koekie, hierdie aanval nie sal werk nie omdat jy die slagoffer jou sessie moet stel, en daarom sal jy jouself aanval.
Inhoudstipe verandering
Volgens hierdie, om preflight versoeke met die POST metode te vermy, is hierdie die toegelate Inhoudstipe waardes:
application/x-www-form-urlencoded
multipart/form-data
text/plain
Let egter daarop dat die bediener se logika kan verskil afhangende van die Inhoudstipe wat gebruik word, so jy moet die genoemde waardes en ander soos application/json
,text/xml
, application/xml
. probeer.
Voorbeeld (van hier) van die sending van JSON data as text/plain:
Omseil van Preflight Versoeke vir JSON Data
Wanneer jy probeer om JSON data via 'n POST versoek te stuur, is dit nie direk moontlik om die Content-Type: application/json
in 'n HTML vorm te gebruik nie. Net so, die gebruik van XMLHttpRequest
om hierdie inhouds tipe te stuur, begin 'n preflight versoek. Nietemin, daar is strategieë om moontlik hierdie beperking te omseil en te kontroleer of die bediener die JSON data verwerk ongeag die Content-Type:
Gebruik Alternatiewe Inhouds Tipes: Gebruik
Content-Type: text/plain
ofContent-Type: application/x-www-form-urlencoded
deurenctype="text/plain"
in die vorm in te stel. Hierdie benadering toets of die agterkant die data gebruik ongeag die Content-Type.Wysig Inhouds Tipe: Om 'n preflight versoek te vermy terwyl jy verseker dat die bediener die inhoud as JSON herken, kan jy die data stuur met
Content-Type: text/plain; application/json
. Dit aktiveer nie 'n preflight versoek nie, maar kan korrek deur die bediener verwerk word as dit geconfigureer is omapplication/json
te aanvaar.SWF Flash Lêer Gebruik: 'n Minder algemene maar haalbare metode behels die gebruik van 'n SWF flash lêer om sulke beperkings te omseil. Vir 'n diepgaande begrip van hierdie tegniek, verwys na hierdie pos.
Referrer / Oorsprong kontrole omseiling
Vermy Referrer kop
Toepassings mag die 'Referer' kop slegs valideer wanneer dit teenwoordig is. Om te voorkom dat 'n blaaier hierdie kop stuur, kan die volgende HTML meta tag gebruik word:
Dit verseker dat die 'Referer' kop nie ingesluit word nie, wat moontlik valideringskontroles in sommige toepassings omseil.
Regexp omseilings
URL Format BypassOm die domeinnaam van die bediener in die URL wat die Referrer binne die parameters gaan stuur, in te stel, kan jy doen:
HEAD metode omseiling
Die eerste deel van hierdie CTF skrywe verduidelik dat Oak se bronkode, 'n router is ingestel om HEAD versoeke as GET versoeke te hanteer sonder 'n responsliggaam - 'n algemene omseiling wat nie uniek is aan Oak nie. In plaas van 'n spesifieke handler wat met HEAD versoeke werk, word hulle eenvoudig aan die GET handler gegee, maar die app verwyder net die responsliggaam.
Daarom, as 'n GET versoek beperk word, kan jy eenvoudig 'n HEAD versoek stuur wat as 'n GET versoek verwerk sal word.
Eksploitasie Voorbeelde
Exfiltrering van CSRF Token
As 'n CSRF token as verdediging gebruik word, kan jy probeer om dit te exfiltreer deur 'n XSS kwesbaarheid of 'n Dangling Markup kwesbaarheid te misbruik.
GET met HTML merke
Ander HTML5-tags wat gebruik kan word om outomaties 'n GET-versoek te stuur, is:
Vorm GET versoek
Vorm POST versoek
Vorm POST versoek deur iframe
Ajax POST versoek
multipart/form-data POST versoek
multipart/form-data POST versoek v2
Form POST-versoek vanuit 'n iframe
Steal CSRF-token en stuur 'n POST-versoek
Steal CSRF Token en stuur 'n Post versoek met 'n iframe, 'n vorm en Ajax
Steal CSRF Token en stuur 'n POST versoek met 'n iframe en 'n vorm
Steal token and send it using 2 iframes
POSTSteal CSRF-token met Ajax en stuur 'n pos met 'n vorm
CSRF met Socket.IO
CSRF Login Brute Force
Die kode kan gebruik word om 'n aanmeldvorm met 'n CSRF-token te brute-force (Dit gebruik ook die kop X-Forwarded-For om te probeer om 'n moontlike IP-swartlys te omseil):
Tools
References
Sluit aan by HackenProof Discord bediener om met ervare hackers en bug bounty jagters te kommunikeer!
Hacking Inligting Neem deel aan inhoud wat die opwinding en uitdagings van hacking ondersoek
Regstydse Hack Nuus Bly op hoogte van die vinnig bewegende hacking wêreld deur regstydse nuus en insigte
Laaste Aankondigings Bly ingelig oor die nuutste bug bounties wat bekendgestel word en belangrike platform opdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Last updated