SQL Injections
Den senaste tiden har en mängd sajter blivit infekterade av en SQL Injection-attack som använder SQL Servers möjlighet att exekvera en hexadecimal-representation av en fråga. I det här fallet har frågan bestått av en SQL-sats som hämtar och loopar igenom alla text-fält som ligger i sysobjects- och syscolumns-tabellerna och lägger till en sträng av typen: ''<script src=https://evilsite.com/1.js></script>''' i fältet.
När en användare sedan går in på den infekterade sajten så kommer scriptet att exekveras.
Attacken uttnyttjar inte någon ny svaghet i IIS eller SQL-server utan helt enkelt det faktum att dynamisk SQL tillåts köra med parametrar som hämtas direkt från formulär eller Querystrings. Därför är det också i huvudsak äldre webbapplikationer som kör 'klassisk' ASP som drabbats. Men även i klassisk ASP har man möjlighet att använda hårt typade parametrar istället för godtyckliga strängar som inparametrar. Den här artikeln beskriver hur du gör detta med ADO. Läs även denna artikel ifall du har en webbplats som fortfarande kör klassisk ASP för tips om hur du bör validera indata.
Fler bra artiklar om denna specifika attack samt hur du skyddar dig mot SQL Injections i ASP.NET:
SQL Injection Attacks on IIS Web Servers
How To: Protect From SQL Injection in ASP.NET
Tip/Trick: Guard Against SQL Injection Attacks
Please, please, please, learn about injection attacks!
Comments
- Anonymous
November 28, 2008
Idag körde jag och Pelle Johansson MSDN Live med webbfokus i Stockholm. Förutom lite teknikstrul med