文件包含

作者:太空独角兽    发布于:

我们先来看一个简单的文件包含php文件

<?php
$filename = $_GET['file'];
include($filename);
?>

我们可以通过get传参得到任何想要的文件,文件包含主要关注三个点

  1. allow_url_include
  2. allow_url_fopen
  3. 允许包含的文件的白名单

值得注意的是从PHP5.2开始allow_url_include就默认为Off了,而allow_url_fopen一直是On。这意味着通过get传参远程文件包含基本上不可行了(除非将allow_url_include就默认为ON,估计只有在ctf比赛中才看得到,还有对waf很有信心的情况下)。

本地文件包含

所以我们本地包含的文件可以是什么呢,任何在允许包含的文件的白名单的文件,还有一点值得注意的是被包含的文件会被自动解析成PHP文件,所以有文件上传漏洞的时候这是可以配合包含恶意文件的搞事情。
比如我在本地写一个txt文件

<?php phpinfor();?>

包含本地txt文件

伪协议

那么php伪协议还能用吗?

allow_url_include为Off:
php://input和data://是不行了的,其他的还可以用

文件包含漏洞的理解上很简单,关键在于文件包含场景的应用。接着学习,先写到这里

format_list_numbered

(无)

  1. 1. 值得注意的是从PHP5.2开始allow_url_include就默认为Off了,而allow_url_fopen一直是On。这意味着通过get传参远程文件包含基本上不可行了(除非将allow_url_include就默认为ON,估计只有在ctf比赛中才看得到,还有对waf很有信心的情况下)。
    1. 1.0.1. 本地文件包含
    2. 1.0.2. 伪协议
vertical_align_top

Copyright © 2018 太空独角兽