pikachu笔记之文件上传漏洞

一、概述

一般web站点会有用户注册功能,而当用户登入之后大多数情况下都会存在类似头像 上传、 附件上传一类的功能,这些功能点往往存在上传验证方式不严格的安全缺陷,是在web渗透中非常关键的突破口,只要经过仔细测试分析来绕过上传验证机制,往往会造成被 攻击者直接上传 web后门,进而控制整个 web业务的控制权,复杂一点的情况是结合 web server的解析漏洞来上传后门获取权限。

上传漏洞主要的产生原因,是由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致攻击者能够向某个可通过Web访问的目录上传恶意文件,并被脚本解析器执行,这样就可以在远程服务器上执行恶意脚本。

二、漏洞利用过程

1.搜集可上传文件接口:

    需要手动在网站页面查找可以上传文件的接口,比如头像上传,附件上传,图片上传,模板上传等位置,并做好记录(重点检查位置:用户中心,会员中心,后台管理等)。

2.上传常规文件并进行抓包,分析可能存在的漏洞:

    通过上传符合要求的文件,抓取数据包,对数据包传输与返回的数据进行分析,手工修改传输包中的一些参数和数据,通过测试了解文件上传机制和检测项。

3.绕过检测机制,上传webshell文件:

根据之前的测试,通过各种绕过技术将webshell文件上传到服务器中,并可以正常执行。这里需要主义的是,我们要了解服务器可以执行那类文件,一般可分为asp、PHP、jsp、aspx,asa等类型。

仅仅上传了jpg、txt等非可执行文件,是没办法直接利用的,可以配合文件包含进行利用。

三、实施过程

client check:

1.打开pikachu上传漏洞页面,尝试上传文件,观察反应(这里先尝试上传了php文件)

发现从前端弹出了弹框,可能是前端的验证

2.查看源代码,发现了对后缀名的过滤

3.此时不慌,因为火狐浏览器有一个叫Script Blocker Ultimate的插件,可以把前端的代码脚本给阻拦掉

4.这时可以上传php文件了

实验成功

MIME type:

MIME多用途互联网邮件扩展类型,是设定某种扩展名的文件用一种应用程序打开的方式类型,当该扩展名被访问的时候,浏览器会自动使用指定应用程序来打开。

常见的MIME类型:

普通文本 .txt       text/panin

GIF图形 .gif        image/gif

JPEG图形 .jpg     image/jpeg

1.打开pikachu文件上传漏洞的MIME type界面,尝试上传文件(依旧是上传php文件)

发现不能上传文件

2.再次发送php文件,使用burpsuite抓包,更改Content-Type为Content-Type:image/jpeg,然后发送数据包

更改前

更改后

上传成功

可以尝试使用蚁剑登录后台

四、防范措施

不要在前端使用JS实施上传限制策略

通过服务端对文件上传进行限制:

       1.进行多条件组合检查:比如文件的大小、路径、扩展名、文件类型、文件完整性

       2.对上传的文件在服务器上储存时进行重命名(制定合理的命名规则)

       3.对服务器端上传文件的目录进行权限控制(比如只读),限制执行权限带来的危害

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值