协议

各种协议的使用有时是关键

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文件包含小结的更多相关文章

  1. PHP文件包含漏洞小结

    参考链接:https://chybeta.github.io/2017/10/08/php文件包含漏洞/ 四大漏洞函数 PHP文件包含漏洞主要由于四个函数引起的: include() include_ ...

  2. CTF PHP文件包含--session

    PHP文件包含 Session 首先了解一下PHP文件包含漏洞----包含session 利用条件:session文件路径已知,且其中内容部分可控. 姿势: php的session文件的保存路径可以在 ...

  3. 【渗透测试学习平台】 web for pentester -7.文件包含

    Example 1 输入单引号,报错,得到物理路径 可通过../../../../etc/paaswd 读取敏感信息 可包含本地文件或远程文件 https://assets.pentesterlab. ...

  4. PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)

    摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的 ...

  5. Linux C编程学习之C语言简介---预处理、宏、文件包含……

    C的简介 C语言的结构极其紧凑,C语言是一种模块化的编程语言,整个程序可以分割为几个相对独立的功能模块,模块之间的相互调用和数据传递是非常方便的 C语言的表达能力十分强大.C语言兼顾了高级语言和汇编语 ...

  6. PHP 文件包含总结 include require 命名空间 autoload spl_autoload_register 读取文件路径

    总结: 1. include或require包含其他文件 使用./或者 ../,这里的当前路径和上一层路径,取决于运行脚本的路径,会存在如下问题. 在写PHP程序时,经常要用到include或requ ...

  7. ORACLE查看数据文件包含哪些对象

    在上篇ORACLE查看表空间对象中,我介绍了如何查询一个表空间有那些数据库对象,那么我们是否可以查看某个数据文件包含那些数据库对象呢?如下所示 SELECT  E.SEGMENT_TYPE       ...

  8. PHP任意文件包含绕过截断新姿势

    前言 此方法是@l3m0n叔叔给我分享的,原文已经发布在90sec 我没有90sec的账号,所以自己实践一下,顺道安利给访问我博客的小伙伴. 适用情况 可以控制协议的情况下,如果%00无法截断包含,可 ...

  9. error C2504 类的多层继承 头文件包含

    error C2504:头文件包含不全 今天碰到了很烦的问题,继承一个类之后,感觉头文件都包含了,可还是出现父类未定义的问题,最后发现,子类的子类在实现时,需要在cpp文件中包含所有他的父类的定义.因 ...

随机推荐

  1. python 基础--pip(转)

    感谢:http://www.cnblogs.com/csucat/p/4897695.html python需要用到一些其他的库,可以手动去各个库的官网下载,自己安装:也可以安装pip,使用pip可以 ...

  2. C11简洁之道:初始化改进

    1.  C++98/03初始化 我们先来总结一下C++98/03的各种不同的初始化情况: //普通数组 ] = {, , }; //POD(plain old data) struct A { int ...

  3. PHP系统编程--03.PHP进程信号处理

    PHP的pcntl扩展提供了信号处理的功能,利用它可以让PHP来接管信号的处理,在开发服务器端守护进程方面,信号处理至关重要. 函数原型 bool pcntl_signal(int $signo ,c ...

  4. 【BZOJ3875】【AHOI2014】骑士游戏 [Spfa][DP]

    骑士游戏 Time Limit: 30 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 在这个游戏中,JYY一共有两种攻击 ...

  5. 【Foreign】光 [莫比乌斯反演]

    光 Time Limit: 10 Sec  Memory Limit: 128 MB Description 天猫有一个长方形盒子,长宽分别为A,B. 这个长方形盒子的内壁全部是镜面. 天猫在这个盒子 ...

  6. 【BZOJ】4430: [Nwerc2015]Guessing Camels赌骆驼

    [题意]给定三个长度为n的排列,求在三个排列中顺序相同的数对个数. [算法]逆序对 [题解]很容易联想到NOIP火柴排队,涉及顺序问题显然和逆序对息息相关. 一个数对如果在三个排列中顺序不同,一定是1 ...

  7. Zabbix 通过 JMX 监控 java 进程

    参考: [ JMX monitoring ] [ Zabbix Java gateway ] [ JMX Monitoring (Java Gateway) not Working ] [ Monit ...

  8. Edgware Feign hystrix-dashboard

    相关依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring ...

  9. python基础===tkinter学习链接

    http://effbot.org/tkinterbook/tkinter-classes.htm

  10. Redis 主从部署

    Redis 主从部署 http://www.xuchanggang.cn/archives/978.html