文件上传

发布时间 2023-10-11 16:49:00作者: 银币变成枯叶

文件包含漏洞

文件包含漏洞是指利用文件包含函数包含了存在恶意代码的文件,并且解析执行了其中的恶意代码造成的漏洞。

在php中常用的文函数有include()、require()、include_once()、require_once()。

include()函数并不在意被包含的文件是什么类型,只要有php代码,都会被解析出来

文件包含的类型

本地包含(LFI)

本地文件包含指能够打开并包含本地文件的漏洞。

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

利用该代码,我们可以读取一些系统本地的敏感信息。

远程包含(RFI)

若PHP的配置选项 allow_url_includeallow_url_fopen 态为ON的话,则 include/require 函数是可以加载远程文件的,这种称为远程文件包含。

文件包含的利用

配合文件上传使用

若存在文件上传功能,可以先上传一个任意格式的包含木马的文件到服务器,再利用本地文件包含漏洞进行解析。

包含日志文件

若不存在文件上传功能,可以通过利用日志文件来包含恶意代码,再利用本地文件包含漏洞进行解析。

利用条件:

  • 对日志文件可读
  • 直到日志文件的路径

在用户发起请求时,服务器会将请求写入access.log,可以伪造UA等将木马插入到日志文件,尝试包含解析日志文件。

包含SESSION文件

若不存在文件上传功能,根据尝试包含到SESSION文件,在根据文件内容寻找可控变量,将木马插入到文件中,最后包含解析SESSION文件。

借助伪协议