文件上传漏洞

一、文件上传概述

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

相关推荐
介一安全2 天前
【漏洞学习】PHP+Windows环境通用文件上传漏洞深度剖析
windows·web安全·php·文件上传·安全性测试
cc.ChenLy3 天前
大文件断点续传原理总结和Demo示例详解
javascript·vue.js·文件上传·大文件断点续传
tsfy20038 天前
Python 处理中文文件名的3个坑(附 Flask 上传解决函数)
开发语言·python·flask·文件上传·中文编码
西洼工作室15 天前
前端直传OSS服务端签名(Policy+Signature)/STS临时凭证
前端·文件上传·oss
他是龙55116 天前
Upload-Labs (Pass-01 ~ Pass-21) 完全通关指南
文件上传
其实防守也摸鱼20 天前
Upload-labs:部署靶场及Pass-01实战解析
服务器·网络·安全·web安全·教程·文件上传·工具
探索者011 个月前
Upoad靶场--文件上传
安全·文件上传·upload靶场
探索者011 个月前
文件上传漏洞指南:原理+绕过手法与靶场实战
安全·web安全·文件上传
探索宇宙真理.1 个月前
Vvveb CMS 任意文件上传导致RCE | CVE-2026-6257原理分析&研究
经验分享·开源·文件上传·安全漏洞·vvveb
~ rainbow~1 个月前
前端转型全栈(六)——深入浅出:文件上传的原理与进阶
前端·http·文件上传