热门标签 | 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



推荐阅读
  • ①页面初始化----------收到客户端的请求,产生相应页面的Page对象,通过Page_Init事件进行page对象及其控件的初始化.②加载视图状态-------ViewSta ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • FIN7后门工具伪装成白帽工具进行传播
    fin7,后门,工具,伪装,成,白, ... [详细]
  • 渗透测试基础bypass绕过阻挡我们的WAF(下)
    渗透测试基础-bypass ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • 本文介绍了Windows Vista操作系统中的用户账户保护功能,该功能是为了增强系统的安全性而设计的。通过对Vista测试版的体验,可以看到系统在安全性方面的进步。该功能的引入,为用户的账户安全提供了更好的保障。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 本文探讨了容器技术在安全方面面临的挑战,并提出了相应的解决方案。多租户保护、用户访问控制、中毒的镜像、验证和加密、容器守护以及容器监控都是容器技术中需要关注的安全问题。通过在虚拟机中运行容器、限制特权升级、使用受信任的镜像库、进行验证和加密、限制容器守护进程的访问以及监控容器栈,可以提高容器技术的安全性。未来,随着容器技术的发展,还需解决诸如硬件支持、软件定义基础设施集成等挑战。 ... [详细]
  • 2019独角兽企业重金招聘Python工程师标准
    本文介绍了2019独角兽企业重金招聘Python工程师的标准。同时解释了Alpha、Beta、RC、GA、RTM、OEM、RVL、EVAL、RTL、α、β、λ等相关术语的含义和区别。 ... [详细]
  • OWASP(安全防护、漏洞验证工具)开放式Web应用程序安全项目(OWASP,OpenWebApplicationSecurityProject)是一个组织 ... [详细]
  • 深入浅出工控机加密
    工控机痛点在于不连外网,操作系统无法打补丁,病毒库无法更新,普通杀毒软件无用;因为是专用设备,用户的网管不敢在 ... [详细]
  • 【CTF 攻略】第三届 SSCTF 全国网络安全大赛—线上赛 Writeup
    【CTF 攻略】第三届 SSCTF 全国网络安全大赛—线上赛 Writeup ... [详细]
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社区 版权所有