
ماسح SQLi الصغير للغاية
Damn Small SQLi Scanner (DSSS) هو ماسح ضعف حقن SQL كامل الوظائف (يدعم معاملات GET و POST) مكتوب في أقل من 100 سطر من التعليمات البرمجية.
يدعم ضمن الإعدادات الاختيارية وكيل HTTP (HTTP proxy) إلى جانب قيم ترويسات 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
يتطلب تشغيل هذا البرنامج الإصدار 3.x من Python.
يحتوي الدليل tests على مجموعة اختبارات انحدار تعتمد على المكتبة القياسية فقط. جميع الأهداف محلية: حيث يقدّم خادم HTTP تجريبي مرفق صفحات مبنية بواسطة قاعدة بيانات sqlite3 حقيقية تُدمج استعلاماتها عبر استيفاء النصوص (string interpolation)، لذا فإن عمليات الحقن المكتشفة هناك حقيقية ولا حاجة إلى اتصال بالإنترنت:
$ python3 -m unittest discover -s tests -v
تُتخطى الحالات نفسها مقابل MySQL حقيقي ما لم يتوفر Docker والصورة المطلوبة، بينما يقوم python3 tests/mutations.py بإعادة كل إصدار سابق من dsss.py قبل الإصلاح ويتحقق من أن مجموعة الاختبارات تكتشف ذلك.