文件上传漏洞

一、文件上传概述

1、常见文件上传的点:如用户头像上传,图片上传,文档上传等。

2、漏洞产生原因:对上传的文件未做过滤或过滤不严,导致攻击者可以上传恶意脚本,达到获取网站信息、权限的目的。

3、webshell:一种网页后门,以php,asp,jsp等文件形式存在的一种命令执行环境。

4、一句话木马:一种小而精的恶意代码,通常为一行。

如:<?php @eval($_request["cmd"]);?>

  • $_request[]:是PHP中的一个超级全局变量,用于接收客户端提交的数据
  • eval():执行括号里的代码并返回结果
  • @:屏蔽该语句的报错信息
  • cmd为客户端提交命令的参数值(尽量特殊一点)

注:史上最全一句话木马-CSDN博客

4、条件

  • 木马能上传成功,未被杀
  • 知道上传木马的路径在哪
  • 上传的木马能正常运行(解析)

5、流程

  • 找到文件上传的点
  • 文件上传-绕过检测
  • 判断文件是否上传成功
  • 使用webshell管理工具,判断是否能够连接

二、绕过

1、绕过前端JS检测

(1)、判断JS检测存在:bp可能抓不到包

(2)、绕过:浏览器开发者工具剔除JS或禁止JS

2、绕过MIME-Type验证

(1)mime-type:设定某种扩展名的文件用程序打开的方式类型

(2)MIME-TYPE检测是通过检查http包的Content-Type字段中的值来判断上传文件是否合法的

(3)测试:可以先成功上传一个文件,观察服务器允许的mime的类型,然后再抓包修改,在重放模块尝试。

资料:HTTP Content-Type(MIME类型)_图片 mimetype-CSDN博客

3、黑名单绕过

(1)、黑名单验证:只针对黑名单中没有的后缀名,文件才能上传成功

(2)、通过bp修改filename,利用Intruder模块进行枚举后缀名,寻找黑名单中没有过滤的后缀名。

  • 双写绕过
  • 大小写绕过
  • 特殊可解析文件名绕过
  • ::$DATA绕过
  • .htaccess绕过

(3)、可以直接修改文件后缀名进行上传

(4).htaccess文件内容

复制代码
<FilesMatch "1.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

4、白名单绕过

(1)、白名单验证:只针对白名单中有的后缀名,文件才能上传成功。

(2)、通过bp修改filename,绕过

(3)、绕过:00截断绕过(PHP5.3之后已修复)

(4)、乱写后缀判断是黑名单还是白名单

5、文件头检测绕过

相关推荐
mooyuan天天3 天前
upload-labs通关笔记-第5关 文件上传之.ini绕过
文件上传·文件上传漏洞·upload-labs靶场
唐僧洗头爱飘柔95273 天前
【SSM-SpringMVC(二)】Spring接入Web环境!本篇开始研究SpringMVC的使用!SpringMVC数据响应和获取请求数据
java·spring·文件上传·页面跳转·数据响应·获取请求数据·静态资源访问
mooyuan天天4 天前
upload-labs通关笔记-第2关 文件上传之MIME绕过
web安全·文件上传·文件上传漏洞·mime·upload-labs靶场
mooyuan天天4 天前
upload-labs通关笔记-第3关 文件上传之黑名单绕过
web安全·文件上传·文件上传漏洞·upload-labs靶场
Clockwiseee5 天前
文件上传总结
运维·服务器·学习·文件上传
mooyuan天天13 天前
Webug4.0靶场通关笔记14- 第18关 文件上传之Nginx解析缺陷
nginx·web安全·文件上传·文件上传漏洞·webug靶场·nginx解析漏洞
mooyuan天天13 天前
Webug4.0通关笔记12- 第17关 文件上传之前端拦截(3种方法)
web安全·文件上传·文件上传漏洞·web渗透·webug4靶场·文件上传前端绕过
两点王爷19 天前
springboot项目文件上传到服务器本机,返回访问地址
java·服务器·spring boot·文件上传
见青..1 个月前
【学习笔记】文件上传漏洞--二次渲染、.htaccess、变异免杀
前端·笔记·web安全·文件上传
H轨迹H2 个月前
文件上传fuzz工具-Upload_Auto_Fuzz
网络安全·渗透测试·ctf·文件上传·web漏洞