sql注入工具:sqlmap入门命令使用详解说明

sql注入工具:sqlmap入门命令使用详解说明

前言

帮助初学者使用sqlmap注入工具,便于快速掌握及理解sqlmap工具,同时也是一个sql帮助命令手册。提供示例及说明。如何在windows/mac中安装可自行查找。本次使用环境是kali来演示操作使用。

提示说明:

本文章仅用于信息安全教学,请遵守相关法律法规,严禁用于非法途径。若观众因此作出任何危害网络安全的行为,后果自负,与UP主无关。遵纪守法做一个良好公民,切勿违法国家计算机安全法,以免牢底坐穿。

工具介绍

sqlmap 是一个开源渗透测试工具,它可以自动检测和利用 SQL 注入漏洞并接管数据库服务器。它具有强大的检测引擎,同时有众多功能,包括数据库指纹识别、从数据库中获取数据、访问底层文件系统以及在操作系统上带内连接执行命令。

工具使用

使用格式:

python3 sqlmap [options]

如在kali中,则不用加上python , windows 则需要加上对应的python.

帮助命令:

sqlmap -h

命令将会输出英文帮助信息

sql注入工具:sqlmap入门命令使用详解说明

常见命令实用说明

sqlmap 使用很简单,命令是结合起来使用的。现在假设我们有一个url,我们想检测是否有sql漏洞,可以输入命令:

sqlmap -u www.xxx.com?name=hellosql

其中命令:-u (url) 即为url 需要检测的路径。回车运行可查看结果。

成功结果示例:

成功将会返回注入成功的参数列表如下:

sql注入工具:sqlmap入门命令使用详解说明

注入失败结果示例:

sql注入工具:sqlmap入门命令使用详解说明

例如,我们要查看数据库:test 里面的表 user 有什么属性(字段),从帮助文档得知:

搜索列,表和/或数据库名称

-D

指定要进行枚举的指定数据库名

-T

因此只需要输入:

sqlmap -u www.xxx.com -D test -T user --columns

即可列出 user表的数据信息。其他命令操作也是如同,自个可以举一反三。

命令说明

┌──(parallels㉿kali-linux-2022-2)-[~]
└─$ sqlmap -hh                                                                 
        ___
       __H__
 ___ ___[\']_____ ___ ___  {1.6.6#stable}
|_ -| . [)]     | .\'| . |
|___|_  [,]_|_|_|__,|  _|
      |_|V...       |_|   https://sqlmap.org

Usage: python3 sqlmap [options]

用法:python3 sqlmap [选项]

选项

选项 中文说明
-hh 显示高级帮助信息和退出
–version 显示程序版本号和退出
-v verbosity level(详细级别):0-6(默认值为1

目标:

选项 描述
-u URL 目标URL (例如:”http://www.site.com/vuln.php?id=1″)
–url=URL 目标URL
-d 直接数据库连接的连接字符串
-l LOGFILE 从Burp或WebScarab代理日志文件中解析目标
-m BULKFILE 扫描文本文件中提供的多个目标
-r REQUESTFILE 从文件中加载HTTP请求
-g GOOGLEDORK 将Google搜索结果作为目标URL处理
-c CONFIGFILE 从配置INI文件中加载选项

请求:

这些选项可用于指定如何连接到目标URL

选项 描述
-A AGENT, –user.. HTTP User-Agent头部字段值
-H HEADER, –hea.. 额外头部(例如:”X-Forwarded-For: 127.0.0.1″)
–method=METHOD 强制使用给定的HTTP方法(例如:PUT)
–data=DATA 通过POST发送的数据字符串(例如:”id=1″)
–param-del=PARA.. 分隔参数值的字符(例如:”&”)
–cookie=COOKIE HTTP Cookie头部字段值(例如:”PHPSESSID=a8d127e..”)
–cookie-del=COO.. 分隔Cookie值的字符(例如:”;”)
–live-cookies=L.. 用于加载最新值的实时Cookies文件
–load-cookies=L.. 包含以Netscape/wget格式的Cookies的文件
–drop-set-cookie 忽略响应中的Set-Cookie头部字段
–mobile 通过HTTP User-Agent头部字段模仿智能手机
–random-agent 使用随机选择的HTTP User-Agent头部字段值
–host=HOST HTTP Host头部字段值
–referer=REFERER HTTP Referer头部字段值
–headers=HEADERS 额外头部(例如:”Accept-Language: fr\nETag: 123″)
–auth-type=AUTH.. HTTP身份验证类型(Basic,Digest,Bearer,…)
–auth-cred=AUTH.. HTTP身份验证凭据(名称:密码)
–auth-file=AUTH.. HTTP身份验证PEM证书/私钥文件
–ignore-code=IG.. 忽略(有问题的)HTTP错误代码(例如:401)
–ignore-proxy 忽略系统默认代理设置
–ignore-redirects 忽略重定向尝试
–ignore-timeouts 忽略连接超时
–proxy=PROXY 使用代理连接到目标URL
–proxy-cred=PRO.. 代理身份验证凭据(name:password)
–proxy-file=PRO.. 从文件中加载代理列
–proxy-freq=PRO.. 代理列表之间的请求更改
–tor 使用Tor匿名网络
–tor-port=TORPORT 设置Tor代理端口(默认为其他端口)
–tor-type=TORTYPE 设置Tor代理类型(HTTP、SOCKS4或SOCKS5(默认))
–check-tor 检查Tor是否正确使用
–delay=DELAY 每个HTTP请求之间的延迟(以秒为单位)
–timeout=TIMEOUT 连接超时之前的等待时间(秒)(默认30秒)
–retries=RETRIES 连接超时时重试次数(默认3次)
–retry-on=RETRYON 重试请求的正则表达式匹配内容(例如“drop”)
–randomize=RPARAM 随机更改给定参数的值
–safe-url=SAFEURL 在测试期间经常访问的URL地址
–safe-post=SAFE.. 发送POST数据到安全URL
–safe-req=SAFER.. 从文件中加载安全的HTTP请求
–safe-freq=SAFE.. 经常访问安全URL的常规请求
–skip-urlencode 跳过有效载荷数据的URL编码
–csrf-token=CSR.. 保存CSRF令牌的参数
–csrf-url=CSRFURL 访问以提取CSRF令牌的URL地址
–csrf-method=CS.. 访问CSRF令牌页面的HTTP方法
–csrf-retries=C.. CSRF令牌检索的重试次数(默认0)
–force-ssl 强制使用SSL/HTTPS
–chunked 使用HTTP分块传输编码(POST)请求
–hpp 使用HTTP参数污染方法
–eval=EVALCODE 在请求之前评估提供的Python代码(例如“import hashlib;id2=hashlib.md5(id).hexdigest()”)

优化

这些选项可用于优化sqlmap的性能

选项 描述
-o 开启所有优化开关
–predict-output 预测常见查询的输出
–keep-alive 使用持久的 HTTP(s) 连接
–null-connection 获取页面长度而不实际发送 HTTP 响应体
–threads=THREADS 最大并发 HTTP(s) 请求数量(默认为 1)

注入:

这些选项可以用于指定要测试的参数,提供自定义注入有效负载和可选篡改脚本

选项 描述
-p TESTPARAMETER 可测试参数
–skip=SKIP 跳过指定参数的测试
–skip-static 跳过静态参数的测试
–param-exclude=.. 用于排除参数的正则表达式(例如:”ses”)
–param-filter=P.. 通过位置选择可测试参数(例如:”POST”)
–dbms=DBMS 后端DBMS强制设置为提供的值
–dbms-cred=DBMS.. DBMS认证凭据(用户名:密码)
–os=OS 后端DBMS操作系统强制设置为提供的值
–invalid-bignum 使用大数字来使值无效
–invalid-logical 使用逻辑运算使值无效
–invalid-string 使用随机字符串使值无效
–no-cast 关闭有效负载的投射机制
–no-escape 关闭字符串转义机制
–prefix=PREFIX 注入有效负载的前缀字符串
–suffix=SUFFIX 注入有效负载的后缀字符串
–tamper=TAMPER 使用给定的脚本来篡改注入数据

检测:

这些选项可用于自定义检测阶段

选项 描述
–level=LEVEL 要执行测试的级别(1-5,默认值:1)
–risk=RISK 要执行测试的风险(1-3,默认值:1)
–string=STRING 当查询结果为True时匹配的字符串
–not-string=NOT.. 当查询结果为False时匹配的字符串
–regexp=REGEXP 当查询结果为True时匹配的正则表达式
–code=CODE 当查询结果为True时匹配的HTTP代码
–smart 仅在积极的启发式(s)时执行彻底的测试
–text-only 仅根据文本内容比较页面
–titles 仅根据标题比较页面

技术:

这些选项可用于调整特定SQL注入的测试

选项 描述
–technique=TECH.. 要使用的SQL注入技术(默认为“BEUSTQ”)
–time-sec=TIMESEC 延迟DBMS响应的秒数(默认值:5)
–union-cols=UCOLS 用于测试UNION查询SQL注入的列范围
–union-char=UCHAR 用于暴力破解列数的字符
–union-from=UFROM 用于UNION查询SQL注入的FROM部分的表
–dns-domain=DNS.. DNS渗漏攻击中使用的域名
–second-url=SEC.. 搜索二级响应的页面URL
–second-req=SEC.. 从文件加载二级HTTP请求

指纹

选项 描述
-f 进行广泛的DBMS版本指紋(fingerprint)

枚举:

这些选项可用于枚举后端数据库管理系统信息、结构和包含在表

选项 描述
-a, –all 检索一切
-b, –banner 检索DBMS横幅
–current-user 检索DBMS当前用户
–current-db 检索DBMS当前数据库
–hostname 检索DBMS服务器主机名
–is-dba 检测DBMS当前用户是否为DBA
–users 枚举DBMS用户
–passwords 枚举DBMS用户的密码哈希值
–privileges 枚举DBMS用户的权限
–roles 枚举DBMS用户的角色
–dbs 枚举DBMS数据库
–tables 枚举DBMS数据库表
–columns 枚举DBMS数据库表列
–schema 枚举DBMS模式
–count 检索表中的条目数
–dump 转储DBMS数据库表中的条目
–dump-all 转储所有DBMS数据库表的条目
–search 搜索列、表和/或数据库名称
–comments 在枚举期间检查DBMS注释
–statements 检索在DBMS上运行的SQL语句
-D DB 要枚举的DBMS数据库
-T TBL 要枚举的DBMS数据库表
-C COL 要枚举的DBMS数据库表列
-X EXCLUDE 不枚举的DBMS数据库标识符
-U USER 要枚举的DBMS用户
–exclude-sysdbs 枚举表时排除DBMS系统数据库
–pivot-column=P.. 枢轴列名称
–where=DUMPWHERE 转储表时使用WHERE条件
–start=LIMITSTART 要检索的第一个转储表条目
–stop=LIMITSTOP 要检索的最后一个转储表条目
–first=FIRSTCHAR 要检索的第一个查询输出单词字符
–last=LASTCHAR 要检索的最后一个查询输出单词字符
–sql-query=SQLQ.. 要执行的SQL语句
–sql-shell 提示交互式SQL shell
–sql-file=SQLFILE 从给定文件执行SQL语句

蛮力:

这些选项可用于运行暴力检查

选项 描述
–common-tables 检查普通表是否存在
–common-columns 检查普通列是否存在
–common-files 检查普通文件是否存在

用户定义的功能注入:

这些选项可用于创建自定义的用户定义函数

选项 描述
–udf-inject 注入自定义用户定义的功能
–shared-lib=SHLIB 共享库的本地路径

文件系统访问:

这些选项可用于访问后端数据库管理

系统基础文件系统

选项 描述
–file-read=FILE.. 从后端DBMS文件系统中读取文件
–file-write=FIL.. 在后端DBMS文件系统中写入本地文件
–file-dest=FILE.. 后端DBMS的绝对路径文件要写入的文件路径

操作系统访问

这些选项可用于访问后端数据库管理

系统底层操作系统

选项 描述
–os-cmd=OSCMD 执行操作系统命令
–os-shell 提示交互式操作系统shell
–os-pwn 提示OOB shell、Meterpreter或VNC
–os-smbrelay 单击提示OOB shell、Meterpreter或VNC
–os-bof 存储过程缓冲区溢出利用
–priv-esc 数据库进程用户特权提升
–msf-path=MSFPATH Metasploit框架安装的本地路径
–tmp-path=TMPPATH 远程临时文件目录的绝对路径

Windows注册表访问:

这些选项可用于访问后端数据库管理

系统Windows注册表

选项 描述
–reg-read 读取Windows注册表键值
–reg-add 写入Windows注册表键值数据
–reg-del 删除Windows注册表键值
–reg-key=REGKEY Windows注册表键
–reg-value=REGVAL Windows注册表键值
–reg-data=REGDATA Windows注册表键值数据
–reg-type=REGTYPE Windows注册表键值类型

概述:

这些选项可用于设置一些通用工作参数

选项 描述
-s SESSIONFILE 从存储的(.sqlite)文件加载会话
-t TRAFFICFILE 将所有HTTP流量记录到文本文件
–answers=ANSWERS 预设答案(例如:”quit=N,follow=N”)
–base64=BASE64P.. 包含Base64编码数据的参数
–base64-safe 使用URL和文件名安全Base64字母表(RFC 4648)
–batch 不询问用户输入,使用默认行为
–binary-fields=.. 结果字段具有二进制值(例如:”digest”)
–check-internet 在评估目标之前检查Internet连接
–cleanup 从sqlmap特定UDF和表中清理DBMS
–crawl=CRAWLDEPTH 从目标URL开始爬取网站
–crawl-exclude=.. 用于排除爬取页面的正则表达式(例如:”logout”)
–csv-del=CSVDEL CSV输出中使用的分隔符字符(默认为逗号)
–charset=CHARSET 盲注SQL注入字符集(例如:”0123456789abcdef”)
–dump-format=DU.. 转储数据的格式(CSV(默认值),HTML或SQLITE)
–encoding=ENCOD.. 数据检索所使用的字符编码(例如:”GBK”)
–eta 显示每个输出的到达时间估计值
–flush-session 清除当前目标文件的会话文件
–forms 解析和测试目标URL上的表单
–fresh-queries 忽略会话文件中存储的查询结果
–gpage=GOOGLEPAGE 使用指定页码的Google搜索结果进行搜索
–har=HARFILE 将所有HTTP流量记录到HAR文件中
–hex 在数据检索期间使用十六进制转换
–output-dir=OUT.. 自定义输出目录路径
–parse-errors 解析并显示响应中的 DBMS 错误信息
–preprocess=PRE.. 使用给定脚本来进行预处理(请求)
–postprocess=PO.. 使用给定脚本来进行后处理(响应)
–repair 转储具有未知字符标记(?)的条目
–save=SAVECONFIG 将选项保存到配置 INI 文件
–scope=SCOPE 用于过滤目标的正则表达式
–skip-heuristics 跳过漏洞的启发式检测
–skip-waf 跳过 WAF/IPS 保护的启发式检测
–table-prefix=T.. 用于临时表的名称前缀(默认为:”sqlmap”)
–test-filter=TE.. 通过有效载荷和/或标题选择测试(例如:ROW)
–test-skip=TEST.. 跳过测试的有效载荷和/或标题(例如:BENCHMARK)
–web-root=WEBROOT Web 服务器文档根目录(例如:”/var/www”)

其他:

这些选项不属于任何其他类别

选项 描述
-z MNEMONICS 使用简短助记符(例如:”flu,bat,ban,tec=EU”)
–alert=ALERT 找到 SQL 注入时运行主机 OS 命令(S)
–beep 在问题和/或漏洞被发现时发出蜂鸣声
–dependencies 检查缺少的(可选)sqlmap 依赖项
–disable-coloring 禁用控制台输出着色
–list-tampers 显示可用的篡改脚本列表
–no-logging 禁用日志记录到文件
–offline 在脱机模式下工作(仅使用会话数据)
–purge 安全地删除 sqlmap 数据目录中的所有内容
–results-file=R.. 多个目标模式下 CSV 结果文件的存储位置
–shell 提示交互式 sqlmap shell
–tmp-dir=TMPDIR 用于存储临时文件的本地目录
–unstable 调整不稳定连接的选项
–update 更新 sqlmap
–wizard 为初学者用户提供简单的向导界面

内容出处:,

声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时修改或删除。文章链接:http://www.yixao.com/soft/30777.html

发表评论

登录后才能评论