2012-04-12 4 views
-1

Ich bin ein Web-Anwendung Entwickler, der klassische ASP als serverseitige Skript verwendet.Auf der Suche nach einer SQL-Injection-Demo

Ich schütze meine Apps immer vor SQL-Injection, indem ich eine einfache Funktion verwende, um ein einzelnes Apostroph für String-Parameter zu verdoppeln.

Function ForSQL(strString) 
    ForSQL = Replace(strString, "'", "''") 
End Function 

Für numerische Parameter verwende ich die CInt, CLng und CDbl Funktionen.

Ich schreibe oft eine verkettete Abfrage; Ich benutze nicht immer gespeicherte Prozeduren und ich validiere nicht immer Benutzereingaben.

Ich möchte Sie fragen, ob mir jemand einen Arbeits Angriff gegen diese Codezeile zeigen:

strSQL = "SELECT Id FROM tUsers WHERE Username='" & _ 
     ForSQL(Left(Request.Form("Username"),20)) & "' AND Password='" & _ 
     ForSQL(Left(Request.Form("Username"),20)) & "'" 

Es ist eine Banalität sein könnte, aber ich habe nie eine Art von Angriff, die funktioniert.

+2

Ich fragte eine ähnliche Frage: http://stackoverflow.com/questions/8506574/sql-injection-isnt-replace-good-enough –

+0

http://isc.sans.edu/diary.html?storyid=9397 – HeavenCore

Antwort

-2

Es gibt keine funktionierende SQL-Injektion für Eingabe auf diese Weise bereinigt. Der Nachteil ist das Abrufen von Daten aus der Datenbank, wenn Sie doppelte Apostrophe ersetzen müssen.

sDataRetrievedFromDatabase = Replace(sDataRetrievedFromDatabase, "''", "'") 
+0

Es tut mir leid, aber ich habe deine Antwort nicht verstanden. Ich bin Italiener, vielleicht kann ich Englisch auf korrekte Weise nicht verstehen. Kannst du das mit einem Beispiel erklären? – danylele

+0

Ich habe ein Beispiel hinzugefügt. –

+0

Ich sehe dein Beispiel. Aber ich kann nicht verstehen, warum ich die doppelten Apostrophe durch einen einzigen Apostroph ersetzen muss. Wenn ich ein Doppelapos in die DB schreibe ... Es berücksichtigt nur eins. – danylele

0

ich immer "sqli Helfer 2.7" gefunden haben (Sie können es herunterladen) am meisten zu finden/alle SQL-Injektionen. Ich bin nicht sicher, ob dies überhaupt helfen wird, aber es wird zumindest helfen, für alle SQL-Kommentare und alles zu testen. Ich erinnere mich, dass auf einer meiner Seiten eine SQL-Injektion gefunden wurde, die alle meine Datenbankdaten stumm machte. Es ist nicht genau das, wonach Sie suchen, aber es könnte einen Weg finden.

Verwandte Themen