网络安全笔记-99-渗透-文件上传

文件上传漏洞

漏洞概述

文件上传是Web 应用的必备功能之一,比如上传头像显示个性化、上传附件共享文件、上传脚本更新网站。如果服务器配置不当或者没有进行足够的过滤,Web 用户就可以上传任意文件,包括恶意脚本文件、exe 程序等,这就造成了文件上传漏洞。

漏洞成因

  • 服务器配置不当
  • 对上传文件没有限制
  • 没有考虑系统特性和验证以及过滤不严格导致限制被绕过

漏洞危害

非法用户可以利用上传的恶意脚本文件控制整个网站,甚至可以控制服务器。这个恶意脚本文件被称为webshell,也可以将webshell脚本称为一个网页后门,webshell具有十分强大的功能,比如查看服务器目录,服务器中的文件,执行系统命令等。

WebShell

WebShell是一个网站后门,也是一个命令解释器,使用HTTP协议通信,[继承了web用户的权限]。WebShell本质上是服务器端可执行的脚本文件,后缀名为.php/.asp/.aspx/.jsp。

大马

与一句话木马(小马)相比,代码量大,功能丰富。

小马

一句话木马

各个版本的一句话木马:

ASP:
<%eval request("cmd")%>

ASP.net:
<%@ Page Language="Jscript"%>
<%eval(request.Item["cmd"],"unsafe");%>

PHP:
<?php @eval($_REQUEST["cmd"]);?>

一句话木马简短干练。需要配合中国菜刀或者蚁件使用。

中国菜刀的三大基本功能
  • 文件管理:包括文件上传,下载,查看,修改,执行
  • 虚拟终端:可以获得cmd或bash命令行接口,执行相关命令
  • 数据库管理:可以连接数据库,执行操作。

GETShell

获取WebShell的过程。

文件上传是getshell的一种方式,但不是唯一途径。

文件上传漏洞利用的条件

  1. web服务器开启文件上传功能,并且对外开发
  2. web用户对目标目录具有可写权限与执行权限。一般情况下,web目录都有执行权限。
  3. web容器可以解析上传的脚本
  4. 服务器配置不当,开启了PUT方法

漏洞防御

黑白名单策略

黑白名单是常用的安全策略之一。

PUT方法上传文件

PUT方法用来传输文件,就像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URL指定的位置。

但是,鉴于HTTP/1.1的PUT方法自身不带验证机制,任何人都可以上传文件,存在安全问题,因此一般的web网站不食用该方法。若配置web应用程序的验证机制,或架构设计采用REST(表征状态转移)标准的同类web网站,就可能开放使用PUT方法。

JS检测绕过攻击

JS检测绕过上传漏洞常见于用户选择文件上传的场景,仅在前端使用JS脚本做检测,如果上传文件的后缀不被允许则弹窗提示。此时上传文件的数据包并没有发送到服务器。

这是有两种方法可以绕过客户端JS的检测

  • 修改或删除文件检测后缀的JS代码
  • 通过抓包修改文件名后缀
分析:

<html>
    <body>
    <script>
        function selectFile(fnUpload){
    
            var filename = fuUpload.value;
            var mime = filename.tolowerCase().substr(filename.lastIndexOf("."));
            if(mime != ".jpg"){
    
                alert("请选择jpg格式的照片上传");
                fnUpload.outerHTML = fnUpload.outerHTML;
            }
        }
        </script>
        <form action="upload.php" method="post" enctype="multipart/form-data">
            <lable for="
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值