Automatic Creation of SQL Injection and Cross-Site Scripting Attacks
Author(s)
Michael Ernst; Program Analysis; Kiezun, Adam; Guo, Philip J.; Jayaraman, Karthick; Ernst, Michael D.; ... Show more Show less
DownloadMIT-CSAIL-TR-2008-054.pdf (394.1Kb)
Additional downloads
Metadata
Show full item recordAbstract
We present a technique for finding security vulnerabilitiesin Web applications. SQL Injection (SQLI) and cross-sitescripting (XSS) attacks are widespread forms of attackin which the attacker crafts the input to the application toaccess or modify user data and execute malicious code. Inthe most serious attacks (called second-order, or persistent,XSS), an attacker can corrupt a database so as to causesubsequent users to execute malicious code.This paper presents an automatic technique for creatinginputs that expose SQLI and XSS vulnerabilities. The techniquegenerates sample inputs, symbolically tracks taintsthrough execution (including through database accesses),and mutates the inputs to produce concrete exploits. Oursis the first analysis of which we are aware that preciselyaddresses second-order XSS attacks.Our technique creates real attack vectors, has few falsepositives, incurs no runtime overhead for the deployed application,works without requiring modification of applicationcode, and handles dynamic programming-languageconstructs. We implemented the technique for PHP, in a toolArdilla. We evaluated Ardilla on five PHP applicationsand found 68 previously unknown vulnerabilities (23 SQLI,33 first-order XSS, and 12 second-order XSS).
Date issued
2008-09-10Citation
Other identifiers
local: MIT-CSAIL-TR-2008-054
Series/Report no.
Massachusetts Institute of Technology Computer Science and Artificial Intelligence Laboratory
Keywords
reliability, dynamic analysis, dynamic taint
Collections
The following license files are associated with this item: