[工具使用] 【干货】sqlmap常用命令整理

【干货】sqlmap常用命令整理

目录

一、下载:

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 基于多语句查询注入

学习计划安排

我一共划分了六个阶段,但并不是说你得学完全部才能上手工作,对于一些初级岗位,学到第三四个阶段就足矣~

这里我整合并且整理成了一份【282G】的网络安全从零基础入门到进阶资料包,需要的小伙伴可以扫描下方CSDN官方合作二维码免费领取哦,无偿分享!!!

如果你对网络安全入门感兴趣,那么你需要的话可以

点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

①网络安全学习路线
②上百份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥HW护网行动经验总结
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

中国红客联盟公众号

联系站长QQ:5520533

admin@chnhonker.com
Copyright © 2001-2026 Discuz Team. Powered by Discuz! X3.5 ( 粤ICP备13060014号 )|天天打卡 本站已运行