当前位置: 代码网 > it编程>数据库>MsSqlserver > SQL注入神器SQLMap参数详解

SQL注入神器SQLMap参数详解

2024年09月11日 MsSqlserver 我要评论
一、介绍sqlmap 是一款用于自动化 sql 注入检测与渗透测试的开源工具,其主要功能是检测和利用 web 应用程序中的 sql 注入漏洞。以下是 sqlmap 的主要特点和功能:自动化检测:sql

一、介绍

sqlmap 是一款用于自动化 sql 注入检测与渗透测试的开源工具,其主要功能是检测和利用 web 应用程序中的 sql 注入漏洞。以下是 sqlmap 的主要特点和功能:

  • 自动化检测:sqlmap 可以自动发现 web 应用程序中的 sql 注入漏洞,包括基于 get 和 post 参数的注入点,以及 cookie 和 http 头部等。

  • 支持多种数据库:sqlmap 支持检测和利用多种类型的数据库,包括 mysql、oracle、sql server、postgresql 等。

  • 综合测试:sqlmap 提供了丰富的测试选项,可以进行盲注、时间延迟注入、报错注入等多种测试方式,以验证注入漏洞的存在性和可利用性。

  • 漏洞利用:sqlmap 能够利用发现的 sql 注入漏洞执行各种操作,包括获取数据库中的数据、读取文件、执行系统命令等。

  • 批量扫描:sqlmap 支持批量扫描,可以同时对多个目标进行检测和利用,提高效率。

  • 细粒度控制:sqlmap 提供了丰富的命令行选项和配置参数,用户可以对扫描和利用过程进行细粒度的控制和定制。

  • 报告生成:sqlmap 能够生成详细的扫描和利用报告,包括发现的漏洞、执行的操作和结果等信息,便于分析和整理。

总的来说,sqlmap 是一款功能强大的 sql 注入工具,可帮助安全研究人员、渗透测试人员和开发人员发现和修复 web 应用程序中的 sql 注入漏洞,从而提高应用程序的安全性。

二、安装 sqlmap

kail linux 默认自带了这款工具,所以只需使用 kail 即可 

三、使用 sqlmap

3.1 查看帮助

sqlmap -h 

参数解析:

基本选项:
-h, --help: 显示基本的帮助信息并退出。
-hh: 显示高级的帮助信息并退出。
--version: 显示程序的版本号并退出。
-v verbose: 设置详细程度级别,范围从 0 到 6,默认是 1。

目标:
-u url, --url=url: 指定目标 url。
-g googledork: 处理 google dork 结果作为目标 url。

请求:
--data=data: 发送的 post 数据字符串。
--cookie=cookie: http cookie 头的值。
--random-agent: 使用随机选择的 http user-agent 头值。
--proxy=proxy: 使用代理连接到目标 url。
--tor: 使用 tor 匿名网络。
--check-tor: 检查 tor 是否被正确使用。

注入:
-p testparameter: 测试的参数。
--dbms=dbms: 强制后端数据库管理系统为提供的值。

检测:
--level=level: 执行测试的级别(1-5,默认是 1)。
--risk=risk: 执行测试的风险级别(1-3,默认是 1)。

技术:
--technique=tech..: 要使用的 sql 注入技术(默认是 "beustq")。

枚举:
-a, --all: 检索所有信息。
-b, --banner: 检索数据库管理系统的 banner。
--current-user: 检索数据库管理系统的当前用户。
--current-db: 检索当前数据库的名称(此参数描述被截断,所以完整功能可能还包括更多内容)。

这些参数提供了 sqlmap 的各种功能和定制选项,使用户能够根据自己的需求执行 sql 注入测试和数据库接管任务。

3.2 高级帮助

sqlmap -hh

3.2.1 目标

至少需要提供以下选项之一来定义目标

-u url, --url=url   目标url(例如:"http://www.site.com/vuln.php?id=1")  
-d direct           用于直接数据库连接的连接字符串  
-l logfile          从burp或webscarab代理日志文件解析目标  
-m bulkfile         扫描文本文件中提供的多个目标  
-r requestfile      从文件中加载http请求  
-g googledork       处理google dork结果作为目标url  
-c configfile       从配置ini文件中加载选项

3.2.2 请求

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

-a agent, --user-agent=agent  设置http user-agent头信息的值  
-h header, --header=header    添加额外的http头信息(例如:"x-forwarded-for: 127.0.0.1")  
--method=method               强制使用指定的http方法(例如:put)  
--data=data                   通过post发送的数据字符串(例如:"id=1")  
--param-del=param_delimiter  用于分隔参数值的字符(例如:&)  
--cookie=cookie               设置http cookie头信息的值(例如:"phpsessid=a8d127e..")  
--cookie-del=cookie_delimiter  用于分隔cookie值的字符(例如:;)  
--live-cookies=live_cookies  用于加载最新值的实时cookies文件  
--load-cookies=load_cookies  包含以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_type         http认证类型(basic, digest, bearer, ...)  
--auth-cred=auth_credentials  http认证凭据(用户名:密码)  
--auth-file=auth_file         http认证pem证书/私钥文件  
--abort-code=abort_code       在遇到(有问题的)http错误代码时中止(例如:401)  
--ignore-code=ignore_code     忽略(有问题的)http错误代码(例如:401)  
--ignore-proxy                忽略系统默认的代理设置  
--ignore-redirects            忽略重定向尝试  
--ignore-timeouts             忽略连接超时  
--proxy=proxy                 使用代理连接到目标url
--proxy-cred=proxycred        设置代理的身份验证凭据(格式:用户名:密码)  
--proxy-file=proxyfile        从文件中加载代理列表  
--proxy-freq=proxyfreq        从给定列表中更换代理之间的请求次数  
--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=safepost          向安全url发送的post数据  
--safe-req=safereq            从文件中加载安全的http请求  
--safe-freq=safefreq          在访问安全url之间的常规请求频率  
--skip-urlencode              跳过有效负载数据的url编码  
--csrf-token=csrftoken        用于存放反csrf令牌的参数  
--csrf-url=csrfurl            提取反csrf令牌的url地址  
--csrf-method=csrfmethod      在访问反csrf令牌页面时使用的http方法  
--csrf-data=csrfdata          在访问反csrf令牌页面时发送的post数据  
--csrf-retries=csrfretries    反csrf令牌检索的重试次数(默认0次)  
--force-ssl                   强制使用ssl/https  
--chunked                     使用http分块传输编码(post)请求  
--hpp                         使用http参数污染方法  
--eval=evalcode               在请求之前评估提供的python代码(例如:"import hashlib;id2=hashlib.md5(id).hexdigest()")

3.2.3 优化

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

-o                  启用所有优化开关  
--predict-output    预测常见查询的输出  
--keep-alive        使用持久的http(s)连接  
--null-connection   在不获取实际http响应体的情况下检索页面长度  
--threads=threads   并发http(s)请求的最大数量(默认为1)

3.2.4 注入

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

-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     使用给定的脚本来篡改注入数据

3.2.5 检测

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

--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             仅当启发式结果为正时,才执行详尽的测试  
--text-only         仅基于文本内容比较页面  
--titles            仅基于标题比较页面

3.2.6 技巧

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

--technique=tech..  要使用的sql注入技术(默认为"beustq")  
--time-sec=timesec  dbms响应的延迟时间(秒)(默认为5)  
--union-cols=ucols  用于union查询sql注入的测试列范围  
--union-char=uchar  用于暴 力 破 解列数的字符  
--union-from=ufrom  union查询sql注入中from部分使用的表  
--union-values=u..  union查询sql注入中使用的列值  
--dns-domain=dns..  dns泄露攻击中使用的域名  
--second-url=sec..  搜索二阶响应的结果页面url  
--second-req=sec..  从文件中加载二阶http请求

3.2.7 指纹

-f, --fingerprint 执行详尽的dbms版本指纹检测

3.2.8 暴力

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

--common-tables     检查常见表的存在性  
--common-columns    检查常见列的存在性  
--common-files      检查常见文件的存在性

3.2.9 用户自定义函数注入

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

--udf-inject        注入自定义用户定义函数  
--shared-lib=shlib  共享库的本地路径

3.2.10 文件系统访问 

这些选项可用于访问后端数据库管理系统的基础文件系统

--file-read=file..  从后端dbms文件系统中读取文件  
--file-write=fil..  在后端dbms文件系统中写入本地文件  
--file-dest=file..  后端dbms要写入的绝对文件路径

3.2.11 枚举

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

-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    从指定的文件(s)中执行sql语句

3.2.12 操作系统访问

这些选项可用于访问后端数据库管理系统底层的操作系统

--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 framework安装的本地路径  
--tmp-path=tmppath  远程临时文件目录的绝对路径

3.2.13 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注册表键值类型

3.2.14 通用选项

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

-s sessionfile      从存储的(.sqlite)文件中加载会话  
-t trafficfile      将所有http流量记录到文本文件中  
--abort-on-empty    在结果为空时中止数据检索  
--answers=answers   设置预定义的答案(例如 "quit=n,follow=n")  
--base64=base64p..  包含base64编码数据的参数  
--base64-safe       使用url和文件名安全的base64字母表(rfc 4648)  
--batch             从不询问用户输入,使用默认行为  
--binary-fields=..  具有二进制值的结果字段(例如 "digest")  
--check-internet    在评估目标之前检查互联网连接  
--cleanup           从dbms中清除sqlmap特定的udf和表  
--crawl=crawldepth  从目标url开始爬取网站  
--crawl-exclude=..  用于从爬取中排除页面的正则表达式(例如 "logout")  
--csv-del=csvdel    csv输出中使用的分隔字符(默认为",")  
--charset=charset   盲注字符集(例如 "0123456789abcdef")  
--dump-file=dump..  将转储数据保存到自定义文件  
--dump-format=du..  转储数据的格式(csv(默认)、html或sqlite)  
--encoding=encod..  用于数据检索的字符编码(例如 gbk)  
--eta               显示每个输出的预计到达时间  
--flush-session     刷新当前目标的会话文件  
--forms             解析并测试目标url上的表单  
--fresh-queries    忽略会话文件中存储的查询结果  
--gpage=googlepage  使用指定页码上的google dork结果  
--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)  
--time-limit=tim..  在指定秒数内运行(例如 3600)  
--web-root=webroot  web服务器文档根目录(例如 "/var/www")

3.2.15 杂项

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

-z mnemonics        使用简短的助记符(例如 "flu,bat,ban,tec=eu")  
--alert=alert       当发现sql注入时,运行主机操作系统命令  
--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参数详解的文章就介绍到这了,更多相关sqlmap 参数内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com