【CTF Web】Pikachu 本地文件包含 Writeup(文件包含漏洞+GET请求)

embedded/2024/12/21 22:52:31/

File Inclusion(文件包含漏洞)概述

文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。 比如 在PHP中,提供了:
include(),include_once()
require(),require_once()
这些文件包含函数,这些函数在代码设计中被经常使用到。
大多数情况下,文件包含函数中包含的代码文件是固定的,因此也不会出现安全问题。 但是,有些时候,文件包含的代码文件被写成了一个变量,且这个变量可以由前端用户传进来,这种情况下,如果没有做足够的安全考虑,则可能会引发文件包含漏洞。 攻击着会指定一个“意想不到”的文件让包含函数去执行,从而造成恶意操作。 根据不同的配置环境,文件包含漏洞分为如下两种情况:
1.本地文件包含漏洞:仅能够对服务器本地的文件进行包含,由于服务器上的文件并不是攻击者所能够控制的,因此该情况下,攻击着更多的会包含一些 固定的系统配置文件,从而读取系统敏感信息。很多时候本地文件包含漏洞会结合一些特殊的文件上传漏洞,从而形成更大的威力。
2.远程文件包含漏洞:能够通过url地址对远程的文件进行包含,这意味着攻击者可以传入任意的代码,这种情况没啥好说的,准备挂彩。
因此,在web应用系统的功能设计上尽量不要让前端用户直接传变量给包含函数,如果非要这么做,也一定要做严格的白名单策略进行过滤。
你可以通过“File Inclusion”对应的测试栏目,来进一步的了解该漏洞。

提示

先了解一下include()函数的用法吧


解法

引入了 file1.php,可能存在文件包含漏洞。

http://172.17.149.214:8765/vul/fileinclude/fi_local.php?filename=file1.php&submit=%E6%8F%90%E4%BA%A4#

访问:

http://172.17.149.214:8765/vul/fileinclude/include/file1.php

审查元素。

<div class="page-content"><div id="fi_main"><p class="fi_title">which NBA player do you like?</p><form method="get"><select name="filename"><option value="">--------------</option><option value="file1.php">Kobe bryant</option><option value="file2.php">Allen Iverson</option><option value="file3.php">Kevin Durant</option><option value="file4.php">Tracy McGrady</option><option value="file5.php">Ray Allen</option></select><input class="sub" type="submit" name="submit"></form><img class="player" src="include/kobe.png">
<p class="nabname">
Kobe Bryant is one of the NBA's best scorer, breakthrough, shooting, free throws, three-pointers he chameleonic, almost no offensive blind area, single-game 81 points of personal record is powerful to prove it.In addition to crazy to points, Bryant's organizational ability is also very outstanding, often served as the first sponsors on offense.Bryant is the best form of defence in the league, one of personal defense is very oppressive.
He is a great NAB player!
</p>            </div></div>

可以看到图片路径是 http://172.17.149.214:8765/vul/fileinclude/include。

用 dirsearch 扫描。

dirsearch -u http://172.17.149.214:8765/vul/fileinclude/include

没有找到文件,可能被拦截了。

访问:

http://172.17.149.214:8765/vul/fileinclude/fi_local.php?filename=file6.php&submit=%E6%8F%90%E4%BA%A4#

找到密码。


声明

本博客上发布的所有关于网络攻防技术的文章,仅用于教育和研究目的。所有涉及到的实验操作都在虚拟机或者专门设计的靶机上进行,并且严格遵守了相关法律法规

博主坚决反对任何形式的非法黑客行为,包括但不限于未经授权的访问、攻击或破坏他人的计算机系统。博主强烈建议每位读者在学习网络攻防技术时,必须遵守法律法规不得用于任何非法目的。对于因使用这些技术而导致的任何后果,博主不承担任何责任


http://www.ppmy.cn/embedded/125018.html

相关文章

Ubuntu22.04 获取docker 镜像失败如何处理

最近在使用docker 获取镜像发现 如下错误 无法正常的访问 如果能正常上网的情况下&#xff0c;可以尝试如下操作 首先进入/etc/docker/daemon.json文件 然后在里面加入下面的配置 { "registry-mirrors": ["https://docker.registry.cyou", "htt…

【原创】MacOS 上Android Studio 登录问题解决方法

在 Android Studio 右上角有一个用户登录的按钮。 登录之后&#xff0c;可以启用 Google 的人工智能代码填写功能插件&#xff0c;目前虽然是预览版&#xff0c;但是毕竟好奇&#xff0c;想用一用。 错误做法 按照正常流程打开&#xff1a;启动台-> Android Studio 点击登…

PHP如何解析配置文件

在PHP中解析配置文件有多种方法&#xff0c;具体取决于配置文件的格式。常见的配置文件格式包括INI文件、YAML文件、JSON文件以及PHP数组文件&#xff08;即PHP文件本身包含配置数组&#xff09;。下面是一些常用的方法来解析这些配置文件。 1. 解析INI文件 INI文件是最常见的…

Spring Boot 进阶-SpringBoot如何整合多数据源场景

对多数据源大家应该不陌生,一般的在单个应用都会存在一个数据库,一个文件存储。这里所说的数据库就是我们描述的数据源。那么多数据源的意思其实通俗来讲就是在一个单体应用中存在两个以上的数据库。这个时候就需要我们对多个数据源进行分别对待进行处理了。 理解多数据源的…

如何在百度地图上添加自己店铺的位置?

随着互联网的快速发展&#xff0c;如今许多事都可以通过网络去解决&#xff0c;例如线上支付、线上购物、线上订餐等&#xff0c;包括日常出行&#xff0c;人们也可以依靠地图软件去规划路线&#xff0c;然后导航至目的地。其中&#xff0c;百度地图作为国内领先的地图导航平台…

React 为什么引入 Hooks ?

1. 简化状态管理和副作用 Hooks 允许你直接在函数组件中处理状态和副作用&#xff0c;无需类和复杂的生命周期方法。 2.逻辑拆分与重用 通过自定义 Hooks&#xff0c;你可以将复杂的逻辑拆分成小的可重用单元&#xff0c;从而使代码更简洁、可读。 3. 常见 Hooks 示例 use…

使用C# winform 开发一个任务管理器

前言 为啥要开发这个呢 ,系统自带的关闭有些程序就关不了,它有好多线程,你关一其中一个它后台又重新开了一个,关不完,使用我这个呢 就把所有相同名称进程看作一个,一关就关 下载软件 v1 Form1.cs using System; using System.Windows.Forms;namespace TaskMaster {public pa…

MAC备忘录空白解决方案

打开icloud->备忘录 取消勾选同步此MAC后再次勾选&#xff0c;然后点击完成即可。