文件包含漏洞
文件包含漏洞是“代码注入” 的一种,常见的导致文件包含的函数如下:
PHP:include(),include_once(),require(),require_once(),fopen(),readfile()
JSP/Servlet:ava.io.File(),java.io.FileReader().
ASP:include file,include virtual
要想成功利用文件包含漏洞,需要满足下面两个条件:
(1)include()等函数通过动态变量的方式引入需要包含的文件
(2)用户能够控制该动态变量
一、本地文件包含
能够打开并包含本地文件的漏洞,被称为本地文件包含漏洞。
二、远程文件包含
如果PHP的配置选项allow_url_include为ON的话,则include/require函数是可以加载远程文件的,这种漏洞被称为远程文件包含漏洞。
三、本地文件包含的利用技巧
经过不懈的研究,安全研究者总结出了以下几种常见的技巧,用于本地文件包含后执行PHP代码。
(1)包含用户上传的文件
(2)包含data://或php://input等伪协议
(3)包含Session文件
(4)包含目录文件,比如Web Server的access log
(5)包含/proc/self/environ文件
(6)包含上传的临时文件(RFC1867)
(7)包含其他应用创建的文件,比如数据库文件、缓存文件、应用日志等, 需要具体情况具体分析。
还没有评论,来说两句吧...