Skip to content

Latest commit

 

History

127 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Damn Small SQLi Scanner Python 3.x License

Damn Small SQLi Scanner (DSSS) is a fully functional SQL injection vulnerability scanner (supporting GET and POST parameters) written in under 100 lines of code.

Vulnerable

As of optional settings it supports HTTP proxy together with HTTP header values User-Agent, Referer and Cookie.

Sample runs

$ 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 "http://testphp.vulnweb.com/artists.php?artist=1"
Damn Small SQLi Scanner (DSSS) < 100 LoC (Lines of Code) #v0.4b
 by: Miroslav Stampar (@stamparm)

* scanning GET parameter 'artist'
 (i) GET parameter 'artist' appears to be error SQLi vulnerable (MySQL)
 (i) GET parameter 'artist' appears to be blind SQLi vulnerable (e.g.: 'http://t
estphp.vulnweb.com/artists.php?artist=1%20AND%2061%3D61')

scan results: possible vulnerabilities found

Requirements

Python version 3.x is required for running this program.

Tests

The tests directory holds a stdlib-only regression suite. All targets are local: a bundled HTTP fixture serves pages built by a real sqlite3 database whose queries are string interpolated, so the injections found there are genuine and no Internet access is needed:

$ python3 -m unittest discover -s tests -v

The same cases against a real MySQL are skipped unless Docker and the image are available, while python3 tests/mutations.py puts each pre-fix version of dsss.py back and checks that the suite notices.

About

Damn Small SQLi Scanner

Resources

Stars

877 stars

Watchers

30 watching

Forks

Releases

Packages

Used by

Contributors

Languages