热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php文件包含漏洞的危害,php文件包含漏洞小结

本文由东塔网络安全学院学员---吴同学投稿。0x00文件包含的出现开发者为了节约开发时间,可以将重复利用的代码使用文件包含的函数,如include&#x

本文由 东塔网络安全学院学员---吴同学 投稿。

0x00 文件包含的出现

开发者为了节约开发时间,可以将重复利用的代码使用文件包含的函数,如include,reuqire等进行文件包含,大大节约开发的时间和成本。

0x01文件包含函数

Include:包含并指定运行的函数。如果未找到文件则include结构会发出一条警告。

Require:包含并指定运行的函数。如果未找到文件则include结构会发出一个致命的错误。

Include_once:include_once语句和include语句完全相同,唯一区别是php会检查该文件是否已经被包含过,如果是则不会包含。

Require_once:require_once语句和require语句完全相同,唯一区别是php会检查该文件是否已经被包含过,如果是则不会包含。

0x02 php伪协议

Php支持的伪协议和封装协议:

具体协议请参照

1742c891becad0e19dca606bf381be52.png

0x03常见伪协议的用法:

1. file://:指定一个绝对路径包含,该路径表示服务器所存在的文件的路径。

例如:

3d6a24bf86dc29906e1c98f79b461829.png

2. php://

1. php://input是个可以访问请求的原始数据的只读流,在PHP5.6之前打开的数据流只能读取一次。需要在配置文件php.ini的allow_url_include设置为on。

例如:http://192.168.10.115/test.php?file=php://input 【POST DATA】,使用菜刀连接方式如下:

02c8ac6e4d655fec8e94ff09c79c3287.png

2. php://filter是一种元封装器,设计用于数据流打开时的筛选过滤应用。使用以下的参数将作为它路径的一部分。

b178bb644de4c9979dd8f97f45844fcf.png

例子:

1c2b1d00c8a16894b669d2beae7197d6.png

读取的内容为base64编码。

0x04例题

下面是来源于XTCTF的一道文件包含题:

e91d24fda21bd539a854567aaa619fdf.png

如图源码显示,$page表示GET传过来的参数,会将该参数进行包含。在while循环条件中,strstr表示查找字符串的首次出现,如果存在php://,循环不会结束。str_replace会将$page参数中中的php://字符替换为空,说明该循环是为了除掉php://伪协议。

这里可以发现,php://被过滤无法使用,file://需要知道本地文件的路径,我们可以使用data://伪协议进行包含。

使用playload:?page=data://text/plain,

deb644e9058cc7316733d26f39f33072.png

输出当前文件的路径,然后使用playload:?page=data://text/plain,

79d187db5b22cef69a6e0e4b8267d88d.png

读出当前路径下的所有文件,看到flag文件,读出该文件的内容就能拿到flag值。playload:?page=data://text/plain,

d39e2cfbee3ef94ee2cc1a9318780429.png



推荐阅读
  • JavaScript 实现图片文件转Base64编码的方法
    本文详细介绍了如何使用JavaScript将用户通过文件输入控件选择的图片文件转换为Base64编码字符串,适用于Web前端开发中图片上传前的预处理。 ... [详细]
  • php三角形面积,335宝石大全
    php三角形面积,335宝石大全 ... [详细]
  • 2019-2020学年 20174325 叶竞蔚 《网络对抗技术》实验六:Metasploit基础应用
    本实验旨在掌握Metasploit框架的基本应用方法,重点学习三种常见的攻击方式及其实施思路。实验内容包括一次主动攻击(如MS08-067)、一次针对浏览器的攻击(如MS11-050)以及一次针对客户端的攻击(如Adobe漏洞利用)。此外,还包括成功应用一个辅助模块。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • CSS Border 属性:solid 边框的使用详解
    本文详细介绍了如何在CSS中使用solid边框属性,包括其基本语法、应用场景及高级技巧,适合初学者和进阶用户参考。 ... [详细]
  • 本文介绍了SIP(Session Initiation Protocol,会话发起协议)的基本概念、功能、消息格式及其实现机制。SIP是一种在IP网络上用于建立、管理和终止多媒体通信会话的应用层协议。 ... [详细]
  • 本文详细介绍了在Windows系统中如何配置Nginx以实现高效的缓存加速功能,包括关键的配置文件设置和示例代码。 ... [详细]
  • 本文探讨了如何通过Service Locator模式来简化和优化在B/S架构中的服务命名访问,特别是对于需要频繁访问的服务,如JNDI和XMLNS。该模式通过缓存机制减少了重复查找的成本,并提供了对多种服务的统一访问接口。 ... [详细]
  • importjava.io.*;importjava.util.*;publicclass五子棋游戏{staticintm1;staticintn1;staticfinalintS ... [详细]
  • RTThread线程间通信
    线程中通信在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取& ... [详细]
  • Vulnhub DC3 实战记录与分析
    本文记录了在 Vulnhub DC3 靶机上的渗透测试过程,包括漏洞利用、内核提权等关键步骤,并总结了实战经验和教训。 ... [详细]
  • 本文介绍了编程语言的基本分类,包括机器语言、汇编语言和高级语言的特点及其优缺点。随后详细讲解了Python解释器的安装与配置方法,并探讨了Python变量的定义、使用及内存管理机制。 ... [详细]
  • 从零开始编译Linux系统:第16章 全新起点
    本章将详细介绍如何从零开始编译一套完整的Linux系统,涵盖关键组件如glibc库的介绍及其重要性。通过本文,读者将了解从源代码构建Linux系统的全过程。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
author-avatar
从妖妖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有