IT-säkerhetsgranskning av Flash-filer (SWF)
Vid ett penetrationstest av en webbsida eller webbtjänst så bör samtliga filer genomgå en granskning. Oavsett om det är JavaScript, CSS, PHP eller andra filer som förekommer.
En av de vanligare filformat som just innehåller säkerhetsbrister är Shockwave Flash, dvs .swf-filer. Och förutom säkerhetsbrister så kan även dessa swf-filer avslöja annan intressant information såsom kommunikation till bakomliggande API:er som även omfattas av ett penetrationstest.
Följande metodik är ett exempel på hur granskning av swf-filer kan genomföras.
Identifiering
Först identifieras samtliga SWF-filer och sådana som ej är av intresse sållas bort. Det kan exempelvis vara sådana som ej innehåller ActionScript eller bara visar en video (var observant för dessa kan vara intressanta).
Ibland så går det enbart ej att förlita sig på en Google-sökning likt denna:
site:domän.se filetype:swf
Det finns även fall då swf-filer laddas in dynamiskt via javascript såsom Facebook gör. Där kan en loggande proxy användas eller/och tillsammans med en spindel (crawler) som exekverar JavaScript. Firefox tillsammans med Selenium kan användas för detta syfte.
Nyttjande av brister
När du väl identifierat samtliga flash-filer så rekommenderar vi att du försöker dekompilera dessa med FFdec för att ta del av ActionScript kod. Även så kan webbläsarens inbyggda debugger eller Firebug användas för att kontrollera bakomliggande kommunikation.
Vid kontrollen av AcrionScript-kod så finns det någa delar som är mer intressanta, och det är vilka argument som går att skicka till swf-filen samt eventuella anrop till:
loadVariables() loadMovie() getURL() loadMovie() loadMovieNum() FScrollPane.loadScrollContent() LoadVars.load LoadVars.send XML.load ( 'url' ) LoadVars.load ( 'url' ) Sound.loadSound( 'url' , isStreaming ); NetStream.play( 'url' ); flash.external.ExternalInterface.call(_root.callback) htmlText
I ovan exempel då ExternalInterface.call anropas kan en XSS-attack genomföras med:
http://host/swf?callback=(new Function(“alert(‘Xss’)”))
Samt annat att kontrollera är om det går att ange egen URL vid laddning av XML eller videofilmer.
Avslutningsvis
Det absolut viktigaste är att läsa på om andra sårbarheter som identifierats i swf. Och det finns massor av läsning såsom OWASP: