/sqlmap

Automatic SQL injection and database takeover tool

Primary LanguagePython

Introduction

sqlmap is an open source penetration testing tool that automates the process of detecting and exploiting SQL injection flaws and taking over of database servers. It comes with a powerful detection engine, many niche features for the ultimate penetration tester and a broad range of switches lasting from database fingerprinting, over data fetching from the database, to accessing the underlying file system and executing commands on the operating system via out-of-band connections.

Features

  • Full support for MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase and SAP MaxDB database management systems.
  • Full support for six SQL injection techniques: boolean-based blind, time-based blind, error-based, UNION query, stacked queries and out-of-band.
  • Support to directly connect to the database without passing via a SQL injection, by providing DBMS credentials, IP address, port and database name.
  • Support to enumerate database users, users' password hashes, users' privileges, users' roles, databases, tables and columns.
  • Automatic recognition of password hash formats and support for cracking them using a dictionary-based attack.
  • Support to dump database tables entirely, a range of entries or specific columns as per user's choice. The user can also choose to dump only a range of characters from each column's entry.
  • Support to search for specific database names, specific tables across all databases or specific columns across all databases' tables. This is useful, for instance, to identify tables containing custom application credentials where relevant columns' names contain string like name and pass.
  • Support to download and upload any file from the database server underlying file system when the database software is MySQL, PostgreSQL or Microsoft SQL Server.
  • Support to execute arbitrary commands and retrieve their standard output on the database server underlying operating system when the database software is MySQL, PostgreSQL or Microsoft SQL Server.
  • Support to establish an out-of-band stateful TCP connection between the attacker machine and the database server underlying operating system. This channel can be an interactive command prompt, a Meterpreter session or a graphical user interface (VNC) session as per user's choice.
  • Support for database process' user privilege escalation via Metasploit's Meterpreter getsystem command.

Download

You can download the latest tarball by clicking here.

Preferably, you can download sqlmap by cloning the Git repository:

git clone https://github.com/sqlmapproject/sqlmap.git sqlmap-dev

This is strongly recommended before reporting any bug to the mailing list.

Documentation

  • sqlmap user's manual.
  • sqlmap ChangeLog.
  • SQL injection: Not only AND 1=1 slides presented by Bernardo at the 2nd Digital Security Forum in Lisbon (Portugal) on June 27th, 2009.
  • Advanced SQL injection to operating system full control whitepaper and slides presented by Bernardo at Black Hat Europe 2009 in Amsterdam (The Netherlands) on April 16th, 2009.
  • Expanding the control over the operating system from the database slides presented by Bernardo at SOURCE Conference 2009 in Barcelona (Spain) on September 21st, 2009.
  • Got database access? Own the network! slides presented by Bernardo at AthCon 2010 in Athens (Greece) on June 3rd, 2010.
  • sqlmap - security development in python slides presented by Miroslav at EuroPython 2011 in Firenze (Italy) on June 23rd, 2011.
  • It all starts with the ' (SQL injection from attacker's point of view) slides presented by Miroslav at FSec - FOI Security Symposium in Varazdin (Croatia) on September 23rd, 2011.
  • DNS exfiltration using sqlmap slides and accompanying whitepaper titled Data Retrieval over DNS in SQL Injection Attacks presented by Miroslav at PHDays 2012 in Moscow (Russia) on May 31st, 2012.

Mailing list

The sqlmap-users@lists.sourceforge.net mailing list is the preferred way to ask questions, report bugs, suggest new features and discuss with other users, contributors and the developers. To subscribe use the online web form. The mailing list is archived online on SourceForge, Gmane and is available also via Gmane RSS feed.

Developers

Bernardo Damele A. G. - @inquisb
Miroslav Stampar - @stamparm

You can contact the development team by writing to dev@sqlmap.org.

Contribute

We are constantly seeking for people who can write some clean Python code, are up to do security research, know about web application security, database assessment and takeover, software refactoring and are motivated to join the development team.

If this sounds interesting to you, send us your pull requests!

Donate

sqlmap is the result of numerous hours of passionated work from a small team of computer security enthusiasts. If you appreciated our work and you want to see sqlmap kept being developed, please consider making a small donation to our efforts.

License

sqlmap is released under the terms of the General Public License v2.
sqlmap is copyrighted by its developers.