我们经常会开发了一个下载功能,具体实现就是后台实现一个下载方法,接收一个带有路径的文件名参数,再通过流将对应的文件返回给客户端。但是这种方式潜在一个安全漏洞——通过修改这个文件名参数的值,可以下载操作系统中当前账号有权访问的任意文件。极有可能造成操作系统内核文件被修改,操作系统密码泄露,web应用文件被修改,WEB应用挂马等多种安全事件。
如何防止下载任意文件呢?
一、限制下载文件的扩展名
String fileName= request.getParameter("fileName");
if(!fileName.endWith(".doc")){
return null;
}
二、限制下载文件所在的路径
String filePath= fileName.substring(0,fileName.lastIndexOf('\\'));
if(!filePath.startWith("/download")){
return null;
}
三、防止目录回溯
if(filePath.contains("\\..")){
return null;
}
四、动态校验码
根据待下载文件,生成MD5摘要或者其他动态验证码算法并将动态校验码融合到下载链接中,客户端浏览器提交下载请求时,再次校验动态验证码。
String md5Code=MD5(file);
http://xxx/download/?fileName=/download/a.doc&code=dgaq2342rjwioafqwewf
String requestCode = request.getParameter("code");
if(code.equals(md5Code)){
download();
}
分享到:
相关推荐
php168下载任意文件 内部用的。。现在共享上来 拿积分的,点击查看代码后 等上三秒钟 如果有漏洞就可以看到对方的源代码了。。。
jQuery是一个快速、简洁的JavaScript框架,丰富的Javascript代码库,在其1.7.2版本的sys_dia_data_down模块存在任意文件读取漏洞,攻击者可通过前台读取任意文件。
用友NC任意文件上传漏洞利用工具,用友NC6.5的某个页面,存在任意文件上传漏洞。漏洞成因在于上传文件处未作类型限制,未经身份验证的攻击者可通过向目标系统发送特制数据包来利用此漏洞,成功利用此漏洞的远程攻击...
通达OA漏洞合集
【Adminer≤4.6.2任意文件读取漏洞详解】 Adminer是一款功能强大的Web数据库管理工具,它支持多种主流数据库系统,如MSSQL、MySQL、Oracle、SQLite和PostgreSQL,与phpMyAdmin类似。由于其轻量级的特性,只需一个...
帆软 V9 任意文件覆盖文件上传漏洞描述帆软 V9 存在任意文件覆盖,导致攻击者可以任意文件上传漏洞影响帆软 V9漏洞复现。
泛微OA xmlrpcServlet接口任意文件读取漏洞(CNVD-2022-43245),可以指定文件路径进行读取,并提供检测方案
【任意文件读取漏洞详解】 任意文件读取漏洞是一种常见的Web安全问题,主要发生在PHP、Java和Python等编程语言中。这种漏洞允许攻击者通过构造特定的请求,读取服务器上的任意文件,包括敏感的配置文件、源代码、...
### BageCMS V3.1.3 后台任意文件读取漏洞详解 #### 漏洞背景 BageCMS是一款基于PHP与MySQL构建的跨平台内容管理系统(CMS),广泛应用于各类网站建设和管理中。然而,在其V3.1.3版本中存在一个严重的安全漏洞——...
### eyoucms V1.0.4 后台任意文件读取漏洞详解 #### 漏洞背景 易优CMS(eyoucms)是一款基于PHP+MySQL开发的企业级建站系统,广泛应用于中小企业的网站搭建。它支持多平台访问,包括PC端、移动端以及微信平台。...
帆软 V9 任意文件覆盖文件上传漏洞描述帆软 V9 存在任意文件覆盖,导致攻击者可以任意文件上传漏洞影响帆软 V9漏洞复现。
银澎云计算 好视通视频会议系统 任意文件下载漏洞描述银澎云计算 好视通视频会议系统 存在任意文件下载,攻击者可以通过漏洞获取敏感信息漏洞影响银澎云计算 好视通视
该漏洞是由于文件名及路径由客户端传入的参数控制,并且未进行有效的过滤,导致用户可恶意下载任意文件。攻击者可以提交url:test.php?filename=test.php,即可下载test.php源码,并实现跨目录下载系统中的任意文件...
文件下载漏洞是指在Web应用程序中,文件下载功能存在的安全漏洞,攻击者可以通过该漏洞下载任意文件,包括网站的配置文件、数据库连接字符串等敏感信息。 漏洞成因 漏洞的成因是因为在实现文件下载功能时,没有...
然而,在其1.8版本中被发现了一个重要的安全问题——任意文件读取漏洞。 #### 漏洞详情 该漏洞允许攻击者在未经过适当认证的情况下,读取服务器上的任何文件。这种类型的漏洞非常危险,因为它可以被用于窃取敏感...
【WordPress wpDiscuz 评论插件任意文件上传漏洞分析】 WordPress 是一款广泛使用的开源内容管理系统,而 wpDiscuz 是一个流行的评论插件,它为 WordPress 网站提供了丰富的交互式评论功能。然而,如同任何软件一样...
# 齐博CMS V7任意文件下载漏洞 ## 漏洞影响 ``` 齐博cms V7 ``` ## FOFA ``` app="齐博cms" ``` ## Poc 综合验证和利用脚本见 Qibo_v7.py
【phpok 任意文件创建漏洞1】 在讨论这个漏洞之前,我们首先需要理解什么是PHP和MySQL,以及它们在Web开发中的角色。PHP是一种广泛使用的开源脚本语言,主要用于服务器端编程,处理用户请求并返回动态内容。MySQL则...