文件上传-01-什么是文件上传漏洞?

文件上传漏洞介绍

文件上传漏洞的原因:

1、对于上传文件的后缀名(扩展名)没有做较为严格的限制

2、对于上传文件的MIMEETYPE(content-type)(用于描述文件的类型的一种表述方法)没有做检查

3、权限上没有对于上传的文件目录设置不可执行权限

4、web server 对于上传文件或者指定目录的行为没有做限制

​ 在WEB中进行文件上传的原理是通过将表单设为multipart/form data,同时加入文件域,而后通过HTTP协议将文件内容发送到服务器,服务器读取这个分段(multiparty)的数据信息,并将其中的文件内容提取出来并保存的。

​ 通常,在进行文件保存的时候,服务器端会读取文件的原始文件名,并从这个原始文件名得出文件的扩展名,而后随机为文件起一个文件名(为了防止重复),并且加上原始文件的扩展1名来保存到服务器上。

上传漏洞的危害:
  • 上传web木马文件,控制web服务器文件、远程命令执行等。
  • 上传系统病毒、木马文件进行挖矿、僵尸网络。
  • 上传系统溢出程序进行权限提升。
  • 修改web页面实现钓鱼、挂马、暗链等操作。
  • 内网渗透。
  • 在权限得到提升的情况下,想做什么就做什么。
文件上传合法性检查方法:
  • 前端JS验证
  • MIME类型验证
  • 黑名单/白名单
  • 检查文件内容(getimagesize()函数用于获取图像信息、检验关键字)
  • 禁止本地文件包含漏洞
  • 使用安全的web服务(apache、nginx(/test.pen/xxx.php)、IIS解析漏洞(1.php;jpg))
文件上传漏洞20种绕过方法:
  • 前端绕过
  • MIME类型绕过
  • 后缀名大小写绕过/php4、php5
  • 00截断
  • 覆盖.htaccess
  • Windows文件流特性绕过
  • 双写文件名绕过
  • 条件竞争
  • 等等…
文件下载漏洞概念
  • 一些网站由于业务需求,往往需要提供文件查看或文件下载功能,但若对用户查看或下载的文件不做限制,则恶意用户就能够查看或下载任意敏感文件,这就是文件查看与下载漏洞。
  • 下载服务器任意文件,如脚本代码、服务及系统配置文件等可用得到的代码进一步代码审计,得到更多可利用漏洞。
如何查找任意文件下载漏洞:
  • 查找传入文件名的参数:

    • 导入文件等参数,要是直接输入文件名,就有可能有注入点
  • 注意如下几个参数名:

    • RealPath,FilePath,filepath,Path,path,inputFile,url,urls,Lang,dis,data,readfile,filep
    • src,menu,META-INF,WEB-INF
  • 代码中如何查看漏洞:

    • PHP为例,有如下代码,就有可能存在任意文件下载漏洞
    • readfile,fopen,file_get_contents
Windows\Linux敏感文件路径:

在这里插入图片描述
在这里插入图片描述

修复文件下载漏洞:

PHP为例

  • 过滤 . (点),使用户在url中不能回溯上级目录
  • 正则严格判断用户输入参数的格式
  • php.ini配置open_basedir限定文件访问范围
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AnQ_xiao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值