文件上传之基础及过滤方式
1、简介
什么是文件上传漏洞
- 指程序对文件的上传未作全面的限制,导致用户可以上传一些超越用户权限的一些文件,可以是木马,shell脚本,病毒等。
文件上传漏洞有哪些危害
- 可以通过文件上传漏洞上传webshell后门
文件上传漏洞如何查找及判断
- 黑盒: 使用扫描工具扫描打开网站。
- 黑盒:测试会员中心,测试后台。
- 白盒:直接撸源代码。
文件上传漏洞有哪些需要注意的地方
- 拿到漏洞后要对漏洞类型进行区分,编辑器、第三方应用、常规等。
- 区分漏洞类型
关于文件上传漏洞在实际应用中的说明
- 上传后门脚本获取网站权限
2、文件上传漏洞利用思路
常规:
- 扫描获取上传
- 会员中心上传,例如在上传图像处测试
- 后台系统上传
- 各种途径上传
CMS:
- 已知CMS源码
编辑器类:
- ckeditor
- feckeditor
- kindeditor
- xxxxeditor
其他CVE:(CVE 是通用漏洞披露(Common Vulnerabilities and Exposures)的英文缩写,列出了已公开披露的各种计算机安全缺陷。人们提到 CVE,指的都是已分配 CVE ID 编号的安全缺陷。)
- 代码审计
- 平台、第三方应用
3、配合解析漏洞下的文件类型测试本地文件
在vulhub靶场演示Nginx解析漏洞
搭建环境:
虚拟机Ubuntu2020.04,docker,vulhub靶场
解析过程:
版本信息:
- Nginx 1.x 最新版
- PHP 7.x最新版
由此可知,该漏洞与Nginx、php版本无关,属于用户配置不当造成的解析漏洞。
-
进入Nginx文件夹,进入解析靶场,启动容器,等待下载完成:
root@ubuntu:~/learn/vulhub# cd nginx/ root@ubuntu:~/learn/vulhub/nginx# cd nginx_parsing_vulnerability/ root@ubuntu:~/learn/vulhub/nginx/nginx_parsing_vulnerability# docker-compose up -d
剩下步骤即上传一个含有php代码的图片格式文件,然后访问http://your-ip/uploadfiles/xxx.png
和http://your-ip/uploadfiles/xxx.png/.php
即可查看效果。
具体步骤不再赘述,可参考volhub的文档:https://vulhub.org/#/environments/nginx/nginx_parsing_vulnerability/