当前位置:首页 > 网络安全 > 正文内容

Pikachu靶场通关之Unsafe Fileupload

访客4年前 (2021-04-16)网络安全871

一、本文介绍

今天,我们来学习一项web安全里最常见的漏洞,Unsafe Fileupload。本篇文章将会带领大家进入到Unsafe Fileupload这项漏洞的世界里,让大家领略到Unsafe Fileupload这项漏洞的魅力,从而对Unsafe Fileupload漏洞有更深刻的认识。

学习一项新的漏洞,简单来说,我们要从四个方面来入手,第一个方面是产生这项漏洞的原因,不管是从代码层面,还是从逻辑层面等方面,来对这项漏洞有一个清楚的认识,有位大佬说得好,只有对漏洞原理了如指掌,才会有更多的突破点来挖掘漏洞;第二个方面是这项漏洞应该如何利用,是直接使用漏洞利用的各种工具,还是自己的写或者是借鉴其他大佬的漏洞利用的脚本等,漏洞利用的方式不一而同,具体问题具体分析;第三个方面是这项漏洞对网站等能够造成什么样危害,能够达到什么样的效果,是获取网站的权限,还是获取管理员或者用户的账号密码或者是敏感信息等;第四个方面当然是,我们应该如何去防范这项漏洞,以及这项漏洞的修复方式,分别从代码层面、逻辑层面等方面如何去修复。

本篇文章将分别从Unsafe Fileupload漏洞的原理、Unsafe Fileupload漏洞如何利用、Unsafe Fileupload漏洞的危害以及Unsafe Fileupload漏洞如何防范与修复这四个方面,来和大家一起学习Unsafe Fileupload这项漏洞,下面我们进入正题。

二、Unsafe Fileupload的原理

不安全的文件上传漏洞概述

文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断,比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式进行重命名后存储在指定的目录。 如果说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击者可能会上传一些恶意的文件,比如一句话木马,从而导致后台服务器被webshell。

所以,在设计文件上传功能时,一定要对传进来的文件进行严格的安全考虑。比如:

--验证文件类型、后缀名、大小;

--验证文件的上传方式;

--对文件进行一定复杂的重命名;

--不要暴露文件上传后的路径;

--等等...

三、Unsafe Fileupload的利用

1.client check

查看源码

function checkFileExt(filename)

{

var flag=false; //状态

var arr=["jpg","png","gif"];

//取出上传文件的扩展名

var index=filename.lastIndexOf(".");

var ext=filename.substr(index+1);

//比较

for(var i=0;i<arr.length;i++)

{

if(ext==arr[i])

{

flag=true; //一旦找到合适的,立即退出循环

break;

}

}

//条件判断

if(!flag)

{

alert("上传的文件不符合要求,请重新选择!");

location.reload(true);

}

}

分析,前端限制,可以通过禁用javascript绕过

上传php文件,显示不允许

使用火狐浏览器,直接禁用javascript,到这个界面,点击取消

使用谷歌浏览器,同样禁用javascript,

点击上传,找到路径并访问

http://x.x.x.x/vul/unsafeupload/uploads/phpinfo.php

2.MIME type

选择非图片的文件时,? 不会拦截;? 点击上传时,? 服务器端检测到非图片格式, 就被拦截

MIME (Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型

MIME 是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问时,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。常见的 MIME 类型,比如:

超文本标记语言:.html,.html text.html

普通文件:.txt text/plain

RTF文件:.rtf application/rtf

GIF图形:.gif image/gif

JPEG图形:.jpeg,.jpg image/jpeg

查看源码,?定义了一个数组并且调用了uploadfile函数

上传1.jpg?,抓包查看type类型

上传1.php?,抓包查看type类型

修改phpinfo.php的type类型为image/jpeg

上传成功

成功访问phpinfo文件

3.getimagesize

getimagesize函数更是限制了上传文件的文件头必须为图像类型

修改文件的type类型不可用

第一种方法,可以通过添加jpg图片的格式头到脚本文件里进行绕过

首先在文本文档里写入<?php phpinfo();?>文件后缀修改为.jpg

上传文件,抓包,在脚本文件前加上GIF89,放包

成功上传

第二种方法,在图片文件内容后添加<?php phpinfo();?>

命令行输入copy 1.png/b + phpinfo.php/a 2.png

点击上传

文件上传成功

服务器会将木马文件解析成图片文件,因此向其发送执行该文件的请求时,服务器只会返回这个“图片”文件,并不会执行相应命令。

可以利用之前的文件包含漏洞,将图片格式的文件当做php文件来解析执行:

http://x.x.x.x/vul/fileinclude/fi_local.php?filename=https://www.freebuf.com/unsafeupload/uploads/2020/10/20/5936185f8e5245666f2586884965.jpg&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2

http://x.x.x.x/vul/fileinclude/fi_local.php?filename=https://www.freebuf.com/unsafeupload/uploads/2020/10/20/6950415f8e7cda64b46247514668.jpg&submit=o¤?¥èˉ¢

四、Unsafe Fileupload的危害

上传漏洞与SQL注入或 XSS相比,其风险更大,如果 Web应用程序存在上传漏洞,攻击者上传的文件是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,导致代码执行。如果上传的文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为。

如果上传的文件是病毒、木马文件,黑客用以诱骗用户或者管理员下载执行。如果上传的文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈。甚至攻击者可以直接上传一个webshell到服务器上 完全控制系统或致使系统瘫痪。

五、Unsafe Fileupload的修复

  • 检查文件上传路径 (?避免0x00 截断、?IIS6.0 文件夹解析漏洞、目录遍历 )
  • 文件扩展名检测 (?避免服务器以非图片的文件格式解析文件 )
  • 文件MIME验证 ( 比如 GIF 图片 MIME为 image/gif,CSS 文件的 MIME为 text/css 等 )? 文件内容检测 ( 避免图片中插入 webshell)
  • 图片二次渲染 (?最变态的上传漏洞防御方式 ,?基本上完全避免了文件上传漏洞 )
  • 文件重命名(?如随机字符串或时间戳等方式 ,?防止攻击者得到 webshell 的路径?)
  • 六、本文总结

    到此为止,通过本篇文章,我们大家分别从Unsafe Fileupload漏洞的原理、Unsafe Fileupload漏洞如何利用、Unsafe Fileupload漏洞的危害以及Unsafe Fileupload漏洞如何防范与修复这四个方面,一起学习了Unsafe Fileupload这项漏洞,相信大家已经对Unsafe Fileupload这项漏洞有了明确而深刻的认识。

    本人之后还会陆续分享我在网络安全与渗透测试学习之路上的各种笔记,包括且不限于各种漏洞原理、漏洞挖掘、漏洞复现以及靶场CTF通关教程等等,希望大家多多点赞关注支持。

    免责声明:本站提供的安全工具、程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

    转载声明:著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    欢迎关注公众号:国服最强渗透掌控者

    一名普通的白帽子,努力追求着成为国服最强渗透掌控者的梦想,希望我的分享能够给大家带来帮助,并且能够为网络安全事业做出自己的贡献。此生无悔入网安,争做渗透第一人。

    扫描二维码推送至手机访问。

    版权声明:本文由黑客接单发布,如需转载请注明出处。

    本文链接:https://therlest.com/106177.html

    分享给朋友:

    “Pikachu靶场通关之Unsafe Fileupload” 的相关文章

    创业板投资风险揭示书,创业板风险揭示书

    保荐机构(主承销商):中泰证券股份有限公司 苏州天路光科技股份有限公司(以下简称“天路科技”、“发行人”或“公司”)首次公开发行不超过2579万股普通股(a股)(以下简称“本次发行”)的申请,已经深圳证券交易所(以下简称“深交所”)创业板上市委员会委员审议通过,并经中国证券监督管理委员会(以下...

    【紧急+重要】勒索病毒解决方案!附:MS17-010补丁下载

      滚动更新:2017年5月13日16:57:22   游侠安全网(良心网站,站长先贴上注意事项和解决方法!防止你看本文的时候就被加密了!   1、本次共计是自动化攻击,利用了Windows的MS17-010。但苹果的MacOS用户不用得意,因为在昨晚之前,我这里得到的好几起勒索攻击案例都是针对...

    干洗对衣物有害吗

    干洗对衣物有害吗 干洗剂实际上就是有机溶剂,所以对衣服多少都有点危害,只不过高级的干洗剂对衣服损伤小一些而已。 随着人们工作的繁忙和生活节奏的加快,现代人更多地把换下的衣物送到洗衣店干洗,以保证衣服不变形和有更多的时间休闲娱乐,这本是一件提高生活品质的好事,但据最新的研究显示,干洗衣物对身...

    Webshell安全检测篇(1)-根据流量的检测方法

    一、概述 笔者一直在重视webshell的安全剖析,最近就这段时刻的心得体会和咱们做个共享。 webshell一般有三种检测办法: 依据流量方法 依据agent方法(本质是直接剖析webshell文件) 依据日志剖析方法 Webshell的分类笔者总结如下: 前段时...

    53度最便宜酱香郎酒_郎酒经典酱香53度

    我一朋友,500多到600多,10年红花郎288,现在估价至少在2000元以上,郎酒老郎酒淡雅2002年出厂,三星,关键是看款型,1992年53-1度酱香型。 郎酒还是1898起步比较好。对了,或者以前的,未来两年必定疯长!不知道怎么上图,现在的价格是158元每瓶便宜,你好。 看目前郎酒的上涨势头,...

    ems邮政快递查询(ems快递附近网点查询)

    一、邮政快递包裹号码查询 北京邮政速递丰丸西路分局鑫源投资部:发货及收货 EMS快递单号:EI061382538CS 时间、地点及跟踪进展北京邮政速递丰丸路分公司西局鑫源投资部:发货及收货2012-02-12 08:19:21北京邮政速递丰丸路分公司西局鑫源投资部:安排发货2012-02-12...

    评论列表

    辞眸嘟醉
    2年前 (2022-06-18)

    类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。常见的 MIME 类型,比如:超文本标记语言:.html,.html text.html普通文件:.

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法和观点。