使用sqlmap进行SQL注入检测

article/2025/7/15 4:13:58

最近公司项目被扫描出有SQL注入的漏洞,通过百度之后,决定使用sqlmap进行SQL注入的检测。这里仅仅是记录一下注入检测的步骤。

检测前准备

sqlmap是一个python编写的工具,因此我们首先要进行python环境的搭建,然后再从sqlmap官网下载最新版本。

检测步骤

查看需要检测的注入点

首先我们需要访问自己的项目,找到一个需要检测的url,这个url需要对应后台的处理,这个url对应的后台需要接收参数,并且会将我们的参数作为sql的一部分去数据库进行查询之类的操作。

如 我们有个链接 http://192.168.21.12:8080/mylink.action?userCode=admin

URL检测是否存在注入点

使用python sqlmap.py -u "http://192.168.21.12:8080/mylink.action?userCode=admin" --batch

这里--batch表示不需要用户输入,使用默认行为,否则会有一些提示选择需要用户进行。

如果此URL中存在SQL注入,那么将会出现如下画面。并且可以看到 这里告诉我们后台使用的数据库类型与版本是SQLServer 2008.

 获取到数据库名称

这里我们使用

python sqlmap.py -u URL --dbs --batch

可以获取到此实例下的所有数据库名称。

使用python sqlmap.py -u URL --current-db --batch

可以获取当前系统使用的数据库名称。

获取此数据库下所有表名称

在获取到数据库名称之后,我们使用

python sqlmap.py -u URL -D 数据库名称 --tables --batch

可以获取到这个数据库下所有的表名

获取表的所有字段

我们找到我们感兴趣的表,然后获取这个表的所有字段

python sqlmap.py -u URL -D 数据库名 -T 表名 --columns --batch

获取表中的数据

我们使用

python sqlmap.py -u URL -D 数据库名 -T 表名 -C "字段名(多字段用,分隔)" --dump --batch

这样会将对应字段的值全部查询并保存起来,如果数目比较大 也可以指定 --start --stop 来指定获取哪些数据。

 可以看到这里我们获取一条数据,并且数据会保存在CSV中,要注意如果我们获取到的数据中有加密的,会默认进行暴力破解,所以会有些慢。

使用文件进行漏洞测试

有时候我们测试的接口需要登录才能进行测试,我们可以通过--cookie=COOKIE来添加cookie进行测试,还有一种最简单的方法 我们可以首先用浏览器进入到测试系统,然后F12查看我们的请求

在请求进行右键,选择COPY里面的copy request headers ,之后将复制内容保存到文件中(如a.txt)

 

可以看到若是post请求,我们是没赋值body的,因此还需要进行参数的添加,我们可以通过copy as cUrl(cmd) 从中抽出其中的body,然后以参数1=值1&参数2=值2的方式拼接到请求上。

 

之后利用使用如下语句进行测试即可

python sqlmap.py -r a.txt --batch --level 3

结语

至此,对于sqlmap的简单使用就结束了,我们可以看到最简单的使用,就已经可以将我们的整个数据给爬取了,因此在日常工作中一定要注意代码规范,尽量避免SQL注入的出现。

补充说明(sqlmap选项)

目标:至少要选中一个参数

-u URL, --url=URL   目标为 URL (例如. "http://www.site.com/vuln.php?id=1")

-g GOOGLEDORK       将谷歌dork的结果作为目标url

请求:这些选项可用于指定如何连接到目标URL

--data=DATA         数据字符串通过POST发送

--cookie=COOKIE     HTTP Cookie的值

--random-agent      随机选择 HTTP User-Agent 头的值

--proxy=PROXY       使用代理去连接目标URL

--tor               使用匿名网络

--check-tor         检查Tor是否正确使用 

注入:这些选项可用于指定要测试哪些参数,提供自定义注入负载和可选篡改脚本

-p TESTPARAMETER    可测试的参数

--dbms=DBMS         将后端DBMS强制到此值

-r 文件名 使用指定文件的请求来进行测试

检测:这些选项可用于定制检测阶段

--level=LEVEL       执行的测试级别(1-5, 默认 1)

--risk=RISK         执行测试的风险 (1-3, 默认 1)

技术:这些选项可用于调整特定SQL注入的测试的技术

 --technique=TECH    SQL注入技术选择 (默认 "BEUSTQ")

枚举:T这些选项可用于枚举后端数据库管理系统的信息、结构和数据表。此外,还可以运行自己的SQL语句

-a, --all           检索全部

 -b, --banner        检索 banner

--current-user      检索当前用户

--current-db        检索当前数据库

--passwords         列出用户密码的hash值

 --tables            列出表

 --columns           列出字段

-schema            列出DBMS schema

 --dump              Dump DBMS数据库表的条目

--dump-all          Dump 所有DBMS数据库表的条目

 -D DB               指定数据库

 -T TBL              指定表

 -C COL              指定字段

操作系统访问:

这些选项可用于访问后端数据库管理系统底层操作系统

--os-shell          提示为交互式操作系统shell

--os-pwn            提示为OOB外壳,Meterpreter或VNC

通用:

这些选项可用于设置一些通用的工作参数

--batch             永远不要要求用户输入,使用默认行为

--flush-session     刷新当前目标的会话文件

 杂项:

--sqlmap-shell      提示输入交互式sqlmap shell

--wizard            初学者的简单向导界面


http://chatgpt.dhexx.cn/article/Bqsu0iVg.shtml

相关文章

安全测试之sql注入

目录 1. 概述1.1 web安全渗透测试分类web数据库安全(sql注入漏洞)web应用服务器安全(文件上传漏洞,文件包含漏洞)web客户端安全(XSS跨站攻击) 1.2 sql注入原理1.3 sql注入危害1.4 sql注入实现方…

渗透测试之sql注入

原文地址 什么是SQL注入? SQL 注入(SQL Injection)是发生在 Web 程序中数据库层的安全漏洞,是网站存在最多也是最简单的漏洞。主要原因是程序对用户输入数据的合法性没有判断和处理,导致攻击者可以在 Web 应用程序中事…

如何快乐地检测SQL注入

这估计大家也都发现了,测试SQL注入这种漏洞啊,又有WAF页面又没有明显的报错的情况下, 测试起来就是一个字,烦。 有waf: 我 and 11, 啪,它拦了。 我 order by, 啪,它拦了。 我 sleep(5), 啪,…

SQL注入(一)之原理与检测

一 SQL注入攻击原理 01 注射式攻击的原理 注入产生的原因是接受相关参数未经处理直接带入数据库查询操作;注入攻击属于服务端攻击,他与操作系统、数据库类型、脚本语言类型无关总之一句话: 注入产生的原因是接受相关参数未经处理直接带入数据库查询操作。02 sql注入…

25显函数求导数

1、显函数求导数

人工智能之数学基础----隐函数求导和相关变化率

本章主要讲解隐函数求导和相关变化率,大家理解什么叫隐函数及其如何求导 隐函数求导 相关变化率 隐函数求导 首先我们来理清什么叫隐函数,讲解隐函数之前我们来讲显函数,因为隐函数是相对显函数而言的 y f ( x ) yf(x) yf(x)像这种函数中&am…

Python应用:画出任意二维函数的轨迹

一、提要 对于显函数,其曲线可以通过给出定义域和对应的函数值画出。然而对于一些隐函数,不能显式表达,其曲线如何画出?如果从定义域内,逐点求出函数值,然后画出点序就不是一个很好的主意。用计算方法求出所…

Matlab之函数绘图函数ezplot

一、功能 可以直接调用ezplot进行函数绘制 二、语法 1.ezplot(fun) 绘制表达式 fun(x) 在默认定义域 -2π < x < 2π 上的图形&#xff0c;其中 fun(x) 仅是 x 的显函数。 fun 可以是函数句柄、字符向量或字符串。 2.ezplot(fun,[xmin,xmax]) 绘制 fun(x) 在以下域…

隐函数作图

背景介绍 Matlab提供了一系列绘图函数&#xff0c;常见的包括绘制2D曲线的plot函数、绘制2D隐函数曲线的ezplot函数、绘制3D曲面的mesh和surf函数、绘制3D显函数曲面的ezmesh和ezsurf函数。值得注意的是&#xff0c;ez系列的绘图函数里只有ezplot是绘制隐函数曲线的&#xff0c…

基础30讲 第11讲 多元函数微分学

目录 综述1、基本概念1.1 平面点集邻域边界区域聚点 1.2 极限1.3 连续1.4 偏导数1.5 可微1.6 偏导数的连续性 2、多元函数微分法则2.1 链式求导法则2.2 隐函数存在定理&#xff08;公式法&#xff09; 3、多元函数的极值与最值3.1 概念3.2 无条件极值(数学公式计算只适用于2元)…

MATLAB符号函数绘制各种函数图像,ezplot()函数 ezplot3()函数

我们学习常遇见的函数种类有显函数&#xff0c;隐函数&#xff0c;参数方程三种&#xff0c;对于隐函数绘制图像比较麻烦&#xff0c;给大家介绍一种简单实用的一中画函数的方法。 函数介绍 二维曲线ezplot()函数 ezplot()函数用于绘制显函数&#xff0c;隐函数&#xff0c;…

9.5 隐函数求导法则

本篇内容我们说一下隐函数求导的法则&#xff0c;之前在初次接触导数的时候&#xff0c;我们有总结过一部分隐函数求导的内容&#xff0c;虽然和本篇的内容有一部分相似&#xff0c;但是可以再看一看用于对比理解。上正文。 一、概念阐明 1.什么叫隐函数&#xff1f; 形如F(x…

MATLAB绘图命令fimplicit绘制隐函数图形入门详解

一、fimplicit基本语法 数学上的一元函数可以分为显函数和隐函数两大类&#xff0c;显函数的优点是能够明显的看出来因变量和自变量之间的关系&#xff0c;也就是对应法则&#xff0c;但是隐函数往往无法看出对应法则&#xff0c;而且很多时候都不能轻松的转化为显函数。 fplot…

高数-隐函数求导

目录 什么是隐函数 一个方程&#xff0c;两个未知数 一个方程&#xff0c;三个未知数 方程组求偏导 隐函数求导一般有两种情形&#xff0c;一种是单个方程&#xff0c;另一种是方程组。下面来介绍这两种情形的求导方法。 什么是隐函数 首先我们要明确&#xff1a;什么是隐函…

数学分析 - 隐函数

简介&#xff1a;用多元函数&#xff08;隐函数中自变量和因变量同时存在的表达式的作为多元函数的表达式&#xff09;的思维来分析隐函数 隐函数的概念 || 定义&#xff1a;隐函数的定义&#xff08;一个多元函数F(x, y)构成的方程F(x, y) 0&#xff0c;隐含了一个隐函数yf(…

MATLAB二元隐函数绘图命令fimplicit3详解

一、引言 fimplicit3功能是绘制二元隐函数的曲面图形。 类似于一元函数分为显函数和隐函数&#xff0c;二元函数也有显函数和隐函数之分。形如zf(x,y)的二元函数称为显函数&#xff0c;而由三元方程f(x,y&#xff0c;z)0确定的二元函数称为隐函数。 二元函数对应的几何图形是空…

隐函数的求导

目录 隐函数的定义&#xff1a; 例题&#xff1a; 参数方程确定函数的导数 例题&#xff1a; 相关变化率 ​编辑 隐函数的定义&#xff1a; 有隐函数就有显函数&#xff0c;我们首先要了解显函数的定义&#xff1a; 隐函数&#xff1a; 例如&#xff1a; 对于有些隐函数&a…

4.1 显函数曲线的动画

例 4.1.1 作出幂函数 yx^k 的动画 (k从0.1变到3)。 解 输入以下命令&#xff1a; with(plots): K:30: a:0.1: L:seq(plot(x^(a*k), x0…4), k0…K): display(L, insequencetrue, scalingconstrained, tickmarks[2,2], view[-0.2…4, -0.2…4]); 输出动画&#xff1a; 例 4.1.2…

095: 复习习题 求导题型 Case1:显函数求导;Case2:隐函数求导;Case3:参数方程确定的函数

095: 复习习题 求导题型 Case1&#xff1a;显函数求导&#xff1b;Case2&#xff1a;隐函数求导&#xff1b;Case3&#xff1a;参数方程确定的函数

《高数》笔记 一

为什么学高数&#xff1f; 锻炼自己的思维&#xff0c;以防老年痴呆。 如何服用高等数学&#xff1f;&#xff08;学习方法&#xff09; 做题不盲目做&#xff0c;一点点增加难度&#xff0c;难题一定要自己做出来不急于求成知道答案&#xff0c;过程对你很重要。 课程目标…