CSRF (Cross Site Request Forgery)
Sluit aan by HackenProof Discord bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
Hacking-insigte Gaan in gesprek met inhoud wat die opwinding en uitdagings van hack bevat
Haknuus in werklikheid Bly op hoogte van die vinnige hackwêreld deur werklikheidsnuus en insigte
Nuutste aankondigings Bly ingelig met die nuutste foutbelonings wat bekendgestel word en kritieke platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Kruiswebversoekvergiffenis (CSRF) Verduidelik
Kruiswebversoekvergiffenis (CSRF) is 'n tipe sekuriteitskwesbaarheid wat in webtoepassings gevind word. Dit stel aanvallers in staat om aksies namens onvermoedende gebruikers uit te voer deur hul geoutentiseerde sessies te benut. Die aanval word uitgevoer wanneer 'n gebruiker, wat by 'n slagoffer se platform aangemeld is, 'n skadelike webwerf besoek. Hierdie webwerf aktiveer dan versoek aan die slagoffer se rekening deur metodes soos die uitvoer van JavaScript, die indien van vorms, of die ophaling van beelde.
Voorvereistes vir 'n CSRF-aanval
Om 'n CSRF-kwesbaarheid te benut, moet verskeie toestande voldoen word:
Identifiseer 'n Waardevolle Aksie: Die aanvaller moet 'n aksie vind wat die moeite werd is om te benut, soos die verandering van die gebruiker se wagwoord, e-pos, of die verhoging van voorregte.
Sessiebestuur: Die gebruiker se sessie moet slegs deur koekies of die HTTP Basiese Verifikasiekop beheer word, aangesien ander koppe nie vir hierdie doel gemanipluleer kan word nie.
Afwees van Onvoorspelbare Parameters: Die versoek moet nie onvoorspelbare parameters bevat nie, aangesien dit die aanval kan voorkom.
Vinnige Kontrole
Jy kan die versoek in Burp vasvang en CSRF-beskerming toets en om vanaf die blaaier te toets, kan jy op Kopieer as fetch klik en die versoek toets:
Verdedig teen CSRF
Verskeie teenmaatreëls kan geïmplementeer word om teen CSRF-aanvalle te beskerm:
SelfdeSite-koekies: Hierdie eienskap voorkom dat die blaaier koekies saam met kruiswebversoeke stuur. Meer oor SelfdeSite-koekies.
Kruis-oorsprong hulpbrondeling: Die CORS-beleid van die slagoffersite kan die uitvoerbaarheid van die aanval beïnvloed, veral as die aanval vereis dat die respons van die slagoffersite gelees word. Leer oor CORS-omleiding.
Gebruikerverifikasie: Die versoek vir die gebruiker se wagwoord of die oplos van 'n captcha kan die gebruiker se bedoeling bevestig.
Kontroleer Verwysers of Oorsprongkoppe: Die validering van hierdie koppe kan help om te verseker dat versoek van betroubare bronne afkomstig is. Tog kan sorgvuldige samestelling van URL's swak geïmplementeerde kontroles omseil, soos:
Gebruik van
http://mal.net?orig=http://example.com
(URL eindig met die betroubare URL)Gebruik van
http://example.com.mal.net
(URL begin met die betroubare URL)Wysiging van Parametername: Die wysiging van die name van parameters in POST- of GET-versoeke kan help om outomatiese aanvalle te voorkom.
CSRF-tokens: Die inkorporering van 'n unieke CSRF-token in elke sessie en die vereiste van hierdie token in volgende versoek kan die risiko van CSRF aansienlik verminder. Die doeltreffendheid van die token kan versterk word deur CORS af te dwing.
Die begrip en implementering van hierdie verdedigings is noodsaaklik vir die handhawing van die sekuriteit en integriteit van webtoepassings.
Verdedigingsomseiling
Vanaf 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 geldig is en of wanneer jy 'n GET-versoek stuur die CSRF-token steeds gevalideer word.
Gebrek aan token
Toepassings mag 'n meganisme implementeer om tokens te valideer wanneer hulle teenwoordig is. 'n Kwesbaarheid ontstaan egter as die validasie heeltemal omseil word wanneer die token afwesig is. Aanvallers kan dit uitbuit deur die parameter wat die token dra, te verwyder, nie net sy waarde nie. Dit stel hulle in staat om die validasieproses te omseil en 'n Kruiswebversoekvergiffenis (CSRF) aanval doeltreffend uit te voer.
CSRF-token is nie aan die gebruikersessie gekoppel nie
Toepassings wat nie CSRF-tokens aan gebruikersessies koppel nie, bied 'n aansienlike sekuriteitsrisiko. Hierdie stelsels verifieer tokens teen 'n globale poel eerder as om te verseker dat elke token aan die inisieerdersessie gebind is.
So misbruik aanvallers dit:
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 ongemagtigde versoek op die slagoffer se naam te maak deur die toepassing se onvoldoende tokenvalideringsmeganisme uit te buit.
Metode omseiling
As die versoek 'n "vreemde" metode gebruik, kontroleer of die metodeoorheersingsfunksionaliteit werk. Byvoorbeeld, as dit 'n PUT-metode gebruik, kan jy probeer om 'n POST-metode te gebruik en te stuur: https://example.com/my/dear/api/val/num?_method=PUT
Dit kan ook werk deur die _metodeparameter binne 'n POST-versoek te stuur of deur die koppe te gebruik:
X-HTTP-Metode
X-HTTP-Metode-Oorheers
X-Metode-Oorheers
Aangepaste kopertokenomseiling
As die versoek 'n aangepaste kop met 'n token by die versoek voeg as CSRF-beskermingsmetode, dan:
Toets die versoek sonder die aangepaste Token en ook kop.
Toets die versoek met presies dieselfde lengte maar 'n ander token.
CSRF-token word deur 'n koekie geverifieer
Toepassings kan CSRF-beskerming implementeer deur die token in beide 'n koekie en 'n versoekparameter te dupliseer 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 valideer versoek deur te kyk of die token in die versoekparameter ooreenstem met die waarde in die koekie.
Hierdie metode is egter vatbaar vir CSRF-aanvalle as die webwerf foute het wat 'n aanvaller toelaat om 'n CSRF-koekie in die slagoffer se blaaier te stel, soos 'n CRLF-kwesbaarheid. Die aanvaller kan dit uitbuit deur 'n misleidende beeld te laai wat die koekie stel, gevolg deur die inisieer van die CSRF-aanval.
Hieronder is 'n voorbeeld van hoe 'n aanval gestruktureer kan word:
Let wel dat as die csrf-token verband hou met die sessie-cookie, sal hierdie aanval nie werk nie omdat jy die slagoffer jou sessie moet instel, en dus sal jy jouself aanval.
Inhouds-Tipe verandering
Volgens hierdie, ten einde preflight-versoeke met die POST-metode te vermy, is hierdie toegelate Inhouds-Tipe waardes:
application/x-www-form-urlencoded
multipart/form-data
text/plain
Let egter daarop dat die bedienerslogika mag verskil afhangende van die gebruikte Inhouds-Tipe, dus moet jy die genoemde waardes probeer asook ander soos application/json
,text/xml
, application/xml
.
Voorbeeld (van hier) van die stuur van JSON-data as teks/plain:
Oorweging van Preflight Versoeke vir JSON Data
Wanneer daar gepoog word 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. Op soortgelyke wyse, die gebruik van XMLHttpRequest
om hierdie inhoudstipe te stuur, inisieer 'n preflight versoek. Nietemin, daar is strategieë om moontlik hierdie beperking te omseil en te toets of die bediener die JSON data verwerk ongeag die Content-Type:
Gebruik Alternatiewe Inhoudstipes: 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 Inhoudstipe: Om 'n preflight versoek te vermy terwyl die bediener verseker dat die inhoud as JSON herken word, kan jy die data stuur met
Content-Type: text/plain; application/json
. Dit veroorsaak nie 'n preflight versoek nie, maar kan korrek deur die bediener verwerk word as dit ingestel is omapplication/json
te aanvaar.SWF Flash-lêer Gebruik: 'n Minder algemene maar uitvoerbare 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.
Verwysings / Oorsprong omseiling
Vermy Referrer-kop
Toepassings kan die 'Referer' kop net valideer as dit teenwoordig is. Om te voorkom dat 'n webblaaier hierdie kop stuur, kan die volgende HTML meta-etiket gebruik word:
Dit verseker dat die 'Referer'-kop weglaat word, wat moontlik validasiekontroles in sommige aansoeke kan omseil.
Regexp omseilings
pageURL Format BypassOm die domeinnaam van die bediener in die URL in te stel wat die Verwysingskoppeling binne die parameters gaan stuur, kan jy doen:
HEAD metode omseil
Die eerste deel van hierdie CTF skryfstuk word verduidelik dat Oak se bronkode, 'n router is ingestel om HEAD-versoeke as GET-versoeke te hanteer sonder 'n responsliggaam - 'n algemene omweg wat nie uniek is aan Oak nie. In plaas van 'n spesifieke verwerker wat met HEAD-versoeke werk, word hulle eenvoudig aan die GET-verwerker gegee, maar die program verwyder net die responsliggaam.
Daarom, as 'n GET-versoek beperk word, kan jy net 'n HEAD-versoek stuur wat as 'n GET-versoek verwerk sal word.
Uitbuiting Voorbeelde
Uitlek van CSRF-token
As 'n CSRF-token as verdediging gebruik word, kan jy probeer om dit te uitlek deur 'n XSS kwesbaarheid of 'n Dangling Markup kwesbaarheid te misbruik.
GET deur gebruik van HTML-tjags
Ander HTML5-etikette wat gebruik kan word om outomaties 'n GET-aanvraag te stuur, is:
Vorm GET versoek
Vorm POST versoek
Vorm POST versoek deur middel van 'n iframe
Ajax POST versoek
multipart/form-data POST versoek
multipart/form-data POST versoek v2
Vorm POST-aanvraag van binne 'n iframe
Steel CSRF-token en stuur 'n POST-versoek
Steel CSRF-token en stuur 'n Pos-aanvraag met behulp van 'n iframe, 'n vorm en Ajax
Steel CSRF-token en stuur 'n POST-versoek met behulp van 'n iframe en 'n vorm
Steel token en stuur dit met behulp van 2 iframes
POST Steel CSRF-token met Ajax en stuur 'n pos met 'n vorm
CSRF met Socket.IO
CSRF Aanmelding Brute Force
Die kode kan gebruik word om 'n aanmeldingsvorm te Brut Force met behulp van 'n CSRF-token (Dit maak ook gebruik van die kopteks X-Forwarded-For om te probeer om 'n moontlike IP-swartlys te omseil):
Gereedskap
Verwysings
Sluit aan by HackenProof Discord bediener om met ervare hackers en foutbeloningsjagters te kommunikeer!
Hack-insigte Gaan in gesprek met inhoud wat die opwinding en uitdagings van hack bekyk
Hack Nuus in Werklikheid Bly op hoogte van die snelveranderende hackwêreld deur werklikheidsnuus en insigte
Nuutste Aankondigings Bly ingelig met die nuutste foutbelonings wat bekendgestel word en belangrike platformopdaterings
Sluit by ons aan op Discord en begin vandag saamwerk met top hackers!
Last updated