sqlmap基础知识(三)

一、sqlmap的基本使用

指定检测级别

sqlmap使用的payloads直接从文本文件xml/payloads.xml中载入

根据该文件顶部的相关指导说明进行设置,如果sqlmap漏过了特定的注入,

你可以选择自己修改指定的payload用于检测

level有5级,级别越高检测越全,默认为1

  1. -level 1 默认等级,执行基本的SQL注入测试和一些常见的payloads
  2. -level 2 在Level 1的基础上,增加了对HTTP Cookie的测试
  3. -level 3 在Level 2的基础上,增加了对HTTP User-Agent和Referer头部的测试
  4. -level 4 进一步增加更复杂的payloads和测试方法
  5. -level 5 最高等级,包含所有payloads,会自动破解Cookie、XFF等头部注入,提供最全面的测试

risk有3级,级别越高风险越大,默认为1

  1. -risk 2 会在默认的检测上添加大量时间型盲注语句测试
  2. -risk 3 会在原基础上添加OR类型的布尔型盲注,可能会update到时修改数据库,有很大的风险

页面对比

选项:--string,--not-string,--regexp 和 --code

默认区分一个True 查询和 False 查询(布尔型盲注背后的相关理念概念)是通过对比注入前后返回的结果是否一致进行判断的。

不过这个参照方法并不一定有效,因为可能就算没有进行注入,页面内容也会进行相应更新。例如:页面上有计算器、动态的广告横幅、或者任何基于时间而非用户输入内容进行动态渲染的内容。为了避免类似的情况,sqlmap会尽可能尝试识别出对应的代码段所返回请求内容并做好相关的处理

如果用户知道可以通过HTTP状态码区分True查询和False查询(例如:200对应True,401对应False),那么可以向sqlmap提供对应的信息。(例如:--code=200)

开关:--text-only 和 --titles

如果用户知道可以通过HTML标题区分True查询和False查询(例如:Welcome对应True,Forbidden对应False),那么可以使用--titles开启基于标题对比的开关

如果HTTP响应报文中存在无效信息(例如:脚本、镶嵌元素等),可以通过过滤页面的内容(开关 --text-only)而只获取文本内容。通过这种方式,大多数情况下,这样会自动调优检测引擎

指定注入类型

以下选项用于调整特定SQL注入技术的测试方法

--technique=TECH #使用的SQL注入技术(默认为“BEUSTQ”)

B:Boolean-based blind SQL injection(布尔型盲注)

E:Error-based SQL injection(报错型注入)

U:UNION query SQL injection(联合查询注入)

S:Stacked queries SQL injection(堆查询注入)

T:Time-based blind SQL injection(时间型盲注)

Q:inline Query injection(内敛查询注入)

例如,如果仅测试利用报错型注入和堆叠查询注入,你可以提供ES

--time-sec=TIMESEC   #设置延时注入时间(默认为5)

--second-order=S..       #设置二阶响应的结果显示页面的URL(该选项用于二阶 SQL 注入)

--dns-domain                #DNS 渗出攻击

如果用户正控制这一台注册为DNS域名服务器的主机(例如:域名attacker.com),则可以使用该选项(例如:--dns-domain attacker.com)来启用此攻击。它的前提条件是使用Administrator(即管理员)权限(因为需要特权端口53)运行sqlmap,这时可以使用常用的(盲注)技术来进行攻击。如果已经识别出一种有效攻击方式(最好是时间型盲注),则这种能够加速获取数据的过程。如果报错型注入或联合查询注入技术可用,则默认情况下将跳过DNS渗出攻击测试。

枚举信息

以下选项用于获取数据库的信息,结构和数据表中的数据

  1. -a,--all                        #获取所有信息、数据
  2. -f,--fingerprint            #采用特定SQL方言或者内带特定错误信息等技术开展详细的DBMS指纹识别
  3. -b,--banner                #获取 DBMS banner,返回数据库的版本号
  4. --current-user              #获取 DBMS 当前用户
  5. --current-db                 #获取 DBMS 当前数据库
  6. --hostname                  #获取 DBMS 服务器的主机名
  7. --is-dba                        #探测 DBMS 当前用户是否为DBA(数据库管理员)
  8. --users                         #枚举出 DBMS 所有用户
  9. --passwords                 #枚举出 DBMS 所有用户的密码哈希
  10. --privileges                   #枚举出 DBMS 所有用户特权级
  11. --roles                          #枚举出 DBMS 所有用户角色
  12. --dbs                            #枚举出 DBMS 所有数据库
  13. --tables                        #枚举出 DBMS 数据库中的所有表,--exclude-sysdbs 以排除所有的系统数据库,对于Oracle,你需要提供 TABLESPACE_NAME 而不是数据库名称
  14. --columns                    #枚举出 DBMS 表中的所有列,对于 PostgreSQL,你需要提供 public 或系统数据库的名称。这是因为不可能枚举其他数据库表,只能枚举出 Web 应用程序用户连接到的数据库模式下的表,它们总是以 public 为别名
  15. --schema                     #枚举出 DBMS 所有模式
  16. --count                         #获取数据表数目
  17. --dump-all                    #如果当前会话用户的读取权限允许,可以一次导出所有数据库表条目
  18. --dump                         #导出 DBMS 数据库表项
  19. --search,-C,-T,-D  #此开关允许你在所有数据库中搜索特定的数据库名和表名,在特定的数据表中搜索特定的列名
  20. --stop 10                       #只取前10行数据
  21. -D DB                           #指定要枚举的 DBMS 数据库
  22. -T TBL                          #指定要枚举的 DBMS 数据表
  23. -C COL                         #指定要枚举的 DBMS 数据列
  24. --sql-query=QUERY     #指定要执行的SQL语句
  25. --sql-shell                     #调出交互式SQL shell

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/795234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows系统kafka小白入门篇——下载安装,环境配置,入门代码书写

目录 1. kafka 下载 2. 修改配置文件 2.1 文件夹内容 2.2 创建一个 data 空文件夹 2.3 修改 zookeeper.properties 配置文件 2.4 修改 server.properties 配置文件 2.5 创建 "zk.cmd" windows脚本文件 2.6 创建 "kfk.cmd" windows脚本文件 3. 启动…

LoRa自组网络设计 6

1 深入了解LoRaWan 1.1 LoRaWan概述 LoRaWAN采用星型无线拓扑 End Nodes 节点 Gateway 网关 Network Server 网络服务器 Application Server 应用服务器 LoRa联盟是2015年3月Semtech牵头成立的一个开放的、非盈利的组织,发起成员还有法国Actility,中国…

Kubernetes 高可用性入门:初学者指南

Kubernetes 高可用性解释 引言一、需要 Kubernetes 高可用性二、Kubernetes 控制平面的高可用性2.1、etcd2.2、API 服务器2.3、Kube 调度器2.4、Kube 控制器管理器2.5、云控制器管理器 三、工作节点的高可用性四、Kubernetes 集群可用性度量五、Kubernetes 可用性常见问题六、总…

【数据结构与算法】(二)线性表、顺序表、静态顺序表、动态顺序表

文章目录 【数据结构与算法】(二)线性表、顺序表、静态顺序表、动态顺序表前言2.1 线性表的定义和特点2.2 线性表的类型定义2.3 线性表的顺序存储结构2.3.1 线性表的顺序存储表示(顺序表)2.3.2 静态顺序表的实现2.3.2.1 静态顺序表…

(学习日记)2024.04.07:UCOSIII第三十五节:互斥量实验

写在前面: 由于时间的不足与学习的碎片化,写博客变得有些奢侈。 但是对于记录学习(忘了以后能快速复习)的渴望一天天变得强烈。 既然如此 不如以天为单位,以时间为顺序,仅仅将博客当做一个知识学习的目录&a…

前端学习<三>CSS进阶——0102-CSS布局样式

前言 css 进阶的主要内容如下。 1、css 非布局样式 html 元素的分类和特性 css 选择器 css 常见属性(非布局样式) 2、css 布局相关 css 布局属性和组合解析 常见布局方案 三栏布局案例 3、动画和效果 属于 css 中最出彩的内容。 多背景多投影特…

如何用putty通过ssh连接ubuntu

1. 下载和安装PuTTY 访问PuTTY官网下载PuTTY的最新版本。 2. 打开PuTTY 解压下载的文件后,找到PuTTY文件并双击打开。 3. 配置SSH连接 在ubuntu下安装ssh服务在安装ssh时,我一直遇到一个问题,原因是我的虚拟机连不上网,反复实…

深入理解 SQL 中的数据集合和数据关联

引言 在数据库管理系统中,数据集合和数据关联是 SQL 查询中常见的概念。它们是构建复杂查询和分析数据的基石。本文将深入探讨 SQL 中的数据集合和数据关联,包括它们的概念、常见用途以及实际示例。 首先引入一下数学中的集合 集合的基本概念&#x…

加速度:电子元器件营销网站的功能和开发周期

据工信部预计,到2023年,我国电子元器件销售总额将达到2.1万亿元。随着资本的涌入,在这个万亿级赛道,市场竞争变得更加激烈的同时,行业数字化发展已是大势所趋。电子元器件B2B商城平台提升数据化驱动能力,扩…

Flutter Don‘t use ‘BuildContext‘s across async gaps.

Flutter提示Don‘t use ‘BuildContext‘s across async gaps.的解决办法—flutter里state的mounted属性

[蓝桥杯 2019 国 C] 数正方形

[蓝桥杯 2019 国 C] 数正方形 题目描述 在一个 N N N \times N NN 的点阵上,取其中 4 4 4 个点恰好组成一个正方形的 4 4 4 个顶点,一共有多少种不同的取法? 由于结果可能非常大,你只需要输出模 1 0 9 7 10^9 7 1097 的…

吴恩达机器学习笔记:第 6 周-11机器学习系统的设计(Machine Learning System Design)11.1-11.5

目录 第 6 周 11、 机器学习系统的设计(Machine Learning System Design)11.1 首先要做什么11.2 误差分析11.3 类偏斜的误差度量11.4 查准率和查全率之间的权衡11.5 机器学习的数据 第 6 周 11、 机器学习系统的设计(Machine Learning System Design) 11.1 首先要做什么 在接…

2024.3.19力扣每日一题——好子数组的最大分数

2024.3.19 题目来源我的题解方法一 双指针 题目来源 力扣每日一题;题序:1793 我的题解 方法一 双指针 左右指针初始指向k-1,k1,表示左右边界。参考官方题解 好子数组必须要包含 nums[k],那么我们可以使用两个指针 left 和 righ…

leetcode.24. 两两交换链表中的节点

题目 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 思路 创建虚拟头节点,画图,确认步骤。 实现 /*** Definition for singly-li…

docker安装、调试qsign签名服务器

go-cqhttp 在 Docker 里早就部署好了,由于没有搭建 qsign 签名服务器,所以迟迟不敢上线。今天终于搞定了在 Docker 下安装 qsign 签名服务器了。这次用的docker市场里找到的镜像,下次找时间制作一个自己的镜像。 1 拉取和运行镜像&#xff1a…

设计模式:生活中的组合模式

想象一下,你正在组织一个大型的家庭聚会。在这个聚会中,你需要准备各种菜肴,每个菜肴又包含不同的食材。你的目标是能够以统一的方式处理整个聚会的准备工作,不论是处理单个食材还是一整道菜肴。 在这个场景中,我们可…

C# MES通信从入门到精通(9)——c#使用visual studio2019社区版部署webservice服务

前言 在上位机软件开发领域,我们经常使用调用webservice接口来和mes系统进行交互,我们在开发Mes程序之前也可以自己先模拟发布客户的webservice接口进行调用从而加快软件开发进度,本文就是详细介绍如何自己发布webservice接口。 1、创建 参考这篇博文:webservice服务创建…

C# lambda表达式

lambda表达式关于参数表达式或语句块一个神奇的例子与总结换句话说 lambda表达式 C# 中的 lambda 表达式是一种简洁的表示匿名函数的方法。Lambda 表达式特别用于 LINQ 查询、事件处理程序、回调函数等场景中,它使得代码更加简洁和易于阅读。 Lambda 表达式的基本…

图像处理与视觉感知---期末复习重点(6)

文章目录 一、图像分割二、间断检测2.1 概述2.2 点检测2.3 线检测2.4 边缘检测 三、边缘连接3.1 概述3.2 Hough变换3.3 例子3.4 Hough变换的具体步骤3.5 Hough变换的法线表示形式3.6 Hough变换的扩展 四、阈值处理4.1 概述4.2 计算基本全局阈值算法4.3 自适应阈值 五、基于区域…

SV学习笔记(四)

OCP Open Closed Principle 开闭原则 文章目录 随机约束和分布为什么需要随机?为什么需要约束?我们需要随机什么?声明随机变量的类什么是约束权重分布集合成员和inside条件约束双向约束 约束块控制打开或关闭约束内嵌约束 随机函数pre_random…