Wie kann ich meine Website mithilfe eines Skripts oder Programms automatisch auf SQL-Injection-Angriffe testen? [closed]

Lesezeit: 5 Minuten

Benutzer-Avatar
Lukas Shaheen

Ich habe hier auf SO eine gute Diskussion gesucht und gefunden, aber sie ist mehrere Jahre alt.

Welche Programme gibt es oder gibt es ein einfaches Skript, das ich ausführen kann, um die SQL-Einschleusungslöcher in den URLs meiner gesamten Website zu finden?

Am liebsten würde ich ein Skript (PHP) oder Programm ausführen, das meine Website durchsucht, von Link zu Link springt, versucht, Lücken zu finden, und nach Entdeckung diese URL speichert, sodass ich eine Liste mit URLs habe, die ich reparieren muss.

Gibt es das?

  • Solange Sie eine gute Bibliothek verwenden oder alles zitieren, ist die SQL-Injektion Ihre geringste Sorge. Ich würde mir mehr Sorgen um XSS-Angriffe und die Netzwerksicherheit machen.

    – iLLin

    13. März 2012 um 14:38 Uhr

  • @iLLin Ich stimme zu, aber das Problem ist, dass die Site 10 Jahre alt und ziemlich groß ist – es gibt viele SQL-Injection-Löcher aus früheren Jahren, und ich suche nach einer Möglichkeit, sie leicht zu finden.

    – Lukas Shaheen

    13. März 2012 um 14:41 Uhr


Benutzer-Avatar
JasonG

Ja und nein. Zunächst möchte ich sagen, dass ich nicht nur Links poste, sondern Sicherheitsüberprüfungen professionell mit all diesen Tools durchgeführt habe und nicht als Entwickler eines Projekts, sondern als externe Ressource. Beachten Sie, dass sich die sqlserver-Injektion im Allgemeinen auch von mysql unterscheidet.

Kostenlose Tools wie Paros-Proxy [crawls] (zuvor erwähnt),

Burpsuite (vorher erwähnt [crawls] aber aktive Angriffe erfordern Pro): http://portswigger.net/burp/

sqlninja (nur sqlserver) http://sqlninja.sourceforge.net/

Google-Ratten-Proxy: [crawls] http://code.google.com/p/ratproxy/

websecurify: [crawls] http://www.websecurify.com/

wapiti: [crawls but takes work to set up – can be used specifically for sqli with spider] http://wapiti.sourceforge.net/

Nikto: [crawls but not for sqli…]

sind großartig! Sie können Ihnen helfen, Probleme zu identifizieren, erfordern jedoch aufgrund großer Mengen falsch positiver Ergebnisse einen großen Teil der menschlichen Analyse. Kommerzielle Tools sind verfügbar wie:

NTOSpider (einer der besten [crawls!]) : http://www.ntobjectives.com/software/ntospider

sind sehr teuer, aber wenn Sie mit einem Vertreter sprechen, erhalten Sie für einen bestimmten Zeitraum eine kostenlose Kopie (was ich mit ihnen getan habe). Sie beschleunigen das Sortieren der Ergebnisse, indem sie Validierungslinks in den Berichten bereitstellen, aber Sie benötigen NOCH ein geschultes Auge und eine Analyse, da ich falsch positive Ergebnisse gefunden habe.

Letztendlich lautet die richtige Antwort auf diese Frage: Sie können Tools verwenden, um Sicherheitslücken (sqli) zu identifizieren, aber nur ein geschultes Auge, das die Tools verwendet, kann sie validieren. Darüber hinaus kann nur eine ordnungsgemäße Codeüberprüfung und -analyse Schwachstellen identifizieren, die einer (selbst einer sehr guten) App möglicherweise entgehen.

Tools können helfen, aber Sie brauchen menschliche Zeit und Analysen, um dies richtig zu machen. Proxys und Anforderungsmangler sind die eigentlichen Werkzeuge, um die App mit Injektionen zu treffen, und werden mit sorgfältiger Absicht von geschulten Testern oder solchen mit einem neugierigen Geist durchgeführt.

Ich habe zwei Lieblingstools (beide kostenlos):

  1. sqlmap – Sie geben ihm eine URL und es scannt automatisch nach Schwachstellen. Wenn es eingeht, gibt es Ihnen eine SQL-Eingabeaufforderung.
  2. Paros-Proxy – Dieser dauert etwas länger zum Einrichten. Sie müssen Ihren Browser so konfigurieren, dass er einen Proxy verwendet und dann Ihre Website verwenden (anmelden, zu anderen Seiten navigieren usw.). Sobald Sie fertig sind, analysiert es seinen Cache mit allen von Ihnen gestellten Anfragen und zeigt einen Bericht über die gefundenen potenziellen Schwachstellen an.

  • Ich habe sqlmap, aber ich suche nach etwas, das ich scannen kann, ohne dass ich ihm eine direkte URL gebe. Paros Proxy klingt, als könnte es gut sein, obwohl ich immer noch manuell crawlen muss, aber zumindest ist es besser, als URLs manuell einzugeben.

    – Lukas Shaheen

    25. März 2012 um 16:18 Uhr

Benutzer-Avatar
Zeichnete

Das Burp-Scanner funktioniert sehr gut, um SQL-Injection sowie eine Vielzahl anderer Dinge zu finden. Sie müssen zwar 300 US-Dollar für den Scanner berappen, aber das ist ziemlich billig, wenn Sie sich andere Scanner auf dem Markt ansehen.

Genauer gesagt suchen Sie nach einem Schwachstellenscanner für Webanwendungen. Diese durchsuchen Ihre Website und senden Angriffsvektoren an verschiedene Parameter. Von allen Scannern, die ich verwendet habe, hat Burp mir die besten Ergebnisse geliefert und hat eine großartige Leistung. Wenn Sie nach einer kostenlosen Alternative suchen, können Sie es versuchen Grendel-Scan Es wurde eine Weile nicht aktualisiert, funktioniert aber immer noch ziemlich gut. Vor allem für ein kostenloses Tool.

Hier ist ein aufführen von einigen anderen Schwachstellen-Scannern, die da draußen sind. Ich bin sicher, Sie werden etwas finden, das Ihren Bedürfnissen entspricht.

  • Burp ist ziemlich nett und es ist nicht nur auf die SQL-Injektion beschränkt, Sie können andere Schlupflöcher finden, von denen Sie vielleicht nicht vermutet haben, dass sie da sind. Etwas teuer, aber erledigt die Arbeit.

    – Alex

    20. März 2012 um 9:19 Uhr

Benutzer-Avatar
Kerlbennet

Es gibt Programme zum Erkennen von SQL-Injections, zum Beispiel:

Benutzer-Avatar
Somnath Muluk

Es gibt enorme Tools auf dem Markt, um alle Seiten zu crawlen und SQL-Injections zu erkennen. Sie sollten diese Diskussion lesen, es ist nie spät. Wie kann ich SQL-Injection in PHP verhindern? und Testen auf Sicherheitslücken in Webanwendungen: Best Practices?.

ich würde vorschlagen Wapiti zum Auffinden von Sicherheitslücken in Webanwendungen. Acunetix ist überteuert.

Mehr sehen:

Benutzer-Avatar
Emad Samir Zaki

Was ich auf meinen Seiten teste:

Wenn Sie beispielsweise ein Anmeldeformular haben, versuchen Sie Folgendes einzugeben:

Benutzername-Feld: beliebiger Text oder 1=1′

Passwortfeld: irgendein Passwort

Wenn Sie die SQL-Injektion nicht in Ihrem Code behandelt haben, können Sie sich damit anmelden.

Vielen Dank

1056330cookie-checkWie kann ich meine Website mithilfe eines Skripts oder Programms automatisch auf SQL-Injection-Angriffe testen? [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy