Javascript脚本介绍
JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
现在更多的是用在游戏开发方面
例如:对于上传文件进行JS验证。
首先这是一个函数,用来验证对应的文件上传类型,允许上传我允许的,不允许的返回文件上传错误,这是白名单验证上传
如果上传的文件类型为空或者是错误的文件类型,那么就会显示允许上传的文件类型
Burpsuite截断响应剔除Javascript脚本
在Proxy模块中的Option下Response Modification,可以勾选Remove all JavaScript
所有服务器返回的响应当中的JS脚本都会被删除
删除成功,发送到Repeater>go
后面服务器就会给回响应,这个时候,我们就会看到自己上传文件成功
实战演示
这里以upload靶场做为示范进行演示
在没有勾选的情况,按F12查看网页源代码,选择body,发现有js文件上传验证
这个时候我们勾选上,刷新一下网页
这个时候F12查看一下网页的源代码,发现被删除了
这个时候上传.php文件,BURP拦截一下
转发到Repeater当中进行查看
这个时候可以看到我们上传的文件名和文件内容
点击go,就会返回我们上传成功,保存的路径,因为我们把前端验证文件上传的JS给删除了(我实操的时候,确实没找到路径,但是我靶机里面确实有上传的文件,可能是我的服务器代码不支持回显路径)
把这个路径复制出来,在浏览器当中进行访问(复制的是我靶机上的路径,不过确实成功了)
这个时候,就会输出.php文件当中的内容
通过这种方式,我们就可以绕过JS验证,但是在有些没有BURP的情况下,我们也可以采用其它方法进行绕过
注释:想要靶场和工具可以直接私聊我
浏览器审计工具进行手动剔除JS
浏览器默认具有的审计工具,按F12出现
首先打开工具
选中JS直接剔除
实战演示
这里以upload靶场做为示范进行演示
按F12,打开审计工具
选择body,选中JS脚本,删掉
接下来选择要上传的文件
选择上传
上传失败,选择body>div id= ''main",后面你们直接看图片就会找到了,把οnsubmit="return checkFile()"这段验证JS代码给删掉
重新上传
发现成功,这是在靶机上面看到的,还是跟前面同一个问题,服务器端代码,不支持回显路径
在浏览器当中访问上传的文件
成功
总结
1、掌握Burpsuite自动剔除JS的方法。
绕过某些JS验证的措施
2、掌握利用浏览器审计工具去除JS的方法。
手工去除JS代码,存在漏删
3、后面我自己去试了一下手工去除JS代码,发现把οnsubmit="return checkFile()"这段验证JS代码给删掉就可以了,不用删那么大的一串,因为当你把验证代码给删掉的时候,前端就没有验证文件上传的功能,自然就可以实现轻松绕过