php 文件包含讲解,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://

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值