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

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

http://www.lryc.cn/news/209293.html

相关文章:

  • C++模拟实现-----日期计算器(超详细解析,小白一看就会!)
  • Oracle实现把B表某一字段更新到A表
  • CUMCM历年赛题汇总
  • 人间道-您到底做错了什么:正心径之您要逐渐去除外邪行为
  • Spring Boot拓展XML格式的请求和响应
  • 0045【Edabit ★☆☆☆☆☆】【字符数转整型】Return a String as an Integer
  • 数据库MySQL(六):事务
  • 比较浮点数时,我被绊倒了
  • JVM进阶(1)
  • 【AICFD案例操作】汽车外气动分析
  • Hadoop 请求数据长度 Requested Data length 超过配置的最大值
  • 搜索与图论:染色法判定二分图
  • 磁场设备主要有哪些
  • 【wespeaker】模型ECAPA_TDNN介绍
  • GPT技术的广泛使用
  • 银河麒麟V10安装MySQL8.0.28并实现远程访问
  • [AUTOSAR][诊断管理][ECU][$27] 安全访问
  • Android Studio编译旧的app代码错误及解决方法
  • Docker的架构与自制镜像的发布
  • 嵌入式系统中C++ 类的设计和实现分析
  • 【torch高级】一种新型的概率学语言pyro(02/2)
  • Git基本概念与使用
  • Kubernetes数据卷Volume和数据卷分类(emptyDir、nfs、hostPath、ConfigMap)详解
  • 【MATLAB源码-第59期】基于matlab的QPSK,16QAM164QAM等调制方式误码率对比,调制解调函数均是手动实现未调用内置函数。
  • 经典目标检测神经网络 - RCNN、SSD、YOLO
  • mysql存在10亿条数据,如何高效随机返回N条纪录,sql如何写
  • c语言中啥时候用double啥时候用float?
  • vscode 保存 “index.tsx“失败: 权限不足。选择 “以超级用户身份重试“ 以超级用户身份重试。
  • 综合性练习
  • threejs(7)-精通粒子特效