文件上传2----前端JS验证与后端文件类型验证绕过

一、前端过滤绕过(Less-1)

前期准备:

菜刀、php一句话木马一个。

情况描述:

按照题目要求,需要上传一个图片。但是我们准备的是一个php的木马文件。先上传试一下。结果发现,对文件后缀名进行了校验,要求输入特定后缀的文件。

在这里插入图片描述

对于文件后缀名的校验,无非前端和后端两种,先看一看前端源码,解雇,发现确实是前端JS验证导致的问题。

在这里插入图片描述

既然是前端校验,那方法就多了呀,首先可以考虑修改源码的匹配规则,或者是通过伪造后缀名绕过前端验证之后修改后缀名进行上传。

方法一:修改源码

刷新题目页面,通过burp代理截断服务端返回的数据包。找到JS源码,修改白名单直接删除函数内容,返回true.
在这里插入图片描述

修改后放行,然后再客户端选择PHP文件,进行上传即可。然后就会发现出现了图片信息,在源码中查看到图片的相对位置为上一级目录的upload目录下。

在这里插入图片描述
然后使用菜刀进行连接。
在这里插入图片描述

方法二:

在PHP木马后面添加一个".jpg"后缀,绕过前端验证,然后通过burp再修改文件名为php后缀上传即可。

二、后端文类型检测绕过

在Less-2中,我们查看源码发现,并没有less-1中的前端验证。

我们尝试直接上传一个php木马,发现返回信息为“文件类型不正确”,说明后端对文件类型进行了判断。
在这里插入图片描述
于是使用burpsuite抓包修改文件类型(content-type字段)。

在这里插入图片描述

发送并截取返回包,发现已经返回了我们上传的“图片”。

在这里插入图片描述
返回了我们上传的“图片”。
在这里插入图片描述
根据路径提示,在使用菜刀进行连接即可。

Guess you like

Origin blog.csdn.net/qq_45590334/article/details/117262152