upload-labs js检查绕过 Pass – 01

blog 35 0
upload-labs js检查绕过 Pass - 01

靶场简介

upload-labs致力于想帮你总结所有上传漏洞的靶场,该靶场是使用php语言辨析的专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。

环境搭建

环境的要求

upload-labs js检查绕过 Pass - 01

github下载地址:https://github.com/c0ny1/upload-labs/releases

笔者蓝奏云下载地址:https://x1ong.lanzouf.com/i4SgS00nl55a

分析源码

进入到第一关右键检查,发现form标签的属性有onsubmit方法,意为当表单提价时执行javascript方法,也就是checkFile()函数。

upload-labs js检查绕过 Pass - 01

那么既然是js,我们直接可以通过右键查看源代码中看到。

upload-labs js检查绕过 Pass - 01

checkFile()函数内部的第一行代码主要是获取上传的文件名的。之后判断是否file变量是否为空,如果为空就表示没有上传,直接弹窗,然后函数结束返回false。

接着又定义了允许上传的文件命令.jpg.png以及.gif。之后又使用substring()函数提取某个区间范围的字符串,file.lastIndexOf('.')表示在file变量下调用lastIndexOf()方法,查找最后一次点出现的位置。之后将最后一次点的位置后面的所有字符赋值给ext_name。比如我们上传的为shell.png获取的就为.png,上传的为shell.php,那么ext_name的值就为.php

之后又在allow_ext(白名单)变量下调用indexOf(ext_name)查找获取上传文件的后缀是否在白名单内,indexOf()则返回-1

因此会会弹窗提示该文件类型不允许上传,接着返回return false,函数执行结束,由于onsubmit接收的为false,因此不会发给后端处理。

利用方法

禁用javascript

那么这里由于是js进行检查的,我们可以通过禁用javascript的方法进行绕过检测,从而进行上传。

在chrome浏览器中右键检查,点击右上角的设置

upload-labs js检查绕过 Pass - 01

之后勾选Disable Javascript即可

upload-labs js检查绕过 Pass - 01

之后就已经成功上传了。

upload-labs js检查绕过 Pass - 01

我们这里直接访问

upload-labs js检查绕过 Pass - 01

由于这里是演示,我就不上传一句话木马之后进行连接了。

burpsuite抓包绕过

我们先将php文件命名为白名单中的后缀名,之后使用burpsuite进行抓包修改。

设置代理进行抓包,关于bp抓包的方法,大家可以自行百度,我这里就不展开说了

upload-labs js检查绕过 Pass - 01

我们将filename处的123.png修改为shell.php,这里的文件名无所谓,主要是.php的后缀。

upload-labs js检查绕过 Pass - 01

之后点击左上角的Forward,将数据包发送过去。多Forward几次,可能还有别的网站的数据包被拦截下来了。

upload-labs js检查绕过 Pass - 01

发表评论 取消回复
表情 图片 链接 代码

分享