本文已参与「新人创作礼」活动,一起开启掘金创作之路。
文件下载
文件下载漏洞呢
什么是文件下载漏洞
首先这个文件下载漏洞呢,其实是网站这个平台提供了下载文件的功能,那么网站平台上对于这个网站的下载没有限制过滤,那么一些不分分子就会利用他的这个缺点去下载一些敏感文件一些重要性文件
文件下载两种格式
直连下载【没有漏洞】
www.baidu.com/1.zip
解析性下载【可能存在漏洞】
www.baidu.com?file=1.zip
解释
直连下载:
连接的是
1.zip-------------www.baidu.com/1.zip
连接的是
2.zip-------------www.baidu.com/2.zip
解析下载:
/1.zip
/
/
www.baidu.com?file= ——————2.zip
\
\
\3.zip
www.baidu.com?file= 这就好比一个你要什么给什么的机器人
我要1.zip
www.baidu.com?file=1.zip
我要2.zip
www.baidu.com?file=2.zip
我要3.zip
www.baidu.com?file=3.zip
你向他请求什么他就会帮你去找什么,就是这个意思
如果他没有1.zip 那么他就会返回空给你
漏洞成因:
存在读取文件的函数
读取文件的路径用户可控且未校验或校验不严格
输出了文件内容
漏洞危害:
下载服务器任意文件,如脚本代码、服务及系统配置文件等,进一步利用获取的信息进行更大的危害。
可用得到的代码进一步代码审计,得到更多可利用漏洞
案例
http://67.202.70.133/files/readfile.php?file=../configurtion.php
文件读取漏洞
文件读取函数
- fopen
- file_get_contents
- fread
- fgets
- fgetss
- file
- fpassthru
- parse_ini_file
- readfile
<?php
$filename = $_GET['file'];
if(isset($filename)) {
readfile($filename);
}
文件删除漏洞
<?php
header("Content-Type:text/html;charset=utf-8");
$filename = $_GET['file'];
if(file_exists($filename)){
unlink($filename);
echo "<script>alert('删除成功')</script>";
}else{
echo "<script>alert('删除失败')</script>";
}