任意文件上传漏洞
攻击流程:黑客构造敏感文件(如php文件)-->上传到服务器-->黑客找到对应文件的地址-->对文件进行访问-->服务器执行文件内的程序
攻击条件:
1、能够对对应的敏感文件进行上传(白名单能够杜绝敏感文件)
2、上传的路径拥有可执行权限(没有可执行权限文件是无法执行的)
任意文件下载漏洞
可能存在的危害:代码泄露、数据库配置文件泄露、系统文件泄露等
攻击过程:黑客查找文件下载点-->寻找文件没有验证文件格式或文件路径的文件下载-->构造下载链接-->对敏感文件进行下载
攻击条件:
1、没有验证下载文件的格式
2、没有限制请求的路径
文件包含漏洞
诱因
在系统设计的过程中会将重复的代码写入到一个文件中,然后通过其他的方法进行调用,如果对调用过程的参数 处理不当就有可能产生文件包含漏洞。
基本分类
本地文件包含:包含的文件为本地服务器文件
远程文件包含:包含的文件为其他服务的文件进行远程包含
开发实现方法:
~~~php
<?php
if(isset($_GET['name'])){
$filename = $_GET['name'];
include($filename);
}else{
echo “ERROR.”;
}
?>
~~~
攻击过程
找到文件上传点,上传敏感文件–>找到刚刚上传的文件路径–>找到文件包含的点–>将上传的敏感文件路径作为参数传入文件包含–>系统执行
注:其实这一操作和文件上传类似,只是当我们上传的文件对应的路径没有执行权限的话就可以利用文件包含漏洞进行文件执行操作
需要注意的是:allow_url_fopen = on(允许打开远程文件)、allow_url_inculde = on(允许包含远程文件)这两个条件时可以破坏文件包含漏洞的。