文件包含漏洞
文件包含漏洞是指利用文件包含函数包含了存在恶意代码的文件,并且解析执行了其中的恶意代码造成的漏洞。
在php中常用的文函数有include()、require()、include_once()、require_once()。
include()函数并不在意被包含的文件是什么类型,只要有php代码,都会被解析出来
文件包含的类型
本地包含(LFI)
本地文件包含指能够打开并包含本地文件的漏洞。
<?php
$file=$_GET['file'];
include($file);
?>
利用该代码,我们可以读取一些系统本地的敏感信息。
远程包含(RFI)
若PHP的配置选项 allow_url_include 和 allow_url_fopen 态为ON的话,则 include/require 函数是可以加载远程文件的,这种称为远程文件包含。
文件包含的利用
配合文件上传使用
若存在文件上传功能,可以先上传一个任意格式的包含木马的文件到服务器,再利用本地文件包含漏洞进行解析。
包含日志文件
若不存在文件上传功能,可以通过利用日志文件来包含恶意代码,再利用本地文件包含漏洞进行解析。
利用条件:
- 对日志文件可读
- 直到日志文件的路径
在用户发起请求时,服务器会将请求写入access.log,可以伪造UA等将木马插入到日志文件,尝试包含解析日志文件。
包含SESSION文件
若不存在文件上传功能,根据尝试包含到SESSION文件,在根据文件内容寻找可控变量,将木马插入到文件中,最后包含解析SESSION文件。
借助伪协议
标签:文件,包含,漏洞,日志,include,上传 From: https://www.cnblogs.com/smileleooo/p/17757604.html