#文件上传基础认识
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限制删除,在增加响应地址(指向上传地址)即可。
再进行上传操作:
上传成功: