文件上传漏洞

一、文件上传概述

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、文件头检测绕过

相关推荐
见欢.7 天前
upload-labs靶场1-19关
文件上传
2401_883879797 天前
upload-labs(1-19关)通关攻略
靶场·upload·文件上传
anyview931 个月前
Http文件上传
java·文件上传
摘星怪sec1 个月前
【漏洞复现】|百易云资产管理运营系统/mobilefront/c/2.php前台文件上传
网络安全·文件上传·漏洞复现
RrEeSsEeTt1 个月前
制作图片马常用的五种方法总结
web安全·网络安全·渗透测试·文件上传·木马·一句话木马
冰水°1 个月前
3.1_文件上传漏洞
安全·网络安全·文件上传·条件竞争·.htaccess·文件上传绕过
web前端神器1 个月前
利用nodejs后端传视频文件到服务器笔记
笔记·后端·node.js·文件上传
cooldream20092 个月前
Spring Boot实现文件上传与OSS集成:从基础到应用
spring boot·后端·文件上传·oos
永恒之月℡2 个月前
JavaWeb合集23-文件上传
java·javaweb·文件上传
@PHARAOH2 个月前
WHAT - Excel 文件上传解析与编码
前端·javascript·excel·文件上传