文件上传漏洞

发布于:2025-04-21 ⋅ 阅读:(15) ⋅ 点赞:(0)

1.文件上传漏洞的原理

1.1什么是文件上传漏洞

文件上传漏洞(File Upload Vulnerability)是一种常见的Web安全漏洞,指攻击者通过Web应用程序的文件上传功能,绕过安全检测机制,向服务器上传恶意文件(如木马、后门程序、脚本等),从而获取服务器控制权或实施进一步攻击的行为。该漏洞常出现在用户交互频繁的功能模块中,例如头像上传、文档提交、图片分享等场景。

1.2文件上传漏洞的原理

文件上传漏洞的核心原理在于服务端对上传文件的检测机制不完善,导致攻击者可绕过限制上传恶意文件。具体可分为以下两类原因:

1.2.1未充分验证文件属性

  • 文件类型验证缺失:仅依赖客户端(如浏览器)提交的Content-Type字段(如image/jpeg)判断文件类型,攻击者可通过伪造HTTP请求头绕过检测。

  • 文件扩展名未过滤:未对文件后缀(如.php.jsp)进行严格校验,允许执行危险脚本文件。

  • 文件内容未检测:未通过文件头(Magic Number)或二进制内容校验文件真实性,例如将恶意代码伪装成图片文件(图片马)。

1.2.2服务器配置缺陷

  • 危险目录权限:上传目录被设置为可执行权限(如Apache的/var/www/uploads目录允许执行PHP文件)。

  • 解析漏洞:服务器对文件解析逻辑存在缺陷(如IIS的test.jpg/.php解析漏洞),导致非脚本文件被当作代码执行。

1.3一句话木马

上传shell.php文件

eval的使用可以查看手册https://www.php.net/manual/zh/function.eval.php

在php中system可以执行一些系统程序

此时就可以在网页上个执行一些系统程序,如查看系统ip等,原则上只要对windows系统命令足够掌握便可以在这个网页上做所有想要做的事情。

2.Webshell

2.1什么是Webshell

Webshell(网页后门)是一种基于Web脚本语言(如PHP、ASP、JSP)编写的恶意程序,通常由攻击者通过漏洞(如文件上传漏洞、远程代码执行漏洞)植入到目标服务器中。其核心功能是建立攻击者与服务器之间的隐蔽通信通道,使攻击者能够绕过正常权限限制,远程操控服务器(例如执行系统命令、窃取数据、植入其他恶意软件等)。Webshell因其隐蔽性、灵活性和破坏性,成为渗透攻击中最常见的工具之一。

2.2特点

2.2.1一句话木马

代码短,只有一行代码。
场景多,可以单独生成文件,也可以插入到图 片中。
安全性高,隐匿性强,可变形免杀

2.2.2小马

体积小,功能少
只有文件上传功能

2.2.3大马

体积大,功能全
能够管理数据库、文件管理、对站点进行快速的信息收集,甚至能够提权

3.工具

3.1蚁剑

下载链接https://github.com/AntSwordProject/antSwordj​​​​​​

3.2weevely

下载kali系统

https://www.kali.org/

自动生成一个一句话木马
weevely generate 密码 文件名

让文件放到kali的phpstudy的www目录下

在Kali下安装phpstudy
if [ -f /usr/bin/curl ];then curl -O https://dl.xp.cn/dl/xp/install.sh;else wget -O install.sh https://dl.xp.cn/dl/xp/install.sh;fi;bash install.sh

具体使用方法可以查看这位博主的文章https://blog.csdn.net/m0_59188912/article/details/124934975

3.3godzilla

下载链接https://github.com/Freakboy/Godzilla

下载好之后在目录下打开cmd命令行窗口执行命令java -jar godzilla.jar便可打开窗口

在管理生成自动生成一个一句话木马
密码密钥都是默认的,有效载荷改为php,加密器位BASE64

将godzilla.php放到上传目录下,

在godzilla目标中选择添加

URL为刚才生成的godzilla.php的url

密码密钥都是默认的,有效载荷改为php,加密器位BASE64

添加后右键进入即可获得信息

具体使用和安装方案可以看这位博主的文章https://blog.csdn.net/zibery/article/details/124824833

3.4behinder(冰蝎)

下载链接https://github.com/Freakboy/behinder

启动方式和godzilla一样在目录下进入命令行模式输入java -jar Behinder.jar

在sever目录下可以看到自带的脚本复制shell.php到uploads下改名位behinder.php

添加到behinder里面

这里便可以对网站,操作系统等进行操作


网站公告

今日签到

点亮在社区的每一天
去签到