简单利用filetype进行文件上传

简介:

    对于文件上传大家都很熟悉了,毕竟文件上传是获取webshell的一个重要方式之一,理论性的东西参考我的另一篇汇总文章《浅谈文件解析及上传漏洞》,这里主要是实战补充一下理论内容——filetype漏洞!

  filetype漏洞主要是针对content-type字段,主要有两种利用方式:
    1、先上传一个图片,然后将content-type:image/jpeg改为content-type:text/asp,然后对filename进行00截断,将图片内容替换为一句话木马。

    2、直接使用burp抓包,得到post上传数据后,将Content-Type: text/plain改成 Content-Type: image/gif。

    这里补充一个简单的利用filetype可控来进行任意文件上传,之前在ctf中遇到过,但是以为在实际环境中应该是不会出现的,可惜还是被我遇到了!

    实验环境:asp,iis7.5,windows 2008 r2

    当我们找到一个上传点时,我们上传一个asp的一句话马,对应的http请求数据包如下,如图1所示:

wKioL1mdgzHwzb_oAALZUjN7k_Y682.jpg-wh_50

图1 上传失败

    此时我们上传失败了,说扩展名非法(应该是白名单限制),而http请求数据包中的filetype显示是*,不是应该都支持吗?这时我们就使用各种方式上传,目录解析(通过尝试是可以任意创建上传的目录名称的)、00截断、从左到右解析、从左到右解析。。。。。结果都失败了!

    本来以为没有办法了,因为通过下载配置文件web.config发现,做了白名单限制,如图2所示,应该是没办法了!

wKioL1mdhSeyxedvAAC5M1iC-v8383.jpg-wh_50

图2 web.config

    最后我精灵地发现(瞎猫碰到死耗子)将filetype的*直接修改为asp,然后成功上传,如图3所示。

wKioL1mdhdHg2bdgAAK_9fkb-HI671.jpg-wh_50

图3 修改filetype上传成功

    然后我们访问该目录,看看是否真的上传成功,有没有被杀这类的,如图4所示,一句话确实是上传成功了。

wKioL1mdhk7CDmIYAACTqvmBY6o647.jpg-wh_50

图4 一句话可正常访问

    最后使用菜刀进行连接,成功获取到一个webshell,如图5所示。

wKioL1mdh26jNj5cAAKmeitBXcs247.jpg-wh_50

图5 成功获取webshell

    总结:

    本篇文章主要是记录一下平时的一些经验技巧,由于经常受到固定思维的限制,每每都要到最后才会想到碰碰运气!


本文转自 eth10 51CTO博客,原文链接:http://blog.51cto.com/eth10/1958799

相关文章
|
小程序
微信小程序 - 二维码数据解析,如何扫码进入开发版测试二维码数据
微信小程序 - 二维码数据解析,如何扫码进入开发版测试二维码数据
1129 0
|
SQL 监控 druid
Druid未授权访问 漏洞复现
Druid未授权访问 漏洞复现
18822 0
|
11月前
|
消息中间件 人工智能 Serverless
主动式智能导购AI助手构建解决方案评测
主动式智能导购AI助手构建解决方案评测
464 3
|
弹性计算 固态存储 大数据
2024阿里云服务器租用价格表(一年/按月/按小时报价明细)
阿里云服务器2024年最新租用价格表显示,轻量应用服务器2核2G3M带宽一年82元(约6.8元/月),2核4G4M带宽轻量服务器一年298元。新老用户共享99元一年的2核2G3M带宽ECS经济型e实例服务器与199元一年的企业专享2核4G5M带宽ECS u1实例服务器优惠。4核16G10M带宽游戏服务器70元/月,8核32G10M带宽160元/月。GPU服务器如gn6v和gn6i等提供新用户专享折扣。续费折扣方面,续费一年享有7.5折,续费五年则有3折优惠。按小时计费的云服务器ECS实例中,如ecs.u1-c1m4.large(2核8G)每小时0.45元。
31923 17
|
云安全 存储 弹性计算
|
JavaScript API
【Vue 3】推荐 1 个简约且美丽的天气组件
【Vue 3】推荐 1 个简约且美丽的天气组件
|
Docker 容器
Docker服务启动失败报错:Job for docker.service failed because the control process exited with error code.
Docker服务启动失败报错:Job for docker.service failed because the control process exited with error code.
|
NoSQL Redis Docker
Docker获取镜像和运行镜像
这篇文章介绍了如何使用Docker获取镜像以及运行镜像的具体步骤和命令。
1967 0
|
前端开发 JavaScript 安全
【网络安全】WebPack源码(前端源码)泄露 + jsmap文件还原
【网络安全】WebPack源码(前端源码)泄露 + jsmap文件还原
2868 0
|
安全 网络安全 网络虚拟化
CTF学习和比赛平台简介
CTF学习和比赛平台简介
1782 1

热门文章

最新文章