标题 | 简介 | 类型 | 公开时间 | ||||||||||
|
|||||||||||||
|
|||||||||||||
详情 | |||||||||||||
[SAFE-ID: JIWO-2024-42] 作者: mickey 发表于: [2017-07-11] [2017-07-12]被用户:ecawen 修改过
本文共 [696] 位读者顶过
文件包含漏洞
产生的原因:通过引入文件时,用户可控,没有严格的检验,或是被绕过,操作一些敏感文件,导致文件泄露和恶意代码注入[出自:jiwo.org] 常见的漏洞代码if (isset($_GET[page])) { include $_GET[page];
} else { include "home.PHP";
}
其中$_GET[page]使用户可以控制变量。如果没有严格的过滤就导致漏洞的出现
包含文件的函数1.include() 2.include_once() 3.require() 4.require_once() 代码审计的时候,是否是变量,不过滤,过滤不严格,函数include/require
本地文件包含php.ini配置文件中开启allow_url_include 本地文件包含利用
2.让日志文件插入php代码 * 包含/proc/self/environ 文件webshell
* phpinfo.php 可以包含临时文件(显示临时文件路径)写工具发包上传文件。查看返回信息路径。在使用include包含文件(速度要求快)
* 包含data//或是php://input协议(伪协议,需要allow_url_include=On)
1.包含文件上传的图片 #### windows环境下
IIS配置文件,查找日志路径
apache/nginx
集成环境
包含日志文件,查看是与否有权限读取文件(可以解析正常)。
#### 事例 1.## 文件包含漏洞
产生的原因:通过引入文件时,用户可控,没有严格的检验,或是被绕过,操作一些敏感文件,导致文件泄露和恶意代码注入
当包含文件在服务器本地上,就形成本地文件包含,当包含的文件在第三方服务器是,就形成可远程文件包含。
### 常见的漏洞代码
if (isset($_GET[page])) { ### 包含文件的函数 1.include() 2.include_once() 3.require() 4.require_once()
代码审计的时候,是否是变量,不过滤,过滤不严格,函数include/require
本地文件包含php.ini配置文件中开启allow_url_include windows环境下IIS配置文件,查找日志路径
apache/nginx 事例1. 或是通过抓包来插入一句话 防御
|