当前位置: 首页 > news >正文

Web攻防06_sqlmap的使用

文章目录

      • 参考链接:
  • SQLMAP简介
      • 支持五种不同的注入模式
  • 数据猜解-库表列数据
  • 权限操作
      • 引出权限:
      • 引出文件:
      • 引出命令(执行命令):
  • 提交方法-POST&HEAD&JSON
      • Post注入
      • cookie注入
      • 注入请求头中(数据包注入,推荐):
  • 绕过模块-Tamper脚本-使用&开发
      • Tamper使用
      • Tamper编写
  • 分析拓展-代理&调试&指纹&风险&等级
      • 后期分析调试:
      • 打乱默认指纹:
      • 使用更多的测试:测试Header注入
      • 使用代理

请添加图片描述

参考链接:

https://blog.csdn.net/Goodric/article/details/115875009

https://www.cnblogs.com/bmjoker/p/9326258.html

SQLMAP简介

sqlmap 是一个开源渗透测试工具,可以自动执行检测和利用 SQL 注入缺陷以及接管数据库服务器的过程。

注入测试方面有一个sqlmap就足够了,支持多种常用数据库注入。

支持五种不同的注入模式

  • 基于布尔类型的盲注。可以工具返回页面判断条件真假的注入。

  • 基于时间的盲注。不能工具页面返回内容判断任何信息,要用条件语句查看时间延迟语句是否被执行来判断。

  • 基于报错注入。页面会返回错误信息,或者把注入的语句结果直接返回到页面中。

  • 联合查询注入。可以使用 union 的情况下的注入。

  • 堆查询注入。可以执行多条语句时的注入。

数据猜解-库表列数据

数据猜解是用字典去猜的,使用的是data/txt中默认的字典进行猜解的,也可以自行添加字典。

测试:http://vulnweb.com/

-u “” 判断是否存在注入点

–current-db 获取当前数据库名

–tables -D “” 获取表

–columns -T “” -D “” 获取列

–dump -C “” -T “” -D “” 获取数据

-D 指定库名

-T 指定表名

-C 指定列名

python sqlmap.py --current-db  // 获取当前数据库名python sqlmap.py -u "地址" --tables -D "数据库名"  //获取表名,ACCESS数据库的话没有数据库,直接是表,MySQL的话有多个数据库,若不写库名,则会获取所有数据库的表信息python sqlmap.py -u "地址" --columns -T "表名" -D "数据库名" //获取该表名下的列名python sqlmap.py -u "地址" --dump -C "列名" -T "表名" -D "数据库名"   //获取数据, -C列名 -T表名

注入完成会将结果保存在C盘文件中。

–dbs #列出所有数据库

权限操作

测试:MYSQL高权限注入

引出权限:

判断站点是否为高权限。

--is-dba	#是否是管理员--privileges	#查看权限--current-user	#查看当前用户

更推荐--is-dba,因为--privileges查看的不一定准确

--is-dba也不一定准确,综合分析。

引出文件:

--file-read 	#文件读取--file-write	#文件写入--file-dest 	#要写入的文件绝对路径# 例子:
--file-write /test/test.txt --file-dest /var/www/html/1.txt;
将本地的test.txt文件写入到目标的1.txt

引出命令(执行命令):

--os-cmd=		# 执行系统命令--os-shell		#系统交互shell--sql-shell		#执行指定sql命令 

文件读写和执行命令都是建立在管理员权限的情况下,这些情况都是可以直接拿到网站权限的,就不需要进行数据猜解等测试方法了。

提交方法-POST&HEAD&JSON

测试:Post Cookie Json

Post注入

–data “post提交的数据” # 设置为post检测注入

python sqlmap.py -u "地址" --data "username=test&pass=test"

cookie注入

–cookie “”

注入请求头中(数据包注入,推荐):

把整个数据包保存文件在sqlmap目录下txt文件,在文件中使用*标记注入点,不标记则会全试,很慢。

-r 1.txtpython sqlmap.py -u "地址" -r 1.txt

有个网站,只能用手机访问,该网站有个注入点

如果不是通过抓包得到的请求的注入点数据包去注入,发送请求的话,

sqlmap就采用自己的请求头去访问进行注入测试,就有可能会访问不到,被拒绝。即无法测试

绕过模块-Tamper脚本-使用&开发

测试:base64注入 有过滤的注入

Tamper使用

--tamper=脚本模块名称
如:
--tamper=base64encode.py
--tamper=test.py

脚本文件存放于sqlmap目录下的tamper目录中。

Tamper编写

在如下脚本模板中的if payload:中编写替换规则,使用payload.replace('替换前','替换内容')进行替换即可。

from lib.core.enums import PRIORITY__priority__ = PRIORITY.LOWdef dependencies():passdef tamper(payload, **kwargs):if payload:      payload = payload.replace('SELECT','sElEct') # 编写替换规则payload = payload.replace('OR','Or')payload = payload.replace('AND','And')payload = payload.replace('SLEEP','SleeP')payload = payload.replace('ELT','Elt')return payload

重点在于研究出绕过的方法,当知道绕过的方法,脚本编写很简单

分析拓展-代理&调试&指纹&风险&等级

后期分析调试:

-v=(0-6)  #详细的等级(0-6)

显示详细的注入内容,等级越高,显示的内容越多越详细

通过调试信息分析为什么不能注入,是不能注入,绕过失败,还是自己写的tamper模块没有生效

打乱默认指纹:

--user-agent ""  #自定义user-agent

sqlmap的固有流量特征:User-Agent:sqlmap/1.7.5.4#

--random-agent  #随机user-agent--time-sec=(2,5) #延迟响应,默认为5

网站请求过快会屏蔽,使用延迟可解决

使用更多的测试:测试Header注入

--level=(1-5) #要执行的测试水平等级,默认为1 --risk=(0-3)  #测试执行的风险等级,默认为1 

相当于测试的深度,等级越高,测试的情况和方法更多

使用代理

--proxy "http://xx:xx" #代理地址,代理注入

和burpsuite联动,便于分析注入的情况,为什么不能注入,注入数据包的查看分析

代理池:直接将买的代理池地址放里面就好

相关文章:

Web攻防06_sqlmap的使用

文章目录 参考链接: SQLMAP简介支持五种不同的注入模式 数据猜解-库表列数据权限操作引出权限:引出文件:引出命令(执行命令): 提交方法-POST&HEAD&JSONPost注入cookie注入注入请求头中(…...

C++模拟实现-----日期计算器(超详细解析,小白一看就会!)

目录 一、前言 二、日期类计算器 三、日期计算器的实现 🍎日期计算器各个接口的实现 🍐日期计算器的需求 🍉打印当前日期(并检查日期是否合理) 💦检查日期是否合理 💦日期类构造函数&#x…...

Oracle实现把B表某一字段更新到A表

1.使用SQL命令UPDATE语句。 2.使用MERGE语句。 3.使用TRIGGER触发器。 4.使用游标CURSOR和循环 使用游标和循环来将B表中的数据更新到A表中,从而实现了两个表数据的同步。例如下面的代码实现:...

CUMCM历年赛题汇总

题目来源: 全国大学生数学建模竞赛官网 注:题目和数据均可在官网下载 2021–2023年 年份题号题目2023A定日镜场的优化设计2023B多波束测线问题2023C蔬菜类商品的自动定价与补货决策2023D圈养湖羊的空间利用率2023E黄河水沙监测数据分析2022A波浪能最大…...

人间道-您到底做错了什么:正心径之您要逐渐去除外邪行为

过去的您或许在您自个身上付出,投入了巨大,重大的人力,物力,财力等各方面的重重的成本,但是呢,收获却微小的稀罕,微少的可怜啊。甚至于一个错误,就把您完全陷入到万丈深渊里面去了&a…...

Spring Boot拓展XML格式的请求和响应

在我们开发过程中,我们经常使用的参数绝大多少事HTML和JSON格式的请求和响应处理,但是我们在实际开发过程中,我们可能经历一些,比如对于XML格式的请求,我们在后端应该如何接收,并且如何将XML格式的参数变成…...

0045【Edabit ★☆☆☆☆☆】【字符数转整型】Return a String as an Integer

0045【Edabit ★☆☆☆☆☆】【字符数转整型】Return a String as an Integer language_fundamentals numbers strings Instructions Create a function that takes a string and returns it as an integer. Examples stringInt("6") // 6 stringInt("1000&q…...

数据库MySQL(六):事务

事务 事务是一组操作的集合,它是一个不可分割的工作单位,事务会把所有的操作作为一个整体一起向系统提交或撤销操作请求,即这些操作要么同时成功,要么同时失败。 MySQL中默认事务是自动提交的,当执行完一条DML语句时…...

比较浮点数时,我被绊倒了

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不是…...

JVM进阶(1)

一)JVM是如何运行的? 1)在程序运行前先将JAVA代码转化成字节码文件也就是class文件,JVM需要通过类加载器将字节码以一定的方式加载到JVM的内存运行时数据区,将类的信息打包分块填充在运行时数据区; 2)但是字节码文件是JVM的一套指…...

【AICFD案例操作】汽车外气动分析

AICFD是由天洑软件自主研发的通用智能热流体仿真软件,用于高效解决能源动力、船舶海洋、电子设备和车辆运载等领域复杂的流动和传热问题。软件涵盖了从建模、仿真到结果处理完整仿真分析流程,帮助工业企业建立设计、仿真和优化相结合的一体化流程&#x…...

Hadoop 请求数据长度 Requested Data length 超过配置的最大值

一、问题 现象 Spark 任务速度变慢,也不失败。 DataNode 内存足够 CPU 负载不高 GC 时间也不长。 查看 DataNode 日志,发现有些日志出现很多 Netty RPC 超时。超时的 destination 是一个 NameNode 节点,然后查看 NameNode 节点的日志&…...

搜索与图论:染色法判定二分图

将所有点分成两个集合,使得所有边只出现在集合之间,就是二分图 二分图:一定不含有奇数个点数的环;可能包含长度为偶数的环, 不一定是连通图 染色可以使用1和2区分不同颜色,用0表示未染色 遍历所有点&…...

磁场设备主要有哪些

磁学是物理学最古老的研究领域之一,目前仍然充满了生机活力。对于磁性物理的科学研究、磁性材料相关的探索来说,磁场设备必不可少,因为在外加磁场的作用下,样品会表现出特殊的物理性质,并带来了巨大的应用前景&#xf…...

【wespeaker】模型ECAPA_TDNN介绍

本次主要介绍开源项目wespeaker模型介绍 1. 模型超参数 model_args: feat_dim: 80 embed_dim: 192 pooling_func: “ASTP” projection_args: project_type: “softmax” # add_margin, arc_margin, sphere, softmax scale: 32.0 easy_margin: False 2. 模型结构 2.1 Layer…...

GPT技术的广泛使用

GPT技术的广泛使用确实引发了一些关于其潜在影响的讨论,包括可能导致某些职业失业以及对一些互联网公司构成竞争压力的问题。然而,这个问题涉及到多个方面,而且不容易一概而论。 潜在影响: 自动化任务: GPT等自然语言…...

银河麒麟V10安装MySQL8.0.28并实现远程访问

参考资料: 银河麒麟V10安装MySQL8.0.28并实现远程访问-数据库运维技术服务 银河麒麟高级服务器操作系统V10安装mysql数据库_麒麟v10安装mysql-CSDN博客...

[AUTOSAR][诊断管理][ECU][$27] 安全访问

文章目录 一、简介$27服务有何作用,为什么要有27服务呢?功能描述应用场景安全解锁基本原理服务请求服务响应Verify Key负响应NRC支持二、常见Bug大揭秘三、示例代码uds27_security_access.c一、简介 $27服务有何作用,为什么要有27服务呢? 功能描述 根据ISO14119-1标准中…...

Android Studio编译旧的app代码错误及解决方法

‘android.injected.build.density’ is deprecated. The option ‘android.injected.build.density’ is deprecated. It was removed in version 8.0 of the Android Gradle plugin. Density property injection from Android Studio has been removed. 解决 app/build.gr…...

Docker的架构与自制镜像的发布

一. Docker 是什么 Docker与自动化测试及其测试实践 大家都知道虚拟机吧,windows 上装个 linux 虚拟机是大部分程序员的常用方案。公司生产环境大多也是虚拟机,虚拟机将物理硬件资源虚拟化,按需分配和使用,虚拟机使用起来和真实操…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包: for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

MyBatis中关于缓存的理解

MyBatis缓存 MyBatis系统当中默认定义两级缓存&#xff1a;一级缓存、二级缓存 默认情况下&#xff0c;只有一级缓存开启&#xff08;sqlSession级别的缓存&#xff09;二级缓存需要手动开启配置&#xff0c;需要局域namespace级别的缓存 一级缓存&#xff08;本地缓存&#…...