协议

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

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. Android LayoutInflater深度解析

    1. 题外话 相信大家对LayoutInflate都不陌生,特别在ListView的Adapter的getView方法中基本都会出现,使用inflate方法去加载一个布局,用于ListView的每个I ...

  2. svg学习

    百度百科: SVG可缩放矢量图形(Scalable Vector Graphics)是基于可扩展标记语言(XML),用于描述二维矢量图形的一种图形格式.SVG是W3C制定的一种新的二维矢量图形格式,也 ...

  3. Lodash js数据操作库

    https://lodash.com/docs/4.17.4

  4. [USACO13NOV] Pogo-Cow

    https://www.luogu.org/problem/show?pid=3089 题目描述 In an ill-conceived attempt to enhance the mobility ...

  5. 动态规划:LIS

    题目中的严格二字,表示的意思是不允许≥或者是≤的情况出现,只允许>的情况以及<的情况 经典问题是NOIP合唱队形,在这个题目中,既求了最长上升子序列,也求了最长下降子序列 其最终的结果由两 ...

  6. [uva11174]村民排队 递推+组合数+线性求逆元

    n(n<=40000)个村民排成一列,每个人不能排在自己父亲的前面,有些人的父亲不一定在.问有多少种方案. 父子关系组成一个森林,加一个虚拟根rt,转化成一棵树. 假设f[i]表示以i为根的子树 ...

  7. bzoj 1305 二分+最大流判定|贪心

    首先我们二分一个答案mid,在判定是否能举办mid次,那么对于每个次我们可以用最大流根据是否满流(流量为n*mid)来判定,对于每个点我们拆成两个点,分别表示这个人要和他喜欢和不喜欢的人一起跳舞,那么 ...

  8. 记一次Node项目的优化

    这两天针对一个Node项目进行了一波代码层面的优化,从响应时间上看,是一次很显著的提升.一个纯粹给客户端提供接口的服务,没有涉及到页面渲染相关. 背景 首先这个项目是一个几年前的项目了,期间一直在新增 ...

  9. JavaWeb使用Session防止表单重复提交

    在平时开发中,如果网速比较慢的情况下,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,我们在开发中必须防止表单重复提交. 1.什么是表单 ...

  10. hadoop安装 伪分布

    伪分布hadoop 安装总结 准备,在配置中hadoop用的9000端口,如果有其它软件用着这个端口,建议更换后再进行下面配置,以避免出现错误.比如php-fpm经常使用9000端口. 一.下载jdk ...