Python 开发 利用SQLmap API接口进行批量的SQL注入检测.(SRC挖掘)

article/2025/8/8 16:29:05

目录

SQL注入检测步骤:

(1)创建新任务记录任务ID.

(2)设置任务ID的配置信息.(扫描信息)

(3)启动对应ID的扫描任务.

(4)获取对应ID的扫描状态.

(5)查看扫描的结果.

SQL注入批量检测步骤:

(1)前提:需要在文件输入扫描的URL.

(2)打开文件,是可以 查看有没有注入点. 


免责声明:

严禁利用本文章中所提到的工具和技术进行非法攻击,否则后果自负,上传者不承担任何责任。


SQL注入检测步骤:

(1)创建新任务记录任务ID.

1.  在 SQLmap 文件下打开命令行执行.

python sqlmapapi.py -s

2. 在 PyCharm 代码里,创建新任务记录任务ID.

import requests
import json#创建任务ID
task_new_url='http://127.0.0.1:8775/task/new'       #创建任务的URL地址(上面执行文件时的IP地址),在IP地址后面加//task/new.
resp=requests.get(task_new_url)                     #使用get方式请求.
task_id=resp.json()['taskid']                       #打印json格式下的taskid数据.
print(task_id)


(2)设置任务ID的配置信息.(扫描信息)

data={                      #输入扫描的地址.'url':'http://192.168.43.53:801/sql/Less-1/?id=1'
}
headers={                   #数据包里的数据.'Content-Type':'application/json'
}
task_set_url='http://127.0.0.1:8775/option'+task_id+'/set'          #添加的是上面创建的新任务ID(/option和/set这二个是固定的.)
task_set_resp=requests.post(task_set_url,data=json.dumps(data),headers=headers) #使用post方式提交.data=是提交的数据(提交data里面的数据.)
print(task_set_resp.content.decode('utf-8'))


(3)启动对应ID的扫描任务.

task_start_url='http://127.0.0.1:8775/scan/'+task_id+'/start'       #添加的是上面创建的新任务ID(/scan和/start是启动对应ID的扫描任务文件.)
task_start_resp=requests.post(task_start_url,data=json.dumps(data),headers=headers) #使用post方式提交.data=是提交的数据(提交data里面的数据.)
print(task_start_resp.content.decode('utf-8'))                      #打印utf-8格式


(4)获取对应ID的扫描状态.

task_status_url='http://127.0.0.1:8775/scan/'+task_id+'/status'     #添加的是上面创建的新任务ID(/scan和/status是启动对应ID的扫描任务文件.)
task_status_resp=requests.get(task_status_url)                      ##使用post方式提交
print(task_status_resp.content.decode('utf-8'))                     #打印utf-8格式


(5)查看扫描的结果.

http://127.0.0.1:8775/scan/a7554d9e12ed446f/data        #a7554d9e12ed446f就是下面的数据.


SQL注入批量检测步骤:

(1)前提:需要在文件输入扫描的URL.

import requests
import json
import timedef sqlmapapi(url):headers = {  # 数据包里的数据.'Content-Type': 'application/json'}data = {                                         # 输入扫描的地址.'url': url}task_new_url = 'http://127.0.0.1:8775/task/new'  # 创建任务的URL地址(在IP地址后面加//task/new).  前面的四个就是获取ID信息.resp = requests.get(task_new_url)                # 使用get方式请求.task_id = resp.json()['taskid']                  # 打印json格式下的taskid数据.#print(resp.content.decode('utf-8'))              #打印utf-8格式if 'success' in resp.content.decode('utf-8'):                                           #如果success在resp.content.decode('utf-8')里面print('sqlmapapi 创建任务ID成功!')scan_task_set_url = 'http://127.0.0.1:8775/option/' + task_id + '/set'              #添加的是上面创建的新任务ID(/option和/set这二个是固定的.)scan_task_set = requests.post(scan_task_set_url, data=json.dumps(data), headers=headers)    #使用post方式提交.data=是提交的数据(提交data里面的数据.)#print(task_set_resp.content.decode('utf-8'))                                       #打印utf-8格式if 'success' in scan_task_set.content.decode('utf-8'):                              #如果success在task_set_resp.content.decode('utf-8')里面设置任务ID的配置print('sqlmapapi 设置任务ID的配置成功!')task_start_url = 'http://127.0.0.1:8775/scan/' + task_id + '/start'             #添加的是上面创建的新任务ID(/scan和/start是启动对应ID的扫描任务文件.)task_start_resp = requests.post(task_start_url, data=json.dumps(data),headers=headers)  # 使用post方式提交.data=是提交的数据(提交data里面的数据.)# print(task_start_resp.content.decode('utf-8'))                                #打印utf-8格式if 'success' in task_start_resp.content.decode('utf-8'):                        #如果success在task_start_resp.content.decode('utf-8')里面print('sqlmap 扫描启动成功!')while 1:task_status_url = 'http://127.0.0.1:8775/scan/' + task_id + '/status'   #添加的是上面创建的新任务ID(/scan和/status是启动对应ID的扫描任务文件.)task_status_resp = requests.get(task_status_url)                        #使用post方式提交#print(task_status_resp.content.decode('utf-8'))                        #打印utf-8格式if 'running' in task_status_resp.content.decode('utf-8'):               #还在扫描中print(url + '还在扫描中!')passelse:                                                                   #否则扫描成功!print('sqlmapapi 扫描结束!')task_data_url = 'http://127.0.0.1:8775/scan/' + task_id + '/data'   #打印data结果.scan_data = requests.get(task_data_url).content.decode('utf-8')                        #使用post方式提交with open(r'bgxg.txt', 'a+') as f:                                  #将结果写到bgxg.txt文件中.f.write(url + '\n')f.write(scan_data + '\n')f.write('下一个数据包'+'\n')f.close()scan_deltask_url = 'http://127.0.0.1:8775/task/' + task_id + '/delete'scan_deltask=requests.get(scan_deltask_url)if 'success' in scan_deltask.content.decode('utf-8'):print('删除 task id 成功')break   #结束(跳出)time.sleep(3)           #延迟3秒.if __name__ == '__main__':for url in open('url.txt'):url=url.replace('\n','')sqlmapapi(url)


(2)打开文件,是可以 查看有没有注入点

   

学习链接:2021小迪渗透测试/网络安全工程师全套(从入门到就业)_哔哩哔哩_bilibili


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

相关文章

使用sqlmap进行SQL注入检测

最近公司项目被扫描出有SQL注入的漏洞,通过百度之后,决定使用sqlmap进行SQL注入的检测。这里仅仅是记录一下注入检测的步骤。 检测前准备 sqlmap是一个python编写的工具,因此我们首先要进行python环境的搭建,然后再从sqlmap官网下载最新版本。 检测步骤 查看需要检测的注入…

安全测试之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;参数方程确定的函数