注入神器 --SQLMAP使用示例

声明: 以下对SQLMAP的操作说明皆在靶机环境下进行演示学习,请勿进行非法行为操作!

一、查看数据库内容

用于确认存在注入点后进行查看数据库、表、列、数据行

爆库

--dbs(查看所有可用数据库)

在这里插入图片描述

爆表

 -D <对应的数据库名> --tables(查看某库下边的所有可用表)

在这里插入图片描述

爆字段

 -D <对应的数据库名> -T <对应的数据库表> --columns (查询某数据库、某表下的所有列名)

在这里插入图片描述

仅列数据

仅计算每个表总数量,不看里面数据(法律法规!)

--count

在这里插入图片描述

爆字段(某表所有字段)

dump某个表所有的列字段

 -D <对应的数据库名> -T <对应的表名> --dump

在这里插入图片描述

爆字段(某表个别列字段)

仅爆dvwa数据库、users表下的user和password列字段

 -D <对应的数据库名> -T <对应的表名> -C <对应的列1>,<对应的列2> --dump

在这里插入图片描述

爆字段(某表前几行字段)

查看某表前几行

-D <对应的数据库名> -T <对应的表名> -C <对应的列1>,<对应的列2> --stop <行数>

在这里插入图片描述

二、输出结果详细程度

-v

控制sqlmap结果输出的详细程度,7个级别,默认为1

  • 0,仅显示回溯,错误和严重信息
  • 1,显示警告信息
  • 2,显示调试信息
  • 3,显示注入的有效载荷
  • 4,显示HTTP请求
  • 5,显示HTTP响应的标头
  • 6,显示HTTP响应的页面内容

在这里插入图片描述
在这里插入图片描述

三、多种注入方式

单目标地址注入(GET)

-u / --url

针对单个目标地址使用,一般结合其它参数使用

在这里插入图片描述

Tips:-u 后边的地址需要使用英文引号

单目标地址注入(POST)

- -data

sqlmap默认执行HTTP请求的方法是GET,当要测试POST注入的参数时需要使用该参数,一般和-r参数共用

保存当前POST请求于文本文件中
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注入文本文件

-r

从文本文件中加载注入的目标,优点:可跳过Cookie认证

保存要注入的页面操作请求于文本文件中
在这里插入图片描述
在这里插入图片描述

多目标地址注入

-m

批量注入文本文件中列出的URL目标列表,sqlmap逐个扫描每个URL

在这里插入图片描述
在这里插入图片描述

Burp代理日志注入

-l(小写L)

指定一个Burp代理日志文件,从日志文件中解析出可能攻击的目标

设置日志文件名proxy.log保存,当浏览站点时便会保存日志文件
在这里插入图片描述

使用正则过滤代理日志中的目标

- -scope

使用正则对代理日志进行过滤,只注入所需主机

在这里插入图片描述

四、连接请求选项

HTTP方法

- -method

sqlmap是自动检测HTTP请求中使用的正确方法,但是一些不常用的方法需要使用该参数指定

在这里插入图片描述

指定分隔符

- -param-del

主要用于多个参数注入时指定分隔符,能够使sqlmap更加精准的测试目的参数

在这里插入图片描述
在这里插入图片描述

Cookie登录验证

- -cookie

该选项在如下两个情况下使用

  • 该注入点需要登录才能访问
  • 想要检测和利用此类标头的SQL注入(- -level设置为2或者更高,sqlmap自动测试HTTP标头)

目标网站需要cookie验证,且未设置情况下显示如下:
在这里插入图片描述
在未设置HTTPOnly站点下浏览器输入以下代码,获取当前cookie(方法多种)
在这里插入图片描述
在这里插入图片描述

HTTP协议认证

- -auth-type- -auth-cred

用于指定使用哪个HTTP协议身份验证后端Web服务器,用于执行对目标应用程序所有的有效凭据。
支持的三种HTTP协议身份验证机制:

  • Basic
  • Digest
  • NTLM

在这里插入图片描述

HTTP私钥认证

- -auth-file

适用于Web服务器需要客户端证书用于身份验证的私钥

指定HOST头

- -host

host标头自动从目标解析

指定Referer头

- referer

默认情况下请求包中无Regerer标头,可伪造此标头

忽略HTTP错误代码

- -ignore-code

适用于测试偶尔返回HTTP错误代码(导致常规sqlmap运行引起问题)的站点(如401:未经授权),而想忽略该提示继续测试,则使用该参数

HTTP(s)代理

- -proxy、- -proxy-cred、- -proxy-file 和 - -ignore-proxy

  • - -proxy-file:适用于侵入的IP地址被封时自动跳到代理池的下一个地址,从而持续扫描注入
  • - -ignore-proxy:忽略本地代理设置

HTTP请求之间的延迟

- -delay

适用于欺骗防火墙正常访问(无延迟访问容易被墙),可以指定在每个HTTP(s)请求之间保留的秒数。有效值为浮点型(例如0.5s),默认情况下不设置延迟。

在这里插入图片描述
第一个请求时间:
在这里插入图片描述
第二个请求时间,相隔3秒,如规避IDS发现:
在这里插入图片描述

超时连接前等待的秒数

- -timeout

在考虑HTTP(s)请求超时前可以指定等待的秒数,有效值为浮点型(例如:10.5s),默认30秒。

HTTP连接时最大重试数

- -retries
HTTP(s)连接超时时,可以指定最大重试次数。(默认3次)

随机更改给定参数值

- -randomize

在每个请求期间随机更改值的参数名称。长度和类型将根据提供的原始值保留。

避免过多请求失败会话失联

- -safe-url、- -safe-post、- -safe-req 和 - -safe-freq

sqlmap检测时会产生大量的请求,有时服务器检测到的客户端请求过多从而对其屏蔽,为了持续成功请求可使用:

  • - -safe-url:测试期间持续性访问URL地址;
  • - -safe-post:POST数据发送到给定的安全的URL地址;(安全的URL指能返回请求的数据)
  • - -safe-req:从文件加载并使用安全的HTTP请求;
  • - -safe-freq:每次测试请求后都会访问以下安全的URL。

关闭URL编码

- -skip-urlencode

关闭URL编码,对数据进行源数据传输(sqlmap默认对URL进行URL编码)

绕过CSRF保护

\ - -csrf-token 和 - -csrf-url

很多站点通过在表单中添加值随机生成的token的隐藏字段来防止csrf攻击,sqlmap会自动识别并绕过,但有时会失效,就需要手动添加:

  • - -csrf-token:用于指定包含token的隐藏字段名,如sqlmap不能自动识别需要手动指定。
  • - -csrf-url:从任意中回收值(如有漏洞的目标URL中没有包含token值而要求在其它地方提取该参数即无敌)

强制使用HTTPS

- -force-ssl

使目标强制使用SSL/HTTPS请求

在这里插入图片描述
在这里插入图片描述

在每次请求前执行特定python代码

- -eval

每次执行前执行自定义的python代码

每次返送请求前,sqlmap都会根据id值重新计算hash值并更新GET请求中的hash值
在这里插入图片描述

五、隐匿攻击

伪造User-Agent头

- -user-agent- -random-agent

一些站点防火墙会对HTTP的User-Agent标头进行检查,从而检测攻击加入到到IPS的黑名单中
Tips:- -level设置为3或更高,sqlmap会对HTTP标头进行测试

方法一:随机替换

在这里插入图片描述
查看到请求包中的User-Agent自动替换了:
在这里插入图片描述
在这里插入图片描述

方法二:指定替换

在这里插入图片描述
在这里插入图片描述

Tor匿名网络

- -tor、- -tor-port、- -tor-type 和 - -check-tor

适用于出于某种原因保持匿名扫描注入

  • 7
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

風月长情

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值