A comprehensive graphical user interface for SQLmap - the automatic SQL injection and database takeover tool. This GUI provides an intuitive, user-friendly interface to harness the full power of SQLmap without command-line complexity.
git clone https://github.com/nanragav/SQLmap-GUI.git
cd SQLmap-GUI
pip install -r requirements.txt
# Using apt (Ubuntu/Debian)
sudo apt install sqlmap
# Or download from https://sqlmap.org/
./start_gui.sh
# or
python3 main.py
http://example.com/page.php?id=1
)The SQLmap GUI is organized into 15 specialized tabs, each handling different aspects of SQL injection testing:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β File Tools Help [New] [Open] [Save] [Start] [Stop] [Validate] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Target β Request β Injection β Detection β Techniques β ... β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Target URL: http://example.com/page.php?id=1 β
β Method: GET Data: Cookie: β
β User-Agent: Mozilla/5.0... Host: example.com β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β SQLmap Command: β
β sqlmap -u "http://example.com/page.php?id=1" --batch β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β [14:32:15] Starting SQL injection scan... β
β [14:32:16] Testing for SQL injection... β
β [14:32:17] SQL injection vulnerability found! β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Memory: 45.2 MB CPU: 12.3% β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Configure target specifications and connection details.
Key Options:
HTTP request customization and optimization.
Key Options:
SQL injection payload configuration.
Key Options:
SQL injection detection parameters.
Key Options:
Injection technique selection.
Key Options:
Database structure and data extraction.
Key Options:
Database fingerprinting and identification.
Dictionary-based attacks and common name enumeration.
User-defined function injection.
File system access and manipulation.
Operating system command execution.
Windows registry access (Windows targets only).
General SQLmap configuration and behavior.
Additional advanced options.
Experimental and advanced features.
# Target: http://example.com/product.php?id=1
# GUI Configuration:
# - Target Tab: URL = http://example.com/product.php?id=1
# - Detection Tab: Level = 3, Risk = 2
# - Techniques Tab: Boolean-based, Error-based, UNION-based
# - Enumeration Tab: Databases, Tables, Columns
Generated Command:
sqlmap -u "http://example.com/product.php?id=1" --level=3 --risk=2 --technique=BEU --dbs --tables --columns --batch
# Target: Vulnerable login form
# GUI Configuration:
# - Target Tab: URL = http://example.com/login.php, Method = POST, Data = username=admin&password=test
# - Request Tab: User-Agent = Custom, Timeout = 10
# - Injection Tab: DBMS = MySQL, Tamper = space2comment
# - Enumeration Tab: Dump all data from users table
Generated Command:
sqlmap -u "http://example.com/login.php" --method=POST --data="username=admin&password=test" --dbms=mysql --tamper=space2comment --dump -T users --batch
# GUI Configuration:
# - Request Tab: Tor = Enabled, Tor Port = 9050
# - Target Tab: URL = http://example.com/vuln.php?id=1
# - General Tab: Batch = Enabled
Generated Command:
sqlmap -u "http://example.com/vuln.php?id=1" --tor --tor-port=9050 --batch
SqlmapMainWindow
Main application window containing all GUI components.
Methods:
get_options()
: Collect all options from all tabsvalidate_options()
: Validate current configurationstart_scan()
: Begin SQL injection testingsave_profile()
: Save current configurationload_profile()
: Load saved configurationSqlmapWrapper
Handles SQLmap command generation and execution.
Methods:
build_command(options)
: Generate SQLmap command from GUI optionsvalidate_options(options)
: Check option compatibilitycreate_process(options)
: Start SQLmap processMutualExclusionManager
Manages conflicting option combinations.
Methods:
register_option(name, widget)
: Register option for conflict checkingupdate_option_state(name, value)
: Update option state and check conflictsEach tab contains multiple OptionGroup
instances that handle:
Error: ModuleNotFoundError: No module named 'PyQt6'
Solution:
pip install PyQt6 PyQt6-Qt6
Error: sqlmap: command not found
Solution:
# Install via package manager
sudo apt install sqlmap
# Or download from https://sqlmap.org/
Symptoms: GUI is slow, unresponsive, or hanging Solutions:
Solutions:
Access debug information via:
We welcome contributions! Please see our Contributing Guide for details.
git clone https://github.com/nanragav/SQLmap-GUI.git
cd SQLmap-GUI
python3 -m venv venv
source venv/bin/activate # Linux/Mac
# or
venv\Scripts\activate # Windows
pip install -r requirements.txt
pip install -r requirements-dev.txt
python -m pytest
src/
βββ gui/
β βββ main_window.py # Main application window
β βββ main.py # Application entry point
β βββ widgets/ # Custom GUI components
β β βββ custom_widgets.py
β β βββ __init__.py
β βββ tabs/ # Configuration tabs
β βββ base_tab.py
β βββ target_tab.py
β βββ request_tab.py
β βββ ...
βββ core/ # Core functionality
β βββ config_manager.py
β βββ sqlmap_wrapper.py
β βββ mutual_exclusion_manager.py
βββ utils/
βββ config.py
This project is licensed under the MIT License - see the LICENSE file for details.
This tool is for educational and authorized security testing purposes only. Users are responsible for complying with applicable laws and regulations. Unauthorized use of this tool may violate laws in your jurisdiction.
Happy SQL Injection Testing! ππ‘οΈ
For questions, issues, or contributions, please visit our GitHub repository.