文件上传漏洞

一、文件上传概述

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

相关推荐
你怎么睡得着的!1 天前
【web安全】——文件上传漏洞
web安全·漏洞·文件上传
想要打 Acm 的小周同学呀4 天前
若依--文件上传前端
前端·状态模式·文件上传·低代码开发·若依
wn5311 个月前
【Go - 10分钟,快速搭建一个简易日志回传系统】
后端·阿里云·golang·日志·文件上传
bobo-rs1 个月前
Go语言操作文件上传和下载应用教程
开发语言·golang·iphone·文件上传·文件下载·go文件
程序奇男子2 个月前
62_2文件上传
java-ee·文件上传
无极9212 个月前
文件上传 点绕过
安全·网络安全·信息安全·ctf·文件上传·点绕过
无极9212 个月前
文件上传 .htaccess
安全·网络安全·信息安全·ctf·文件上传·.htaccess
无极9212 个月前
突破exif_imagetype()
网络安全·信息安全·ctf·文件上传·exif_imagetype
代码星辰2 个月前
功能实现——通过阿里云 OSS 实现文件管理
阿里云·文件上传·oss·文件下载
小春学渗透2 个月前
文件上传漏洞(ctfshow web151-161)
网络安全·ctf·文件上传·ctfshow