
Damn Small SQLi Scanner (DSSS) は、100行未満のコードで書かれた、完全に機能する SQLインジェクション 脆弱性スキャナです(GETおよびPOSTパラメータをサポート)。
オプション設定として、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 を元に戻し、スイートがそれを検出するかどうかを確認します。