文件上传基础

Posted 朝朝_暮暮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件上传基础相关的知识,希望对你有一定的参考价值。

#文件上传基础认识

1.文件上传大致学习方向

文件上传大致学习方向如下图

 

 

 

 

什么是文件上传漏洞?

凡是在有文件上传的地方,均有可能存在文件上传漏洞。

文件上传漏洞有什么危害?

可以上传webshell,直接获取当前网站的权限。

如何查找和判断文件上传漏洞?

黑盒测试:扫描敏感文件,通过特定字典扫描以获取上传地址。

相关web应用:会员中心上传头像等

后台webshell等。

白盒测试:获得网站源码,从代码中获取某些地方存在文件上传操作

利用的一些思路

#文件上传漏洞的一点演示

1.常规文件上传地址的获取说明(怎样找文件上传)

可通过搜引擎的语法搜索

inurl:upload.php

寻找特定网站的文件上传:

site:xx.xx upload

 

 

2.配合解析漏洞的文件类型后门测试

vulhub靶场nginx解析漏洞复现

进入目录vulhub/nginx/nginx_parsing_vulnerability/目录下

直接执行:

docker-compose up -d

启动容器。

访问服务器地址:

将事先准备好的图片马上传。

可获取到上传图片的地址:

正常访问:

增加/.php后成功解析

 3.任意文件类型上传漏洞

vulhub靶场:weblogic任意文件上传漏洞(CVE-2018-2894)

进入vulhub/weblogic/CVE-2018-2894目录下启动靶场环境

docker-compose up -d

 

 

 访问http://ip:7001/console,可查看到登录界面

执行docker-compose logs | grep password可查看管理员密码,管理员用户名为weblogic

 

 

登录后台页面,点击base_domain的配置,在“高级”中开启“启用 Web 服务测试页”选项:

 

 

漏洞复现

访问http://your-ip:7001/ws_utc/config.do,设置Work Home Dir为/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css。我将目录设置为ws_utc应用的静态文件css目录,访问这个目录是无需权限的,这一点很重要

然后点击安全 -> 增加,然后上传webshell:

上传后,查看返回的数据包,其中有时间戳

然后访问http://ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名],即可执行webshell:

4.本地文件上传漏洞靶场环境搭建测试

靶场项目地址:https://github.com/c0ny1/upload-labs

第一关演示:

上传马:

 

 

发现只能上传图片类型。

ctrl+u查看源码,发现是前端js限制:

 

 

只需复制源码,将js限制删除,在增加响应地址(指向上传地址)即可。

再进行上传操作:

 

 上传成功:

 

以上是关于文件上传基础的主要内容,如果未能解决你的问题,请参考以下文章

[vscode]--HTML代码片段(基础版,reactvuejquery)

将存储在内存中的文件上传到s3

JS创建文件并上传服务器

ajaxFileUpload上传带参数文件及JS验证文件大小

android的自带的httpClient 怎么上传文件

大文件上传下载实现思路,分片断点续传代码实现,以及webUpload组件