COMBELL Tech: SQL injection populair op Coldfusion websites
De laatste 3 maanden waaide er wereldwijd een nieuwe 'SQL injection' hype over die in totaal meer dan een half miljoen websites infecteerde. Deze vorm van hacken is vooral gericht op de achterliggende database en heeft als doel zoveel mogelijk aanpassingen in de database door te voeren. COMBELL onderzocht dit fenomeen en geeft tips om dit misbruik te vermijden.
Tot voor kort werd deze nieuwe trend enkel vastgesteld op ASP of ASP.NET gebaseerde sites. Nu stellen wij vast dat Coldfusion websites ook geviseerd worden. Hoewel de gebruikte programmeertaal hier de variabele is, blijven er toch enkele constanten:
- De oorzaak blijft een codelek
- De achterliggende database server blijft een Microsoft SQL Server database
- De vaststelling is dat er Javascript code geïnjecteerd wordt tussen de data in uw database
Dit zijn ongetwijfeld geen toevallige constanten, maar ze vormen de basis van de injection: door het ontbreken van validatie en beveiliging van de URL-parameters slagen hackers erin om zo eigen SQL-statements door te geven. Hiervoor hebben zij geen logingegevens nodig omdat het script hen de toegang verleent tot de database.
De grootschaligheid en de impact ervan worden veroorzaakt door de architectuur van Microsoft SQL server: de datadictionary die in verschillende databasetabellen vervat zit kan gebruikt worden om alle tabellen en velden in kaart te brengen. Via de tabel "dbo.sysobjects" bekomen de hackers een overzicht van alle beschikbare tabellen, via "dbo.syscolumns" kunnen ze per tabel te weten komen welke velden er aanwezig zijn en via "dbo.systypes" weten ze ten slotte welke velden er alfanumerieke waarden kunnen bevatten. Deze combinatie stelt hackers in staat om zonder concrete kennis van uw databasestructuur alle alfanumerieke velden te vervangen door eigen tekst.
Dit brengt ons uiteindelijk bij de laatste constante, namelijk de aanwezigheid van Javascript code. De SQL injection is niet het einddoel van deze operatie. De uiteindelijke bedoeling van deze hackers is om stukjes Javascript code te vermengen met de gewone alfanumerieke data uit de tabellen. Daarbij hoopt men dat deze data als HTML verwerkt wordt op de site en dat dus ook de Javascript hiermee uitgevoerd wordt. De Javascript code in kwestie is een referentie naar code die op malafide sites gehost wordt en die virussen bevat. In vele gevallen gaat dit over sites in Rusland en China.
Nu deze plaag ook overgewaaid is naar de Coldfusion wereld is het belangrijk om na te denken over zogenaamde "database sanitizing" wat zoveel betekent als: "het proper houden van de SQL statements". Via Coldfusion kan dit makkelijk via de "CFQUERYPARAM" tag. Deze manier van werken kan ervoor zorgen dat een queryparameter geen “verboden” data bevat. Meer informatie vindt u op volgende Adobe Livedocs artikel: http://livedocs.adobe.com/coldfusion/6.1/htmldocs/tags-b20.htm
Tot slot verwijzen wij u graag door naar het algemene Blog artikel dat wij samengesteld hebben over SQL injection. Op https://www.combell.com/nl/blog/ vindt u alle informatie.