700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【文件上传漏洞-03】前端JS检测与绕过实例—以upload-labs-1为例

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

时间:2020-05-25 07:24:50

相关推荐

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

目录

1 前端JS检测与绕过2 前端JS检测与绕过实例2.1 实验目的2.2 操作环境2.3 前期准备2.4 具体过程2.4.1 文件上传前期盲测2.4.2 方法一:删除JS直接上传2.4.3 方法二:绕过JS后修改数据3 总结

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检测的两种绕过方法。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。