PHP文件包含小结
协议
各种协议的使用有时是关键
file协议
file后面需是///,例如file:///d:/1.txt
也可以是file://e:/1.txt,如果是在当前盘则可以file:///1.txt
如果是php文件,则文件内容通过查看源码的方式读取
文件名可以通过>替代
zip://协议
例:zip://e:1.zip#1.txt(#需转为%23)路径必须为绝对路径
phar://协议
例:phar://1.phar/1.php
可以读取文件的函数
函数的使用不当可能引发问题
include函数
通过get方法或post方法include的文件首先是从当前文件夹下开始读取,此时目录穿越漏洞可以用
不能够读取自己,否则会出现逻辑错误
如果直接包含一个php文件,则只会显示其中在标签外的内容,以及php代码输出的内容
若要读取php文件的内容,则需要将其编码,例:php://filter/read=convert.base64-encode/resource=123.php
使用>时如果有多个文件符合,只会输出第一个
highlight_file函数
将文件以内置的颜色输出,可以输出php文件,也可以输出其他文件
如果第二个参数return设置为true,那么文件内容将不会输出,而是返回一个字符串
show_source函数
上面函数的别名,功能是一样的
file_get_contents函数
将一个文件读入一个字符串
包含的文件需要在源码中才能看到,或者使用伪协议将其base64加密
fopen函数
因为返回的是一个指针,所以不能够直接读取,需要用fgets或者fread读取指针指向的内容,或者使用fpassthru读取指针指向剩下的内容
readfile函数
功能是读取一个文件到缓冲区,返回一个整数(为文件的内字符的长度)
file函数
功能是将一个文件读入数组,数组的键是行数(从0开始),数组的值为该行的内容
截断
include($_GET['file']."txt");
一般的文件包含都是类似这样的情况,对于这种情况,就要进行截断
?,#
包含一个远程文件或者是url时使用
%00
在php版本小于5.2时可用
:
仅在windows环境可用
使用协议
例如上面的zip://,phar://
PHP文件包含小结的更多相关文章
- PHP文件包含漏洞小结
参考链接:https://chybeta.github.io/2017/10/08/php文件包含漏洞/ 四大漏洞函数 PHP文件包含漏洞主要由于四个函数引起的: include() include_ ...
- CTF PHP文件包含--session
PHP文件包含 Session 首先了解一下PHP文件包含漏洞----包含session 利用条件:session文件路径已知,且其中内容部分可控. 姿势: php的session文件的保存路径可以在 ...
- 【渗透测试学习平台】 web for pentester -7.文件包含
Example 1 输入单引号,报错,得到物理路径 可通过../../../../etc/paaswd 读取敏感信息 可包含本地文件或远程文件 https://assets.pentesterlab. ...
- PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)
摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的 ...
- Linux C编程学习之C语言简介---预处理、宏、文件包含……
C的简介 C语言的结构极其紧凑,C语言是一种模块化的编程语言,整个程序可以分割为几个相对独立的功能模块,模块之间的相互调用和数据传递是非常方便的 C语言的表达能力十分强大.C语言兼顾了高级语言和汇编语 ...
- PHP 文件包含总结 include require 命名空间 autoload spl_autoload_register 读取文件路径
总结: 1. include或require包含其他文件 使用./或者 ../,这里的当前路径和上一层路径,取决于运行脚本的路径,会存在如下问题. 在写PHP程序时,经常要用到include或requ ...
- ORACLE查看数据文件包含哪些对象
在上篇ORACLE查看表空间对象中,我介绍了如何查询一个表空间有那些数据库对象,那么我们是否可以查看某个数据文件包含那些数据库对象呢?如下所示 SELECT E.SEGMENT_TYPE ...
- PHP任意文件包含绕过截断新姿势
前言 此方法是@l3m0n叔叔给我分享的,原文已经发布在90sec 我没有90sec的账号,所以自己实践一下,顺道安利给访问我博客的小伙伴. 适用情况 可以控制协议的情况下,如果%00无法截断包含,可 ...
- error C2504 类的多层继承 头文件包含
error C2504:头文件包含不全 今天碰到了很烦的问题,继承一个类之后,感觉头文件都包含了,可还是出现父类未定义的问题,最后发现,子类的子类在实现时,需要在cpp文件中包含所有他的父类的定义.因 ...
随机推荐
- python 基础--pip(转)
感谢:http://www.cnblogs.com/csucat/p/4897695.html python需要用到一些其他的库,可以手动去各个库的官网下载,自己安装:也可以安装pip,使用pip可以 ...
- C11简洁之道:初始化改进
1. C++98/03初始化 我们先来总结一下C++98/03的各种不同的初始化情况: //普通数组 ] = {, , }; //POD(plain old data) struct A { int ...
- PHP系统编程--03.PHP进程信号处理
PHP的pcntl扩展提供了信号处理的功能,利用它可以让PHP来接管信号的处理,在开发服务器端守护进程方面,信号处理至关重要. 函数原型 bool pcntl_signal(int $signo ,c ...
- 【BZOJ3875】【AHOI2014】骑士游戏 [Spfa][DP]
骑士游戏 Time Limit: 30 Sec Memory Limit: 256 MB[Submit][Status][Discuss] Description 在这个游戏中,JYY一共有两种攻击 ...
- 【Foreign】光 [莫比乌斯反演]
光 Time Limit: 10 Sec Memory Limit: 128 MB Description 天猫有一个长方形盒子,长宽分别为A,B. 这个长方形盒子的内壁全部是镜面. 天猫在这个盒子 ...
- 【BZOJ】4430: [Nwerc2015]Guessing Camels赌骆驼
[题意]给定三个长度为n的排列,求在三个排列中顺序相同的数对个数. [算法]逆序对 [题解]很容易联想到NOIP火柴排队,涉及顺序问题显然和逆序对息息相关. 一个数对如果在三个排列中顺序不同,一定是1 ...
- Zabbix 通过 JMX 监控 java 进程
参考: [ JMX monitoring ] [ Zabbix Java gateway ] [ JMX Monitoring (Java Gateway) not Working ] [ Monit ...
- Edgware Feign hystrix-dashboard
相关依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring ...
- python基础===tkinter学习链接
http://effbot.org/tkinterbook/tkinter-classes.htm
- Redis 主从部署
Redis 主从部署 http://www.xuchanggang.cn/archives/978.html