Damn Small SQLi Scanner(DSSS)是一个功能完整的 SQL 注入 漏洞扫描器(支持 GET 和 POST 参数),代码量不到 100 行。
作为可选设置,它支持 HTTP 代理以及 HTTP 头字段 User-Agent、Referer 和 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 3.x 版本。
tests 目录包含一个仅使用标准库的回归测试套件。所有目标均为本地目标:一个内置的 HTTP 测试夹具提供由真实 sqlite3 数据库构建的页面,其查询采用字符串插值,因此其中发现的注入是真实的,且无需访问互联网:
$ python3 -m unittest discover -s tests -v
针对真实 MySQL 的相同测试用例会被跳过,除非 Docker 及相应镜像可用;而 python3 tests/mutations.py 会逐一还原每个修复前版本的 dsss.py,并检查测试套件能否发现问题。