
Damn Small SQLi Scanner
Damn Small SQLi Scanner (DSSS) ist ein voll funktionsfähiger SQL-Injection-Schwachstellenscanner (unterstützt GET- und POST-Parameter), geschrieben in unter 100 Codezeilen.
Als optionale Einstellungen unterstützt es einen HTTP-Proxy zusammen mit den HTTP-Header-Werten User-Agent, Referer und Cookie.
$ python3 dsss.py -h
Damn Small SQLi Scanner (DSSS) < 100 LoC (Lines of Code) #v0.4b
by: Miroslav Stampar (@stamparm)
Usage: dsss.py [options]
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-u URL, --url=URL Target URL (e.g. "http://www.target.com/page.php?id=1")
--data=DATA POST data (e.g. "query=test")
--cookie=COOKIE HTTP Cookie header value
--user-agent=UA HTTP User-Agent header value
--referer=REFERER HTTP Referer header value
--proxy=PROXY HTTP proxy address (e.g. "http://127.0.0.1:8080")
$ python3 dsss.py -u "https://sekumart.sekuripy.hr/product.php?id=1"
Damn Small SQLi Scanner (DSSS) < 100 LoC (Lines of Code) #v0.4b
by: Miroslav Stampar (@stamparm)
* scanning GET parameter 'id'
(i) GET parameter 'id' appears to be blind SQLi vulnerable (e.g.: 'https://sekumart.sekuripy.hr/product.php?id=1%20AND%2069%3D69')
scan results: possible vulnerabilities found
Python Version 3.x ist erforderlich, um dieses Programm auszuführen.
Das Verzeichnis tests enthält eine Regressionstest-Suite, die nur die Standardbibliothek verwendet. Alle Ziele sind lokal: Ein mitgeliefertes HTTP-Fixture liefert Seiten aus, die von einer echten sqlite3-Datenbank erzeugt werden, deren Abfragen per String-Interpolation zusammengesetzt werden, sodass die dort gefundenen Injektionen echt sind und kein Internetzugang benötigt wird:
$ python3 -m unittest discover -s tests -v
Dieselben Testfälle gegen ein echtes MySQL werden übersprungen, sofern nicht Docker und das Image verfügbar sind, während python3 tests/mutations.py jede Vor-Fix-Version von dsss.py wiederherstellt und prüft, ob die Suite dies bemerkt.