header

Archiv

2009: [Jan] [Feb] [Mar] [Apr] [May] [Jun] [Jul] [Aug] [Sep] [Oct] [Nov] [Dec]

Umgekehrte SQL Abfragen


Unter der Überschrift "Inverted SQL queries" (Teil 1 und 2) beschreibt der Autor eines (spanischen) Blogs eine interessante Beobachtung seinerseits: Kehrt man SQL Abfragen um, bleiben diese valide; etwaige SQL Injection Schwachstellen somit auch. Letztere jedoch werden dann von den meisten Analyseprogrammen nicht mehr als Gefahr erkannt.

Eine typische SQL Abfrage, anfällig für SQL Injection:
SqlCommand command = new SqlCommand(
"select * from noticias where id="
+ Request.QueryString.Get("id") + " ", c);

Und die vom Autor gezeigte umgekehrte Variante:
SqlCommand command = new SqlCommand(
"select * from noticias where "
+ Request.QueryString.Get("id") + "=id", c);

Folgende Analyseprogramme wurden verwendet und sind im obigen Szenario ausnahmslos gescheitert:

- Acunetix Web Vulnerability Scanner
- IBM Rational AppScan
- Paros
- w3af
- Wapiti

Jeder wollte der Erste und Beste sein, doch am Ende hielt nicht eines der getesteten Programme dem (zugegebenermaßen etwas künstlichen) Beispiel stand. Bleibt zu hoffen, dass zumindest dieses Problem mittlerweile von allen Entwicklern behoben worden ist.