文章目录

  • 一、查看数据库内容
    • 爆库
    • 爆表
    • 爆字段
    • 仅列数据
    • 爆字段(某表所有字段)
    • 爆字段(某表个别列字段)
    • 爆字段(某表前几行字段)
  • 二、输出结果详细程度
  • 三、多种注入方式
    • 单目标地址注入(GET)
    • 单目标地址注入(POST)
    • 注入文本文件
    • 多目标地址注入
    • Burp代理日志注入
      • 使用正则过滤代理日志中的目标
  • 四、连接请求选项
    • HTTP方法
    • 指定分隔符
    • Cookie登录验证
    • HTTP协议认证
    • HTTP私钥认证
    • 指定HOST头
    • 指定Referer头
    • 忽略HTTP错误代码
    • HTTP(s)代理
    • HTTP请求之间的延迟
    • 超时连接前等待的秒数
    • HTTP连接时最大重试数
    • 随机更改给定参数值
    • 避免过多请求失败会话失联
    • 关闭URL编码
    • 绕过CSRF保护
    • 强制使用HTTPS
    • 在每次请求前执行特定python代码
  • 五、隐匿攻击
    • 伪造User-Agent头
      • 方法一:随机替换
      • 方法二:指定替换
    • Tor匿名网络

声明: 以下对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

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

注入神器 --SQLMAP使用示例相关推荐

  1. 『安全工具』注入神器SQLMAP

    原文: 『安全工具』注入神器SQLMAP Pic by Baidu 0x 00 前言 正是SQLMAP这种神器的存在,SQL注入简直Easy到根本停不下来.... PS:国内类似软件也有阿D,明小子, ...

  2. 注入神器-----SqlMap的使用

    sqlmap GET参数: -u 网址 --dbs:获取注入点的所有数据库 -D:指定数据库     --tables:获取指定的表 -T:表名         --columns:获取表的指定字段 ...

  3. sql 注入神器sqlmap 源码分析之调试sqlmap

    为什么80%的码农都做不了架构师?>>>    相信大家平时 用sqlmap 命令,比如 python sqlmap.py -u"https://team.oschina. ...

  4. SQL注入测试神器sqlmap

    点击上方蓝字"开源优测"一起玩耍 声明 本公众号所有内容,均属微信公众号: 开源优测  所有,任何媒体.网站或个人未经授权不得转载.链接.转贴或以其他方式复制发布/发表.已经本公众 ...

  5. 依赖注入神器:Dagger2详解系列

    依赖注入神器:Dagger2详解系列 序言 Dagger2是啥 Dagger2是啥,Google告诉我们: Dagger is a fully static, compile-time depende ...

  6. 工具使用|神器Sqlmap tamper的使用介绍

    作者: 村里的小四 免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责. 0x01 前言 从开源软件Sqlmap学习字符的篡改,现在的web网络环境参数出入处基本都会过滤某些字符串 ...

  7. [网络安全提高篇] 一〇六.SQL注入之手工注入和SQLMAP入门案例详解

    当您阅读到该篇文章时,作者已经将"网络安全自学篇"设置成了收费专栏,首先说声抱歉.感谢这一年来大家的阅读和陪伴,这100篇安全文章记录了自己从菜鸡到菜鸟的成长史,该部分知识也花了很 ...

  8. 为什么preparedstatement能防止sql注入_使用Python防止SQL注入攻击的实现示例

    文章背景 每隔几年,开放式Web应用程序安全项目就会对最关键的Web应用程序安全风险进行排名.自第一次报告以来,注入风险高居其位!在所有注入类型中,SQL注入是最常见的攻击手段之一,而且是最危险的.由 ...

  9. 详解强大的SQL注入工具——SQLMAP

    本文转自:详解强大的SQL注入工具--SQLMAP 前言 Windows下的注入工具好的又贵,免费的啊D.明小子等又不好用,我们根本没必要花 时间去找什么破解的havij.pangolin什么的,特别 ...

最新文章

  1. 中国电子学会青少年编程能力等级测试图形化四级编程题:正话反说
  2. 计算机算法的发展动态,计算机算法动态规划讲解.ppt
  3. java文件读写 outputstream_java IO文件读写例子(OutputStream,InputStream,Writer,Reader)...
  4. 普联技术java工程师_【普联技术(TP-LINK)工资】java开发工程师待遇-看准网
  5. 痛苦的vsftpd配置
  6. 竞赛程序设计知识要点图谱
  7. 【渝粤教育】国家开放大学2018年秋季 3722-22T燃气输配工程 参考试题
  8. 怎么高速旋转_洗衣机怎么选比较好,滚筒洗衣机和波轮洗衣机哪种更好?
  9. 在项目中使用NeatUpload
  10. 中级通信工程师 | 关于考试,你想了解的都在这里!
  11. 计算机开机错误0xc0000428,启动时出现错误码0xc0000428如何解决?
  12. SQL分组排序再取前N条记录
  13. 苹果手机桌面找不到计算机,苹果手机设置图标不见了怎么办
  14. STP和RSTP的BPDU报文中flag位 对比+分析
  15. 支付宝称:已支持微信转账,结果被骂惨了...
  16. 3D建模需要什么电脑配置?什么样的电脑可以用作游戏建模?
  17. unknown类型的使用
  18. 抖音企业号有什么好处?
  19. 服务器 u盘制作系统盘,制作U盘系统盘(WinToFlash)
  20. cms可视化编辑php,AyaCMS与We7CMS可视化编辑模板功能对比

热门文章

  1. 机器学习——基础知识
  2. JUC-07-CAS
  3. 机器学习(一):什么是机器学习
  4. [PWN][基础篇]基础理论
  5. F003-牛奶为什么要倒河里 #F1350
  6. thinkphp 5.1 swoole扩展websocket使用教程
  7. 互联网正在化有形为无形,这是一场深刻而又彻底的嬗变
  8. PaddleHub人体骨骼关键点检测(2.0环境)
  9. 离散数学实验2关联矩阵相邻矩阵
  10. 危化品道路运输车辆识别抓拍 YOLOv5