首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >渗透测试文件包含漏洞原理与验证(1)——文件包含概述

渗透测试文件包含漏洞原理与验证(1)——文件包含概述

原创
作者头像
周周的奇妙编程
修改2024-11-12 08:56:09
修改2024-11-12 08:56:09
9030
举报
文章被收录于专栏:渗透测试专栏渗透测试专栏

文件包含概述

把可重复使用的函数写入到单个文件中,在使用该函数时,直接调用此文件,无需再次编写函数。这一调用文件的过程被称为包含。

文件包含漏洞产生的原因是在通过PHP函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。

几乎所有的脚本语言都会提供文件包含的功能,但文件包含漏洞在PHP WebApplication中居多,而在JSP、ASP、ASP.NET程序中却非常少,这是有些语言设计的弊端。在PHP中经常出现文件包含漏洞,但并不意味着其他语言不存在。

文件包含函数

  • include():找不到被包含文件时会产生警告(E_WARNING);
  • include_once():与include()类似,代码已经被包含则不会再次包含;
  • require():找不到被包含的文件时会产生致命错误(E_COMPILE_ERROR);
  • require_once():与require()类似,代码已经被包含则不会再次包含。

利用条件

(1)include等函数通过动态执行变量的方式引入需要包含的文件

(2)用户能控制该动态变量

示例

分别修改phpinfo.txt扩展名为:jpg、rar、xxx发现均可解析,只要文件内容符合PHP语法规范,任何扩展名都可以被PHP解析。

比如我们有一个include.php如下:

如果直接执行会发现结果是 sorry

修改访问加上 page=xxx.php 即可实现包含


本文部分图片摘自深信服安全服务认证工程师课程课件中,为方便个人学习使用,勿作商用!!!!文字内容为自己手打,并非直接搬运!如有侵权,请联系删除!!!

本文档所提供的信息仅用于教育目的及在获得明确授权的情况下进行渗透测试。任何未经授权使用本文档中技术信息的行为都是严格禁止的,并可能违反《中华人民共和国网络安全法》及相关法律法规。使用者应当合法合规地运用所学知识,不得用于非法入侵、破坏信息系统等恶意活动。我们强烈建议所有读者遵守当地法律与道德规范,在合法范围内探索信息技术。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文件包含概述
    • 文件包含函数
    • 利用条件
    • 示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档