美文网首页
初窥php中的文件包含漏洞

初窥php中的文件包含漏洞

作者: EVANIMARIA | 来源:发表于2018-03-30 04:06 被阅读0次

0x00 前言


php作为一门常用的脚本语言,本身带有不少能用于文件包含的预设函数。它们既给文件操作与多文件系统的架构组织带来便利,也会因为使用不当而埋下相当大的隐患。其中,比较常用的有

  • require
  • require_once
  • include
  • include_once
  • highlight_file
  • show_source
  • readfile
  • file_get_contents
  • fopen
    从攻击来源看,通过文件包含漏洞进行的攻击(下简称“攻击”)可大致分为本地文件包含远程文件包含;从攻击手段看,攻击可大略分为主要使用截断进行的攻击、主要利用内置协议的攻击等,当然还有利用xss等手段进行的攻击,可能会在后续系列中介绍。攻击的结果一般是任意文件读取、Get shell
    无论是哪种攻击方式,几乎都有一个共同点,那就是源码里将用户输入变量(无论是否经过过滤)作为参数传入了上述的文件包含函数中,最简单的例子便是
<?php
  include $_GET['file'];
?>

只要修改一下file的值,就可以利用include的运行、跳转功能来运行我们上传的恶意文件或是读取本应对访问者不可见的文件(.htacess、各类配置文件等等)。而在实际攻击时,对方的部署往往没有那么简单,而是经过了各类过滤、拼接、权限控制,这时候就要用到截断等方式进行绕过了。

0x01 利用截断进行的攻击


由于截止本文发布,笔者对此的了解都不深,故只作简单叙述,之后会更新或是在下一篇中详述
截断往往用于绕过

<?php
include($_GET['file'].".html");
 ?> 

等拼接,其中最著名的就是利用%00进行的截断,php会无视%00后的内容从而实现截断,但是据说在5.3.4的版本后就已经修复了这个漏洞。除此之外,还有利用路径长度的截断,例如

?file=../../../../../../../../../etc/passwd/././././././.[…]/./././././.

linux系统下需要大于4096,windows下需要大于256
又如利用点号长度的截断,当路径中包含超过256个点号时windows下就会忽略后面的内容


截断1.PNG 截断.PNG

0x02 利用内置协议的攻击


PHP 带有很多内置 URL 风格的封装协议,可用于类似 fopen()copy()file_exists()filesize() 的文件系统函数。 除了这些封装协议,还能通过 stream_wrapper_register() 来注册自定义的封装协议
引自官方手册

首先上图,一图流解析常见的伪协议攻击方法,图引自Freebuf专栏

图一.png
下面将对其进行解释
1. php.ini中的设置

php的设置文件中有如下几项设置,它们的开关与否直接决定了我们能使用哪些攻击方法、攻击效果如何


ini.PNG

其中最重要的就是前面两项,allow_url_fopen和allow_url_include的设置,其具体释义在上方英文里有,大意就是远程文件打开和远程文件包含。这两项的开关与内置协议的关系如图一。因此,在有条件的情况下先试图读取这两项的配置能帮助我们快速找到思路

未完待续,等待更新

相关文章

  • 初窥php中的文件包含漏洞

    0x00 前言 php作为一门常用的脚本语言,本身带有不少能用于文件包含的预设函数。它们既给文件操作与多文件系统的...

  • php文件包含漏洞

    php文件包含漏洞 相关函数 php中引发文件包含漏洞的通常是以下四个函数: 1、reuqire() 如果在包含的...

  • php安全

    文件包含漏洞** 本地文件包含**能打开并包含本地文件的漏洞,被称为本地文件包含漏洞(LFI)%00截断,php内...

  • 【文件包含】PHP文件包含漏洞

    0x01 文件包含函数 include() include_once() require() require_on...

  • 2019-04-05关于文件包含漏洞

    首先我们先来了解一下文件包含漏洞是怎样形成的。 PHP文件包含漏洞的产生原因是在通过PHP的函数引入文件时,由于传...

  • PHP文件包含漏洞

    PHP编程语言中为我们提供了四个常见文件包含函数,分别是include()、require()、include_o...

  • 文件包含漏洞

    几乎所有的脚本语言中都会提供文件包含的功能,但文件包含漏洞在PHP Web Application中居多,在JSP...

  • PHP文件包含漏洞利用思路与Bypass总结手册(二)

    接上一篇:PHP文件包含漏洞利用思路与Bypass总结手册(一) 包含Session 在了解session包含文件...

  • 凡诺CMS一处文件包含漏洞

    今天这篇文件主要记录凡诺CMS后台文件包含漏洞: 0×01 文件包含简介 服务器执行PHP文件时,可以通过文件包含...

  • PHP文件包含漏洞总结

    来源:http://bbs.ichunqiu.com/thread-9192-1-1.html?from=ch 本...

网友评论

      本文标题:初窥php中的文件包含漏洞

      本文链接:https://www.haomeiwen.com/subject/abkbcftx.html