Sqlmap使用教程

Sqlmap使用教程

Sqlmap简介

注入模式

  • 基于布尔的盲注:可根据返回页面判断条件真假的注入

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

  • 基于报错注入:即页面返回错误信息,或者把注入的语句结构直接返回在页面中

  • 联合查询注入:可以使用union注入

  • 堆查询逐日:可以同时执行多条语句的执行时的注入

常用命令参数

  • -is-dba 当前用户权限(是否为root权限)

  • -dbs 所有数据库

  • -current-db 网站当前数据库

  • -users 所有数据库用户

  • -current-user 当前数据库用户

  • -random-agent 构造随机的user-agent

  • -password 数据库密码

  • -proxy http://local:8080 -threads 10 (可以自定义线程加速)代理

  • -time-sec=TIMESEC DBMS 响应的延迟时间(默认为5秒)

常用选项

Target(目标)

以下至少需要设置其中一个选项

  • -d DIRECT 直接连接到数据库

  • -u url 目标的URL

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

  • -l LIST 从Burp或WebScarab代理的日志中解析目标

  • -r REQUESTFILE 从一个文件中载入HTTP请求

  • -g GOOGLEDORK 处理Google dork的结果作为目标URL

Request(请求)

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

  • -data=DATA 通过post发送的数据字符串

  • -cookie=COOKIE HTTP Cookie头

  • -cookie-urlencode URL编码生成的cookie注入

  • -auth-type=ATYPE HTTP身份验证类型(基本,摘要或NTLM)

  • -auth-cred=ACRED HTTP身份验证凭据(用户名:密码)

  • -auth-cert=ACERT HTTP认证证书(key_file, cert_file)

  • -proxy=PROXY 使用HTTP代理连接到目标URL

  • -proxy-cred=PCRED HTTP代理身份验证凭据(用户名:密码)

Enumeration(枚举)

可以用来列举数据库管理系统的信息、表中的结构和数据

  • -b -bannner 检索数据库管理系统的标识

  • -current-user 检索数据库管理系统当前用户

  • -current-db 检索数据库管理系统当前数据库

  • -is-dba 检测DBMS当前用户是否DBA

  • -users 枚举数据库管理系统用户

  • -passwords 枚举数据库管理系统用户密码哈希

  • -privileges 枚举数据库管理系统用户的权限

  • -roles 枚举数据库管理系统用户的角色

  • -dbs 枚举数据库管理系统数据

  • -D DBname 要进行枚举的指定数据库名

  • -T TBLname 要进行枚举的指定数据库表

  • -tables 枚举的DBMS数据库中的表

  • -columns 枚举DBMS数据库表列

  • -dump 转储数据库管理系统的数据库中的表项

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

  • -search 搜索列(S)、表(S)和数据库名称(S)

  • -C col 要进行枚举的数据库列

  • -U user 用来进行枚举的数据库用户

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

  • -level=LEVEL 执行测试的等级(1-5,默认为1,等级最低是,级别越高检测越全面)

Brute force(蛮力)

这些选项用于蛮力检查

  • -common-tables 检查存在共同表

  • -common-columns 检查存在共同列

File system access(访问文件系统)

这些选项可以用来访问后端数据库管理系统的底层文件系统

  • -file-read=RFILE 从后端数据库的管理系统文件系统读取文件

  • -file-write=WFILE 编辑后端的数据库管理系统文件系统上的本地文件

  • -file-dest=DFILE 后端的数据库管理系统写入文件的绝对路径

Operating system access (操作系统访问)

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

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

  • -os-shell 交互式的操作系统的shell

  • -os-pwn 获取一个OOB SHELL, meterpreter或VNC

  • -os-smbrelay 一键获取一个OOB shell,meterpreter或VNC

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

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

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

Miscellaneous(杂项)

  • -batch 从不询问用户输入,使用所有默认配置

  • -beep 发现SQL注入时提醒

常用命令

基本格式

#检测全部的数据库类型,默认级别为1

python sqlmap.py -u "url" -batch

#指定数据库类型为MySQL,级别为3

python sqlmap.py -u "url" -dbms MySQL -level3

#当程序有防get注入的时候,使用cookie注入

python sqlmap.py -u "url" -cookie "id=11" -level 2

#从post数据包中注入

python sqlmap.py -r "path\file_name" -p "username" -dbms mysql

注入成功以后

#查询有哪些数据库

python sqlmap.py -u "url" -dbms mysql -level 3 -dbs

#查询test数据库中有哪些表

python sqlmap.py -u "url" -dbms mysql -level 3 -D tset -tables

#查询test数据库中admin表有哪些字段

python sqlmap.py -u "url" -dbms mysql -level 3 -D test -T admin -columns

#dump出字段username与password中的数据

python sqlmap.py -u "url" -dbms mysql -level 3 -D test -T admin -C "username,password" -dump

#从数据库中搜索字段

python sqlmap.py -r "path\file_name" -dbms mysql -D test -search -C admin.password

说明:在test数据库中搜索admin和password字段

本文参考链接:http://www.vluln.cn

posted @ 2019-07-01 08:43  克壳柯珂  阅读(181)  评论(0编辑  收藏  举报