freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

sql注入工具:sqlmap 入门命令使用详解说明
2023-06-15 18:45:44
所属地 广西

前言

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

提示说明:

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

工具介绍

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

工具使用

使用格式:

python3 sqlmap [options]

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

帮助命令:

sqlmap -h

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

常见命令实用说明

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

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

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

成功结果示例:

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

注入失败结果示例:

例如,我们要查看数据库: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显示程序版本号和退出
-vverbosity 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=COOKIEHTTP 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=HOSTHTTP Host头部字段值
--referer=REFERERHTTP 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=MSFPATHMetasploit框架安装的本地路径
--tmp-path=TMPPATH远程临时文件目录的绝对路径

Windows注册表访问:

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

系统Windows注册表

选项描述
--reg-read读取Windows注册表键值
--reg-add写入Windows注册表键值数据
--reg-del删除Windows注册表键值
--reg-key=REGKEYWindows注册表键
--reg-value=REGVALWindows注册表键值
--reg-data=REGDATAWindows注册表键值数据
--reg-type=REGTYPEWindows注册表键值类型

概述:

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

选项描述
-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=CSVDELCSV输出中使用的分隔符字符(默认为逗号)
--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=WEBROOTWeb 服务器文档根目录(例如:"/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为初学者用户提供简单的向导界面


# SQL注入 # SqlMap # Burpsuite sqlmap # sqlmap注入 # sqlmap教程
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录