文件上传-JS绕过
如何判断上传的文件是前端的JS验证?
前端JS对上传的文件进行检验(就是上传的文件还没有达到服务器,直接在前端报错出弹框说文件类型不符合),查看源代码,也可以看到前端页面代码中的对不符合文件进行过滤。
例:upload-labs中的Pass-01
- 要上传一个webshell到服务器
- 创建一个php文件,用来验证文件被成功上传
- 可以看到,上传的文件不被允许,是一个弹窗(而且弹窗功能是javascript里会提供的)
- 所以这里可能是一个前端的JS进行文件检验,再分析页面源代码
- 看到确实如此,如果此时用burpsuite抓包是抓不到的,因为文件还没有被发送到服务器,就被前端JS给阻断了。所以这里需要将文件后缀名改为前端源代码中允许的。然后开启代理Burp进行抓包,再修改回php文件,重新Send发送
- 在response返回的信息中,找到上传文件的位置
- 然后浏览器进行访问,上传文件成功
- 如果上传别的,例如一句话木马,就可以通过蚁剑连接,然后进行利用。