#知识点:
1、原生 JS&开发框架-安全条件
2、常见安全问题-前端验证&未授权
JS渗透测试:
采用JavaScript开发的Web网站,可直接通过前端查看到源代码。
Java、.net、PHP等搭建的网站------解析型语言:前端和后端显现的源码不一样。
也就是说JS的Web渗透测试,就是白盒测试。
在JavaScript中存在着变量和函数,也就是参数漏洞中的可控变量和特定函数
如何判断JS开发(除前期信息收集)
插件 wappalyzer
源代码简短
引入多个 js 文件
一般有/static/js/app.js 等顺序的 js 文件
cookie 中有 connect.sid:因为Node.js框架中有这个
示例1:
真实应用-APP 应用直接重置密码
通过判断后确定网站为JS为主开发的,所以可从中进行查找源码
此页面中就找到了忘记密码中的验证数据包的代码,从中可以知道当状态码为200时,可以进入验证成功,之后进入重置密码的界面(这里并没有对其进行验证/user/reset_password/)
进行测试
用bp拿到返回包,将状态码修改为200
验证成功,进入重置界面
然后又因为查看源码得知这个重置密码的页面并没有做验证,所以我们可以直接访问,跳过验证过程------非授权访问
注:这里是修改实际上是对前端的修改,然而对这个应用的数据库并没有进行修改,所以最后是修改失败的。
示例2:真实应用-违法彩彩文件上传安全
查看它的在线客服
是以JS为主的
找到相关的js文件,可以看到对文件有了一定的过滤
JS是本地上传,也就是图片通过本地的限制文件之后再发送出去,我们这时抓的包是它本地走过以后的数据包;所以我们需要突破本地浏览器进行绕过
注:这里无法使用之前学过的浏览器设置禁用JS的方法,因为他网站本身就是以JS搭建的,如果禁用了,就会连网站都打不开
示例3:开发框架-Vulhub-Node.JS 安全
常见框架:vue.js和node.js
Vulhub - Docker-Compose file for vulnerability environment
vulhub的搭建
启动vulhub
进入:CVE-2017-14849 Node.js目录遍历漏洞
对url加入/static/../../../a/../../../../etc/passwd