säkerhet

Utföra en förfalskningsattack på plats

Utföra en förfalskningsattack på plats
En CSRF-attack är den som får autentiserade användare att utföra oönskade åtgärder i webbapplikationen de autentiseras med. Detta görs via en extern webbplats som användaren besöker och som utlöser dessa åtgärder.

I den här artikeln får du den information som krävs från applikationen för att veta vad den attackerande webbplatsen ska göra för att skicka giltiga förfrågningar till den sårbara servern. Sedan skapar du en sida som simulerar legitima förfrågningar och lurar användaren att besöka sidan medan den är autentiserad. Du kommer också att göra några iterationer om det grundläggande beviset på konceptet för att få det att se mer ut som en verklig attack, där offret inte märker det. Observera att kodfilen för den här artikeln finns på författarens github.

Gör mig i ordning

Du behöver ett giltigt användarkonto i BodgeIt för den här artikeln. Denna artikel använder [e-postskyddad] som offret:

Hur man gör det…

Först måste du analysera den begäran du vill tvinga offret att göra. För att göra detta behöver du Burp Suite eller en annan proxy konfigurerad i webbläsaren:

  1. Logga in på BodgeIt som vilken användare som helst och klicka på användarnamnet för att gå till profilen.
  2. Gör ett lösenordsbyte. Se hur begäran ser ut i proxyen:

    Så det är en POSTA begära att http: // 192.168.56.11 / bodgeit / lösenord.jsp, och har bara lösenordet och dess bekräftelse i kroppen.

  3. Försök att skapa en mycket enkel HTML-sida som replikerar denna begäran. Skapa en fil (namnge den csrf-ändra-lösenord.html) med följande innehåll:







  4. Ladda nu den här filen i samma webbläsare som din inloggade session:
  5. Klicka på skicka så skickas du vidare till användarens profilsida. Det kommer att berätta att lösenordet uppdaterades.
  6. Även om detta bevisar poängen kan en extern webbplats (eller en lokal HTML-sida som i detta fall) utföra en begäran om ändring av lösenord i applikationen. Det är fortfarande osannolikt att en användare kommer att klicka på Skicka in Du kan automatisera det och dölja inmatningsfälten så att det skadliga innehållet döljs. Gör nu en ny sida baserad på den föregående; kalla det csrf-ändra-lösenord-skript.html:


    En helt ofarlig sida


    Du kan lita på den här sidan.
    Inget dåligt kommer att hända med dig eller ditt BodgeIt-konto.





    Den här gången har formuläret en ID-parameter och det finns ett skript på sidan som skickar sitt innehåll när sidan laddas helt.

  7.  Om du laddar den här sidan i samma webbläsare där du har startat en BodgeIt-session kommer den automatiskt att skicka begäran och användarens profilsida kommer att visas efter det. I följande skärmdump, webbläsarens Felsökareställa in en brytpunkt precis innan begäran gjordes:
  8. Det senaste försöket ser bättre ut ur en angripares perspektiv. Du behöver bara offret för att ladda sidan och begäran skickas automatiskt, men då kommer offret att se Ditt lösenord har ändratsmeddelande, och det kommer säkert att väcka en varning.
  9. Du kan ytterligare förbättra den angripande sidan genom att få den att ladda svaret i en osynlig ram på samma sida. Det finns många sätt att göra detta; en snabb och smutsig är att ställa in storlek 0 för ramen. Din fil skulle se ut så här:


    En helt ofarlig sida


    Du kan lita på den här sidan.
    Inget dåligt kommer att hända med dig eller ditt BodgeIt-konto.
    target = "target_frame">





    Lägg märke till hur målegenskapen för formuläret är iframe definierad strax under den och att en sådan ram har 0% höjd och bredd.

  10. Ladda den nya sidan i webbläsaren där sessionen inleddes. Denna skärmdump visar hur sidan ser ut när den inspekteras med webbläsaren Utvecklarverktyg: Observera att iframe-objektet bara är en svart linje på sidan och i Inspector kan du se att det innehåller BodgeIt-användarens profilsida.
  11. Om du analyserar nätverkskommunikationen från din CSRF-sida kan du se att den faktiskt gör förfrågningar om att ändra BodgeIt-lösenordet:

Hur det fungerar…

När du skickar en begäran från en webbläsare och redan har en cookie som tillhör måldomänen lagrad kommer webbläsaren att bifoga cookien till begäran innan den skickas. Det är det som gör kakor så bekväma som sessionsidentifierare, men den här egenskapen för hur HTTP fungerar är också det som gör det sårbart för en attack som den du såg i den här artikeln.

När du laddar en sida i samma webbläsare, där du har en aktiv session i en applikation, kommer webbläsaren automatiskt att bifoga sessionskakan till den begäran. Detta händer även om det är en annan flik eller ett annat fönster, och den här sidan gör en begäran till domänen där sessionen initieras.

Om servern inte verifierar att de förfrågningar den mottar faktiskt har sitt ursprung i applikationen, tillåter den en skadlig webbplats att ringa för legitima, aktiva användare som besöker denna skadliga webbplats medan de är autentiserade till måldomänen.

I ett penetrationstest för webbapplikationer, den första koden du använde, den med de två textfälten och Skicka in -knappen, kan räcka för att visa förekomsten av en säkerhetsfel. Emellertid kan penetrationstestningen av applikationen vara en del av ett annat engagemang, till exempel en socialteknik eller ett rött teamövning. I det här fallet krävs en del extra ansträngningar för att förhindra offrets användare från att misstänka att något händer.

I den här artikeln använde du JavaScript för att automatisera sändningen av förfrågan genom att ställa in onload-händelsen på sidan och köra formulärets inlämningsmetod i händelsehanterarfunktionen. Du använde också en dold iframe för att ladda svaret på lösenordsändringen, så offret ser aldrig meddelandet att hans / hennes lösenord har ändrats.

Om du tyckte att den här artikeln var intressant kan du utforska Kali Linux Web Penetration Testing Cookbook - andra upplagan för att upptäcka de vanligaste webbsårbarheterna och förhindra att de blir ett hot mot din webbplats säkerhet. Kali Linux Web Penetration Testing Cookbook - andra upplagan ger dig de färdigheter du behöver för att täcka varje steg i ett penetrationstest - från att samla in information om systemet och applikationen till att identifiera sårbarheter genom manuell testning.

Mus Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Kontrollera och hantera musrörelser mellan flera skärmar i Windows 10
Dual Display Mouse Manager låter dig kontrollera och konfigurera musrörelser mellan flera skärmar genom att sakta ner dess rörelser nära gränsen. Wind...
Mus WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
WinMouse låter dig anpassa och förbättra muspekarens rörelse på Windows PC
Om du vill förbättra standardfunktionerna för din muspekare, använd freeware WinMouse. Det lägger till fler funktioner som hjälper dig att få ut det m...
Mus Mus vänsterklicka på knappen fungerar inte på Windows 10
Mus vänsterklicka på knappen fungerar inte på Windows 10
Om du använder en dedikerad mus med din bärbara dator eller stationära dator men musens vänsterklick-knapp fungerar inte på Windows 10/8/7 av någon an...