文件上传之前端JS绕过

记录一下在靶场练习中的绕过姿势

1.首先如何知道目标是使用前端JS验证文件类型呢?

使用工具burp suite进行抓包,点击上传按钮之后,工具内没有显示抓包信息,反而网页弹出提示框,提示上传的文件类型不符合,则证明是使用的前端JS验证

2.绕过方法一,使用工具burpsuite抓包改包绕过

首先把写好的一句话木马修改后缀格式为jpg,文件上传之前端JS绕过
然后上传这个文件,进行抓包
文件上传之前端JS绕过
在红色框的位置,修改之前是yijuhua.jpg,将他修改为yijuhua.php,然后发送包,文件上传成功

3.绕过方法二,截取代码本地上传

首先审查页面元素,复制form表单代码至本地,右击下方红色框位置会有复制按钮
文件上传之前端JS绕过
复制成功之后放在本地页面中,我是使用的HBuilderX工具,如图
文件上传之前端JS绕过
有一个地方需要改正,就是form中的action属性,用抓包的方式进行获取,随便选择一个文件进行上传,然后抓包,下面红色框的位置/Pass-01/index.php,在这个基础上加上目标ip,就是action属性的值
http://192.168.2.185/Pass-01/index.php
文件上传之前端JS绕过
最后运行我们修改的页面,此时页面就没有了JS的限制,上传任意类型文件即可

绕过方法三,网页禁用JS

不同浏览器禁用JS方法不一样,请自行百度

绕过方法四,修改页面元素

右击上传按钮,查看页面元素
文件上传之前端JS绕过
发现点击上传按钮的时候调用了一个函数,就是红色框的位置,而我们查看这个函数发现,这里的js是自己定义的允许上传类型
文件上传之前端JS绕过
此时我们就可以修改代码
var allow_ext = “.jpg|.png|.gif|.php”;
添加上我们要上传的文件类型,然后运行,即可上传成功
或者
我们上方图中,删除οnsubmit=“return checkFiile()”,删除之后,当我们进行提交的时候,程序就不会执行checkFIle()函数,我们就可以上传成功了