【文件上传漏洞-03】前端JS检测与绕过实例—以upload-labs-1为例

1 前端JS检测与绕过

在前端用了JS 脚本做检测,如检测文件后缀名等

概述:JS 检测绕过上传漏洞常见于用户选择文件上传的场景,如果上传文件的后缀不被允许,则会弹框告知,此时上传文件的数据包并没有发送到服务端,只是在客户端浏览器使用JavaScript对数据包进行检测

绕过方法

  • 方法一JS代码是在前端浏览器上执行的,如果页面JS代码被删除,则无法起到检测功能。
  • 方法二:首先把需要上传文件的后缀改成允许上传的,如jpg、 png等, 然后利用burp抓包,在burp中将请求信息中的文件后缀名改成可执行文件的后缀即可,之后才能成功访问。原理就是先将文件后缀名改为白名单中的,用于绕过浏览器端JS的检测,再修改burp请求信息中的文件后缀名,保证文件能在服务器上执行。

2 前端JS检测与绕过实例

2.1 实验目的

掌握两种绕过JS检测的方法,验证文件上传漏洞的存在。

2.2 操作环境

靶场:基于WAMP环境的upload-labs靶场,搭建过程可参考文章《【环境搭建-03】基于WAMP环境的upload-labs漏洞靶场的搭建》。
攻击机:kali虚拟机,自带BurpSuite软件。
靶场与攻击机处于同一个局域网下。

2.3 前期准备

准备好一个文件,该文件可能是木马,也可能是其他任意文件,本实验以php探针作为测试文件,来验证是否存在文件上传漏洞以及绕过漏洞检测的方法。
文件名为:phpinfo.php,文件内容:<?php phpinfo();?>。

2.4 具体过程

2.4.1 文件上传前期盲测

(1)选中目标文件。在靶机客户端打开浏览器,输入网址http://172.16.1.1/upload-labs/访问靶场,进入第一关。点击浏览选择刚刚准备的探针文件。
在这里插入图片描述

(2)上传文件。当我们点击上传时,弹出错误提示说文件类型不对。
在这里插入图片描述
(3)审查元素查看原因。由于会弹框,通过审查元素(右键→检查→审查元素)看一下,发现在52~ 56行是我们提交文件数据的表单,其中有个以onsubmit事件,其值为checkFile(),这是一个自定义函数。在搜索框内查询该函数或者右键查询下源代码,定义内容位于83~101行。该函数定义了一个后缀名的白名单,满足白名单后缀名的文件即可通过。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4.2 方法一:删除JS直接上传

(1)删除表单中的事件。由于上述检测是直接在前端检测的,因此,我们可以在网页前端将表单中的事件删掉,直接让页面没有检测功能。按下F12,查看元素后将事件代码删去。
在这里插入图片描述

(2)重新上传。删去代码后再次点击上传按钮,可以看到成功上传文件,只是该文件并不是图片格式,无法正常显示。
在这里插入图片描述

(3)查看文件上传的路径并验证。鼠标右键上图中红框位置(本该是显示图片的位置),点击“新建标签页打开”,可以看到在新的页面成功执行该文件,并返回探针信息内容。如果是其他页面语句,也将成功执行。
在这里插入图片描述
在这里插入图片描述
方法一演示结束,点击页面右上角“清空上传文件”按钮,方便下次实验。
在这里插入图片描述

2.4.3 方法二:绕过JS后修改数据

相比于方法一,方法二显得步骤繁琐一些。
(1)kali虚拟机打开BurpSuite,开启代理拦截功能.具体可参考《【Burp Suite工具-2】BurpSuite工作原理及菜单栏介绍
在这里插入图片描述
(2)kali虚拟机上打开其火狐浏览器,输入网址http://172.16.1.1/upload-labs/访问upload-labs,并点击进入第一关。
(3)修改文件后缀名,并在浏览器中选中该文件。将我们上传的文件名后缀修改为png以绕过前端JS检测,点击浏览选中目标文件。
在这里插入图片描述
在这里插入图片描述

(4)在kali虚拟机上打开其火狐浏览器,并为浏览器设置代理。具体可参考《【Burp Suite工具-2】BurpSuite工作原理及菜单栏介绍
在这里插入图片描述
(5)点击上传并修改文件后缀名。在页面点击上传按钮,之后在BurpSuite界面我们看到成功拦截到请求,在请求中我们看到上传的文件信息如下图,其中有文件名信息,将其修改为phpinfo.php,点击forward,后续请求也点击forward。
在这里插入图片描述
在这里插入图片描述

(7)看到页面内容如下
在这里插入图片描述
(8)验证是否成功将文件上传到服务器。右键上图中红框位置(本该是显示图片的位置),点击“新建标签页打开”,可以看到在新的页面成功执行该文件,并返回探针信息内容。如果是其他页面语句,也将成功执行。该过程中,若弹出burp请求时,需要点击forward。

在这里插入图片描述
在这里插入图片描述

3 总结

了解前端JS检测的方法。该方法能让普通用户更早发现自己上传文件是否出错,但是对于攻击者无法起到任何阻碍作用。
掌握前端JS检测的两种绕过方法。

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值