文件包含原理及本地文件包涵漏洞案例演示
一、文件包含漏洞概述(摘录)
在web后台开发中,程序员往往为了提高效率以及让代码看起来更加简介,会使用“包含”函数功能。比如把一系列功能函数都写进fuction.php中,之后当某个文件需要调用的时候就直接在文件头中写上一句<?php include fuction.php?>就可以调用函数代码。
但有些时候,因为网站功能需求,会让前端用户选择需要包含的文件(或者在前端的功能中使用了“包含”功能),又由于开发人员没有对要包含的这个文件进行安全考虑,就导致攻击者可以通过修改包含文件的位置来让后台执行任意文件(代码)。
这种情况我们称为“文件包含漏洞”
文件包含漏洞有“本地文件包含漏洞”和“远程文件包含漏洞”两种情况。
二、文件包含漏洞:包含函数(摘录)
通过include()或require()语句,可以将PHP文件的内容插入到另一个PHP文件(在服务器执行它之前)。
include和require语句是相同的,除了错误处理方面:
require会生成致命错误(E_COMPILE_ERROR)并停止脚本
include只生成警告(E_WARNING),并且脚本会继续
三、本地文件包含漏洞演示
在pikachu file inclusion(local)模板进行相关的实验演示。选择一个数据点击提交,查看网页请求http://127.0.0.1/pikachu/vul/fileinc