渗透之sql注入联合查询的注入
sql注入产生的原因:
由于程序过滤不严谨,导致用户有一些异常输入,最终触发数据库的查询。所以会出现sql注入这个问题。有些恶意的人就会利用这些信息导致数据库泄露。
注意:一般我们存在注入点我们会查询管理员的账号和密码;但是我们现在是在前端页面下的,我们并不知道管理员的数据在哪个数据库哪张表下的。(我们需要知道在哪个数据库,哪张表,哪个字段下;这个是前提)当我们发现一个注入点是首先将前置条件查询出来:1.mysql的版本号 select version();2.mysql的权限(用户),如果当前为root那么入侵成功率就很高。 select user();3.当前所在的数据库问题1:你现在有普通用户的权限,查到了管理员的账号和密码:1.管理员的后台找不到 2.管理员的密码破解不了此时该怎么办?回答:挖掘存储型XSS
第一关实际操作:
1:前端输入
在这里我们搭建了一个sql注入的靶场,如下图所示,在web的前端页面中使用id来接受用户传递进来的值。将值传递给后端进行处理。
后端处理代码:如下图可知前端web页面输入的值由id传递给后端的sql代码中处理。
2:逃逸单引号
我们这里就可以思考如何控制用户的输入触发数据的额外查询。要是传递进来的sql语句能够被执行就好了。但是传递进来的所有值都被单引号包裹,全部被变成了字符串,这是我们就要思考如何逃出单引号的包围。
当我们传递进来的不是1,而是1’ 时:就会报错,报错的原因就是多了一个单引号,如下图:

这里提示我们有语法错误,那么就意味着我们已经逃逸出了单引号,但是后面还有一个单引号所以会报错。此时我们需要闭合单引号。我们可以使用注释将后面的单引号注释掉:
我们这里的注入点为 1' ,但是后面还有一个单引号,我们需要将后面的另一个单引号注释掉;
mysql中的三种注释方法:“-- ”:注意后面的空格在web的url中我们需要写为“+”,“--+”#/* */
如下图:并没有报错,说明我们找到了注入点并可以成功的闭合,我们就可以在此处插入sql注入。


我们查看后端页面:

3.使用联合查询进注入
爆破列数:
使用联合查询需要有一个前置条件,两个表的列相同。我们怎么能够知道这个表有几列?
解决方法:
此时我们就需要一个函数 order by:
order by 是排序的意思,通常来说我们是通过字段来排序的,但是order by后面也可以以跟数字;
order by 1 :表示根据第一列来排序
order by 2 :表示根据第二列来排序
如下图,如果order by后面的数字大于真实的列数时就会报错:我们就可以查出列数:

在sql靶场中进行操作:
当order by 3时页面正常显示,当order by 4时页面报错,说明我们当前所处的表有3列:

联合查询
我们前面已经知道这张表的列数了,所以这里写三个参数。


如上图,联合查询后还是没有任何变化,原因:
- 原因:联合查询的条件是前面的条件为假,后面的联合查询才能为真,就意味着前面的已经查到了所以后面的就不执行了。此时我们需要使前面的条件为假,我们有两种方案:
1:查一个不存在的id
2:第二种使使用负号
如下图:当传递进来的id为负数,前面的为假,联合查询后面的为真。在name和password字段上就显示2,3。
这里我们发现,前端页面显示的是2,3字段,说明数据就出在这两个字段上。“1”也可以出数据但是没法在前端页面上显示。
此时可以就可以控制2,3字段的内容:

查数据库名,版本号,用户:
将2,3字段替换:查数据库和版本

此时我们就查出了数据库和数据库的版本:

查用户:

爆破表名:
既然已经知道注入点在2,3字段,我们从该字段下手。
之前我们知道自己的数据库名,叫做: security。那么现在我们需要知道本数据库下有哪些表。
此外我们知道数据库存在一个系统自带的数据库: information_schema ;其中包含表的信息。
我们就可以通过查询这个数据库中的信息吧当前数据库下的表全查出来:
注意:基本上mysql中都会存在information_schema这个系统自带的数据库。但是这个数据库只有root用户才能访问,由于我们上面已经查询到了当前的用户为root,所以我们就直接利用它。如果不是root用户还有其他的数据库可以替代它。
我们去查看information_schema数据库具体信息:其中叫tables表中有我们想要的信息,我们可以使用这张表查询我们想要的信息:


开始爆破表名:如下图就爆破出了当前数据库下的所有表名。
在下面几张表中最可能储存用户和密码信息的为users表。但是我们不知道该表的字段名,所以我们继续利用information_schema来爆破字段名。
id=-1%27%20union select 1,group_concat(table_name),3 from information_schema.tables where table_schema="security" --+

爆破列名:
在information_schema中,列名在:columns这张表中。


开始爆破表名:如下图就吧列名爆破出来了。
id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema="security" and table_name="columns"--+

爆破具体值:
因为我们现在知道表名以及字段名,我们就可以直接查询(users这张表在本数据库下面):
d=-1' union select 1,group_concat(username,0x3a,password),3 from users--+

到此,我们成功的完成了一次注入!
相关文章:
渗透之sql注入联合查询的注入
sql注入产生的原因: 由于程序过滤不严谨,导致用户有一些异常输入,最终触发数据库的查询。所以会出现sql注入这个问题。有些恶意的人就会利用这些信息导致数据库泄露。 注意:一般我们存在注入点我们会查询管理员的账号和密码&#…...
NLP transformers - 文本分类
Text classification 文章目录 Text classification加载 IMDb 数据集Preprocess 预处理EvaluateTrainInference 本文翻译自:Text classification https://huggingface.co/docs/transformers/tasks/sequence_classification notebook : https://colab.research.googl…...
QT 开发COM(ActiveX)组件基础介绍和方案验证
一、COM简介 1.1 COM是什么? COM,Component Object Model,即组件对象模型,是一种以组件为发布单元的对象模型,这种模型使各软件组件可以用一种统一的方式进行交互。COM 既提供了组件之间进行交互的规范,也…...
[1673]jsp在线考试管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 JSP 在线考试管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Mysql5.0&…...
每日一算法
问题 等待登机的你看着眼前有老有小长长的队伍十分无聊,你突然 想要知道,是否存在两个年龄相仿的乘客。每个乘客的年龄用 1个0 到 36500 的整数表示,两个乘客的年龄相差 365 以内 就认为是相仿的。 具体来说,你有一个长度为 n 的…...
Spring Cloud Gateway直接管理Vue.js的静态资源
1. 构建Vue.js应用 像之前一样,构建你的Vue.js应用,并将生成的静态资源(位于dist目录)复制到Spring Boot项目的某个目录,比如src/main/resources/static。 2. 配置Spring Boot静态资源处理 Spring Boot默认会处理sr…...
14.集合、常见的数据结构
集合 概念 Java中的集合就是一个容器,用来存放Java对象。 集合在存放对象的时候,不同的容器,存放的方法实现是不一样的, Java中将这些不同实现的容器,往上抽取就形成了Java的集合体系。 Java集合中的根接口&#x…...
NLP从入门到实战——命名实体识别
1. 命名实体识别 1.1 概念 中文命名实体识别(Named Entity Recognition,NER是指识别中文文本中实体的边界和类别。命名实体识别是文本处理中的基础技术,广泛应用在自然语言处理、推荐系统、知识图谱等领域,比如推荐系统中的基于…...
接口测试工具-postman介绍
一、介绍 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。 作用:常用于进行接口测试。 它可以模拟浏览器发起任何形式的HTTP请求...
日志中看到来自User Agent go-http-client / 1.1的大量请求(go-http-client 1.1)服务器爆了
在日志中看到来自User Agent go-http-client / 1.1的大量请求 The go-http-client/1.1 User Agent 是Google的Bot / Crawler 这不是真的。这可能是指Go库(根据您提到的来源,由Google开发,但是我找不到可靠的信息)。 之前写过“G…...
yolov8 区域声光报警+计数
yolov8 区域报警计数 1. 基础2. 报警功能2. 1声音报警代码2. 2画面显示报警代码 3. 完整代码4. 源码 1. 基础 本项目是在 yolov8 区域多类别计数 的基础上实现的,具体区域计数原理可见上边文章 2. 报警功能 设置一个区域region_points,当行人这一类别…...
《QT实用小工具·五十五》带有标签、下划线的Material Design风格输入框
1、概述 源码放在文章末尾 该项目实现了一个带有标签动画、焦点动画、正确提示、错误警告的单行输入框控件。下面是demo演示: 项目部分代码如下所示: #ifndef LABELEDEDIT_H #define LABELEDEDIT_H#include <QObject> #include <QWidget>…...
用Go实现一个无界资源池
写在文章开头 我们希望通过go语言实现一个简单的资源池,而这个资源池的资源包括但不限于: 数据库连接池线程池协程池网络连接池 只要这些资源实现我们指定的关闭方法,则都可以通过我们封装的资源池进行统一管理,需要简单说明一下这个资源池…...
Apache Seata基于改良版雪花算法的分布式UUID生成器分析2
title: 关于新版雪花算法的答疑 author: selfishlover keywords: [Seata, snowflake, UUID, page split] date: 2021/06/21 本文来自 Apache Seata官方文档,欢迎访问官网,查看更多深度文章。 关于新版雪花算法的答疑 在上一篇关于新版雪花算法的解析中…...
13、揭秘JVM垃圾回收器:面试必备知识,你掌握了吗?
13.1、前文回顾 在上一篇文章中,我们详细分析了触发Minor GC的时机,以及对象何时会从新生代迁移到老年代。我们还讨论了为了确保新生代向老年代的内存迁移安全,需要在Minor GC之前如何检查老年代的内存空间,以及在什么情况下会触发老年代的Full GC,以及老年代的垃圾回收算…...
治疗耳鸣患者案例分享第二期
“患者耳鸣20年了,目前耳朵没有堵或者胀的感觉,但是偶尔有点痒,平时会有头晕头胀这种情况,然后头晕是稍微晕炫一下。然后头疼是经常有的,头胀不经常。” 患者耳鸣持续20年,虽然耳朵没有堵或胀的感觉&#x…...
数据加密的方法
这些方法可以单独或结合使用,以提高数据的安全性和保护隐私。 对称加密:使用相同的密钥对数据进行加密和解密。常见的对称加密算法包括DES、AES和RC4。 非对称加密:使用一对密钥(公钥和私钥)对数据进行加密和解密。发…...
Android BINDER是干嘛的?
1.系统架构 2.binder 源码位置: 与LINUX传统IPC对比...
运维各种中间件的手动安装(非常详细)
压缩文件夹 tar -zcvf newFolder.tar.gz oldFolder 把oldFolder文件夹压缩成newFolder.tar.gz解压文件夹 tar -zxvf 压缩文件名.tar.gzlinux安装jdk (参考 https://blog.csdn.net/qq_42269466/article/details/124079963 ) 1、创建目录存放jdk包 mkd…...
【Android】Android应用性能优化总结
AndroidApp应用性能优化总结 最近大半年的时间里,大部分投在了某国内新能源汽车的某款AndroidApp开发上。 由于该App是该款车上,常用重点应用。所以车厂对应用性能的要求比较高。 主要包括: 应用冷启动达到***ms。应用热(温)启动达到***ms应…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
