it-swarm-eu.dev

Testen sauberer URLs mit sqlmap

Ist es möglich, SQL-Injection-Schwachstellen zu testen, indem Sie sqlmap mit einer URL verwenden, die mod rewrite (oder ähnliches) verwendet, um die URLs sauber zu machen?

Ich kann meine Websites mit folgenden URLs testen: http://mysite.com/?id=1

Aber was ist mit meinen Websites, die saubere URLs haben, wie: http://mysite.com/1

19
chadgh

Sie sollten * In Ihrem URI verwenden und URI-Injektionspunkte erstellen. Also anstatt zu verwenden:

sqlmap.py -u "website.com/script/paramrewrited1/paramrewrited2"

verwenden:

sqlmap.py -u "website.com/script/paramrewrited1*/paramrewrited2*"

Weitere Verwendungsoptionen finden Sie unter sqlmap wiki . Von dieser Seite:

URI-Injektionspunkt

Es gibt Sonderfälle, in denen der Injektionspunkt innerhalb des URI selbst liegt. sqlmap führt keinen automatischen Test für URI-Pfade durch, es sei denn, man zeigt manuell darauf. Sie müssen diese Injection-Punkte in der Befehlszeile angeben, indem Sie nach jedem URI-Punkt, auf den sqlmap eine SQL-Injection testen und ausnutzen soll, ein Sternchen (*) Anhängen.

Dies ist besonders nützlich, wenn beispielsweise das Modul mod_rewrite des Apache-Webservers oder andere ähnliche Technologien verwendet werden.

Ein Beispiel für eine gültige Befehlszeile wäre:

$ python sqlmap.py -u "http://targeturl/param1/value1*/param2/value2/"
24
dz.

Wenn ich Ihre Frage verstehe, glaube ich, dass sqlmap nicht für diese Situation ausgelegt ist (wenn der Webserver nicht den Webstandards für die Darstellung von Anforderungsparametern folgt). Ich kann mir also einige Optionen vorstellen:

  1. Deaktivieren Sie das Umschreiben von URLs. Deaktivieren Sie vorübergehend das Umschreiben von Anforderungsparametern auf Ihrem Webserver (sofern dies auf einfache Weise möglich ist), damit Sie sqlmap ausführen können.

  2. Try POST Anfragen. Sie haben uns gezeigt, dass Ihr Webserver Anforderungsparameter für GET-Anforderungen nicht standardmäßig codiert. Wie codiert er Anforderungsparameter für POST Anfragen? Wenn es Webserver-Codierungsanforderungsparameter auf eine standardisiertere Weise übermittelt und wenn auf jede Anfrage sowohl über GET als auch POST (eine Fehlkonfiguration, aber eine häufige) zugegriffen werden kann) Erstens können Sie Ihren Server testen, indem Sie POST Anfragen anstelle von GET-Anfragen senden. Siehe --data Option zu sqlmap.

  3. Verwenden Sie ein anderes Tool. Suchen Sie nach einem anderen Tool, da sqlmap nicht für diesen speziellen Fall entwickelt zu sein scheint.

  4. Ändern Sie sqlmap. sqlmap ist Open Source. Sie können in den Quellcode eintauchen und ihn erweitern, um den Anwendungsfall zu unterstützen, den Sie sich vorgestellt haben. (Vielleicht möchten Sie sich den Code ansehen, der das -p Option zu sqlmap.) Heck, es ist kostenlos; Sie müssen damit rechnen, dass eine ungewöhnliche Situation möglicherweise noch nicht behoben ist und Sie möglicherweise selbst ein wenig arbeiten müssen. Wenn Sie dieser Route folgen, geben Sie der Community etwas zurück, indem Sie Ihren Code an die sqlmap-Betreuer spenden.

3
D.W.