文件所包含的漏洞
基础:
文件包含:程序员可能会把重复使用的函数写道单个的文件中,在使用某些函数时,直接调用;
原因:再通过动态的包含的方式,由于传入的文件名没有合理的校验,操作了预想之外的文件,导致了意外文件的泄露和恶意的代码注入
JSP:
01 JSP能否文件包含致代码执行?需要什么条件?
(1) JSP 文件包含函数: jva.o.file0. jvaofilereader(). 静动态include
(2)静态包含: <%@ indude fl=".jsp"%>
(3)动态包含:
<% String name = request.getParameter(“name”);%>
<isp:incdude page="<%=name%>" />
ASPX
02 aspx能否文件包含致代码执行?需要什么条件?
(1) aspx 文件包含函数: include fle、include virtual
(2)静态包含:
<-tinclude fle=“top.aspx” ->
<-- dinclude virtual “header.inc” ->
注:
(1) aspx不支持动态包含,asp- 样不支持动态包含。
(2)任意目录任意文件可被包含,可以把内容当做aspx代码执行
(3)留同]是一种利用方式。
PHP
03 PHP
(1)任意目录任意文件可被包含(和aspx 类似) (前提: 有文件读取权限)
(2)可以动态包含
如下: index.php目录中有一 个内容为<?php phpinfo); ?>的txt文件。
产生场景
危害:
------ 配合文件上传漏洞Getshell (图片马)
-----可执行任意脚本代码
----- 网站源码文件及配置文件泄露
------- 远程包含GetShell
-----控制整个网站甚至服务器
防御:
技巧:
1.File://
Php://fillter
Php://input: