
Damn Small SQLi Scanner
Damn Small SQLi Scanner (DSSS) es un escáner de vulnerabilidades de inyección SQL totalmente funcional (compatible con parámetros GET y POST) escrito en menos de 100 líneas de código.
Como ajustes opcionales, admite proxy HTTP junto con los valores de encabezado HTTP User-Agent, Referer y 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
Se requiere Python versión 3.x para ejecutar este programa.
El directorio tests contiene una suite de regresión que solo usa la biblioteca estándar. Todos los objetivos son locales: un fixture HTTP incluido sirve páginas construidas por una base de datos sqlite3 real cuyas consultas se interpolan como cadenas, por lo que las inyecciones encontradas allí son genuinas y no se necesita acceso a Internet:
$ python3 -m unittest discover -s tests -v
Los mismos casos contra un MySQL real se omiten a menos que Docker y la imagen estén disponibles, mientras que python3 tests/mutations.py restaura cada versión previa a la corrección de dsss.py y comprueba que la suite lo detecta.