【sqlmap工具】Windows/Linux下载,使用方法、常用命令

举报
黑色地带(崛起) 发表于 2023/02/15 22:51:00 2023/02/15
【摘要】 【sqlmap工具】Windows/Linux下载,使用方法、常用命令

【sqlmap工具】Windows/Linux下载,使用方法、常用命令

目录


一、下载:

1.1、Windows:

1.1.1、官网:

1.1.2、使用方法:

1.2、kali

二、常用命令:

2.1、对指定目标进行默认配置测试

2.2、对指定目标测试间隔设置

2.3、获取并查看数据库信息

2.4、设置测试等级

2.5、其他命令:

2.5.1、Target:(目标)

2.5.2、Request:(请求)

2.5.3、Optimization:(优化)

2.5.4、Injection:(注入)

2.5.5、Detectiong:(检测)

2.5.6、Techniques:(技术)

2.5.7、Fingerprint:(指纹)

2.5.8、Brute force:(暴力)

2.5.9、File system access:(文件系统访问)

2.5.10、General:(一般的)



一、下载:

1.1、Windows:


1.1.1、官网:

sqlmap: automatic SQL injection and database takeover tool https://sqlmap.org/编辑


1.1.2、使用方法:

在文件夹内打开Windows powershell(或者cmd后进入到文件夹中)

编辑

编辑


每一次使用前都使用python调用sqlmap.py 再加上命令

编辑



1.2、kali

kali 自带sqlmap,使用更简单,避免每次用python运行


个人推荐自己花亿点点钱买个服务器了,去测试

或者在“补天”等漏洞平台,在里面找网站去测试

或者安装Vulhub漏洞靶场        



二、常用命令:

编辑

编辑


2.1、对指定目标进行默认配置测试

①基础:

-u                 指定目标url

--batch          测试过程中, 执行所有默认配置


②错误使用:

sqlmap -u "http://localhost:8080/sqli-labs-master/Less-1/"  --batch

编辑

提供了没有任何获取参数的目标URL

正确例如'http://www.site.com/article.php?id=1'


③可能出现的正常情况:

编辑

all tested parameters do not appear to be injectable. 

所有测试的参数都不是可注射的。


④谨慎测试(一切产生的后果与我无关)

编辑


⑤我的测试

sqlmap -u “保密(URL)”  --batch

 低级操作估计也向我这样试不出来注入点,但是要从基础开始编辑





2.2、对指定目标测试间隔设置


①基础

--delay 设置多久访问一次,请求访问太过频繁可能会被防火墙拦截



②我的测试:

sqlmap -u "保密(URL)" --batch --delay 

编辑



2.3、获取并查看数据库信息


①基础:

--dbs                                        列出全部数据库

--current-db                              列出当前数据库

-D 数据库名 --tables                列出指定数据库的所有表

-D 数据库名 -T 表 --columns   列出指定数据库,指定表里面的所有字段

-D 数据库名 -T 表 -C "字段" --dump   列出指定字段的所有内容


②我的测试

sqlmap -u "保密(URL)" --dbs --batch --delay 5

编辑




2.4、设置测试等级

①基础:

--current-db 列出当前数据库

--level

level有5个等级,默认等级为1

进行Cookie测试时使用--level 2

进行use-agent或refer测试时使用--level 3

进行 host 测试时使用--level 5


②等级提升

编辑

当无法探测到注入点时,就提等级 


③我的测试:

sqlmap -u "保密(URL)"  -level 2 --current-db --batch --delay 5

编辑



2.5、其他命令:

-h                                           显示基本帮助信息

-hh                                         显示高级帮助信息

--version                                显示版本号

-v                                           详细等级(0-6 默认 1)

                                              0:只显示python错误以及重要信息

                                              1:显示信息以及警告

                                              2:显示debug消息

                                              3:显示注入payload

                                              4:显示http请求

                                              5:显示http响应头·

                                              6:显示http响应内容


2.5.1、Target:(目标)

-u                                          指定目标url

-d                                          直接连接数据库

-l                                           从burp代理日志的解析目标

-r                                           从文件中加载http请求

-g                                          从google dork的结果作为目标url

-c                                          从INI配置文件中加载选项


2.5.2、Request:(请求)

-A                                         指定user-agent头

-H                                         额外的header

-method=                              指定HTTP方法(GET/POST)

--data=                                 通过POST提交数据    

--param-del=                        指定参数分隔符

--cookie=                              指定cookie的值

--cookie-del=                        指定cookie分隔符

--drop-set-cookie                  扔掉response中的set-cookie头

--random-agent                    使用随机的user-agent头

--host=                                  设置host头 

--referer=                              指定referer头

--headers=                            额外的headers

--auth-type=                          http认证类型(Basic,NTLM,Digest)

--auith-cred=                         http认证凭证(账号:密码)

--ignore-proxy                       忽略系统代理(常用于扫描本地文件)

--proxy=                                使用代理

--proxy-cred=                        代理认证证书(账号:密码)

--delay=                                 设置延迟时间(两个请求之间)

--timeout=                              超时时来连接前等待(默认 30)

--retries=                                连接超时时重试次数(默认 3)

--randomize=                         随机更改指定的参数的值

--safe-url=                             在测试期间经常访问的URL

--safe-post=                           POST数据发送到安全的URL

--safe-freq=                           两次请求之间穿插一个安全的URL   

--skip-urlencode                    跳过payload数据的URL编码

--chunked                             使用HTTP分块传输加密POST请求

--hpp                                    使用HTTP参数pollution方法(常用于绕过IPS/IDS检测)

--force-ssl                             强制使用SSL/HTTPS

--eval=value                         请求之前提供Python代码(eg:"import hashlib;id2=hashlib.md5(id).hexdigest()")


2.5.3、Optimization:(优化)

-o                                         打开所有优化开关

--predict-output                   预测输出(与--threads不兼容)

--keep-alive                         建立长久的HTTP(S)连接 (与--proxy不兼容)

--null-connection                 空连接

--threads=value                  设置线程(默认 1)


2.5.4、Injection:(注入)

-p                                       指定测试参数

--skip=                               跳过指定参数的测试

--skip-static                        跳过测试静态的参数

--dbms=                             指定具体DBMS

--os=                                  指定DBMS操作系统

--invalid-bignum                使用大数字使值无效

--invalid-logical                  使用逻辑符使值无效

--invalid-string                   使用字符串使值无效

--no-cast                             关闭payload铸造机制

--no-escape                       关闭字符转义机制(默认自动开启)

--prefix=                             加入payload前缀

--suffix=                              加入payload后缀

--tamper=                          指定使用的脚本


2.5.5、Detectiong:(检测)

--level=                              指定测试的等级(1-5 默认为1)

--risk=                               指定测试的风险(0-3 默认为1)

--string=                            登录成功时,页面所含有的“关键字” 用于证明已经登录成功

--not-string=                      登录成功时,页面所含有的“关键字” 用于证明已经登录失败

--code=                             查询为真时,匹配的HTTP代码

--smart                              当有大量检测目标时,只选择基于错误的检测结果

--text-only                         仅基于文本内容比较网页

--titles                               仅基于标题比较网页


2.5.6、Techniques:(技术)

--technique=                      指定sql注入技术(默认BEUSTQ)

--time-sec=                        基于时间注入检测相应的延迟时间(默认为5秒)

--union-clos=                     进行查询时,指定列的范围

--union-char=                    指定暴力破解列数的字符


2.5.7、Fingerprint:(指纹)

-f                                      查询目标DBMS版本指纹信息

Emuneration

-a                                    查询所有  

-b                                    查询目标DBMS banner信息

--current-user                 查询目标DBMS当前用户

--current-db                    查询目标DBMS当前数据库

--is-dba                          查询目标DBMS当前用户是否为DBA

--users                            枚举目标DBMS所有的用户

--paswords                     枚举目标DBMS用户密码哈希值

--privileges                     枚举目标DBMS用户的权限

--roles                            枚举DBMS用户的角色

--dbs                              枚举DBMS所有的数据库

--tables                          枚举DBMS数据库中所有的表

--columns                      枚举DBMS数据库表中所有的列

--count                         检索表的条目的数量

--dump                         存储DBMS数据库的表中的条目

--dump-all                     存储DBMS所有数据库表中的条目

--D db                          指定进行枚举的数据库名称

--T   table                     指定进行枚举的数据库表名称

--C   column                 指定进行枚举的数据库列名称

--exclude-sysdbs          枚举表时排除系统数据库

--sql-query                    指定查询的sql语句

--sql-shell                     提示输入一个交互式sql shell


2.5.8、Brute force:(暴力)

--common-tables                       暴力破解表 

--common-colomns                    暴力破解列


2.5.9、File system access:(文件系统访问)

--file-read                            从目标数据库管理文件系统读取文件

--file-write                           上传文件到目标数据库管理文件系统

--file-dest                             指定写入文件的绝对路径

--os-cmd=                           执行操作系统命令

--os-shell                            交互式的系统shell

--os-pwn                             获取一个OOB shell,Meterpreter或者VNC

--os-smbrelay                    一键 获取一个OOB shell,Meterpreter或者VNC

--os-bof                              储存过程缓冲区溢出利用

--os-esc                              数据库进程用户权限提升

--msf-path=                        Metasploit  Framework本地安装路径


2.5.10、General:(一般的)

-s                                     sqlite会话文件保存位置

-t                                      记录所有HTTP流量到指定文件中

--batch                             测试过程中, 执行所有默认配置

--charset=v                      强制用于数据检索的字符编码 

--crawl=                           从目标URL开始爬取网站

--crawl-exclude=              禁止爬取某个页面(eg:logout)

--csv-del=                        指定CSV输出中使用的的字符

--dump-format=               储存数据的方式(CSV(default),HTML,SQLITE)

--flush-session                 刷新当前目标的会话文件

--fresh-queries                 忽略会话文件中储存的查询结果,重新查询

--hex                                使用DBMS hex函数进行数据检索

--outpout-dir=                  自定义输出目录

--save=                            保存选项到INI配置文件中

--scope=                          使用正则表达式从提供的日志中guo'l

--alert                               再找到SQL注入时运行主机操作系统命令

--purge-output                  安全的从输出目录中删除所有内容

--sqlmap-shell                  提示输入交互式sqlmap  shell

--update                           更新sqlmap

sqlmap注入技术简介
--technique=     (默认全部使用)

B       基于布尔的盲注

T       基于时间的盲注

E      基于报错的注入

U      基于UNION查询注入

S      基于多语句查询注入

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。