File Upload(文件上传)(upload-labs 1-5)

  1. 文件上传介绍
    在现代的互联网WEB应用程序中,上传文件是一种常见的功能,它有助于提高业务效率,比如企业的OA系统,允许用户上传头像、照片等许多类型的文件。然而,开放的功能越多,WEB应用受到攻击的风险越大。如果WEB应用存在文件上传漏洞,那么攻击者就可以利用这个漏洞将可执行脚本程序上传到服务器中,获得网站的权限从而进一步危害服务器

  2. 文件上传原理
    文件上传漏洞通常是未对客户端上传文件的类型、内容没有进行严格的过滤、检查,就很容易造成可以上传任意文件的情况,包括上传脚本文件,从而获得服务器的webshell权限,控制整个网站,甚至控制服务器,造成严重危害

  3. 文件上传的技巧
    测试平台:upload-labsFile Upload(文件上传)(upload-labs 1-5)_第1张图片
    pass-01:
    查看提示:File Upload(文件上传)(upload-labs 1-5)_第2张图片
    这里是在客户端进行的过滤,js对文件后缀名做了白名单限制。很好绕过,F12调出元素查看器,将onsubmit事件删除即可,这样提交表单时便不会触发验证函数从而绕过
    File Upload(文件上传)(upload-labs 1-5)_第3张图片
    上传成功,在图片信息中查看图片路径
    File Upload(文件上传)(upload-labs 1-5)_第4张图片
    用菜刀去连接,成功!!!
    File Upload(文件上传)(upload-labs 1-5)_第5张图片
    pass-02:
    查看提示:
    在这里插入图片描述
    这是在服务器端做了验证,代码层对文件的MIME类型进行了检查,可以使用burp抓包,修改文件上传的content-type类型为白名单允许的图片MIME类型
    File Upload(文件上传)(upload-labs 1-5)_第6张图片
    上传的网页大马,访问图片地址,输入密码成功拿到webshell
    File Upload(文件上传)(upload-labs 1-5)_第7张图片
    pass-03:
    查看提示:
    File Upload(文件上传)(upload-labs 1-5)_第8张图片
    这里是黑名单检测,但是在黑名单里没有.htacess文件做限制,所以我们可以通过先上传.htaccess,然后再上传webshell文件
    .htaccess文件内容如下:
    在这里插入图片描述
    这句话的含义是:将上传的文件后缀名为.jpg格式的文件以 php格式来解析文件,所以我们就上传php文件,然后通过抓包修改文件名为.jpg即可
    File Upload(文件上传)(upload-labs 1-5)_第9张图片
    File Upload(文件上传)(upload-labs 1-5)_第10张图片

pass-04:
查看提示:
File Upload(文件上传)(upload-labs 1-5)_第11张图片
这关跟第四关的方法一样,也是上传.htaccess,然后更改文件后缀名为相关文件上传即可

pass-05:
查看提示:
File Upload(文件上传)(upload-labs 1-5)_第12张图片
这个过滤了挺多的,尝试通过大小写绕过
File Upload(文件上传)(upload-labs 1-5)_第13张图片
上传成功,访问图片地址,成功
File Upload(文件上传)(upload-labs 1-5)_第14张图片

  1. 修复建议
    (1)通过白名单的方式判断后缀名是否合法
    (2)对上传后的文件名进行重命名

  2. 拓展:
    数据包的MIME:MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

    .htaccess文件:.htaccess(超文本访问)是许多Web服务器根据目录应用设置的有用文件,允许在运行时覆盖Apache服务器的默认配置。使用.htaccess,我们可以在运行时轻松启用或禁用任何功能。

你可能感兴趣的:(靶机)