
Damn Small SQLi Scanner
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를 되돌려 놓고 테스트 모음이 이를 감지하는지 확인합니다.