本文来自小迪安全
本文是为了解决:
1
、如何从表现中的
JS
提取价值信息
2
、如何从地址中
FUZZ
提取未知的
JS
文件
3
、如何从
JS
开放框架
WebPack
进行测试
0
、什么是
JS
渗透测试?
在
Javascript
中也存在变量和函数,当存在可控变量及函数调用即可参数漏洞
JS
开发的
WEB
应用和
PHP
,
JAVA,NET
等区别在于即没有源代码,也可以通过浏览器的
查看源代码获取真实的点。获取
URL
,获取
JS
敏感信息,获取代码传参等,所以相当于
JS
开发的
WEB
应用属于白盒测试(默认有源码参考),一般会在
JS
中寻找更多的
URL
地址,在
JS
代码逻辑(加密算法,
APIkey
配置,验证逻辑等)进行后期安全测试。
前提:
Web
应用可以采用后端或前端语言开发
-
后端语言:
php java python .NET
浏览器端看不到真实的源代码
-
前端语言:
JavaScript(JS)
和
JS
框架浏览器端看到真实的源代码
例子:
zblog
:核心功能采用
PHP
语言去传输接受
vue.js
:核心功能采用框架语法(
JS
)传输接受
1
、
JS 安全问题
源码泄漏
未授权访问
=JS
里面分析更多的
URL
访问确定接口路径
敏感
key
泄漏
=JS
文件中可能配置了接口信息(云应用,短信,邮件,数据库等)
API
接口安全
=
(代码中加密提交参数传递,更多的
URL
路径)
2
、流行的
Js
框架有那些?
Vue NodeJS jQuery Angular
等
3
、如何判定
JS
开发应用?
插件
wappalyzer
源程序代码简短
引入多个
js
文件
一般有
/static/js/app.js
等顺序的
js
文件
一般
cookie
中有
connect.sid
4
、如何获取更多的
JS
文件?
手工
-
浏览器搜索
半自动
-Burpsuite
插件
工具化
-
各类提取
&FUZZ
项目
5
、如何快速获取价值信息?(获取URL等)
method:"get"
http.get("
method:"post"
http.post("
$.ajax
http://service.httppost
http://service.httpget
半自动:
用burpsuite的jslinkfinder 和js miner
unexpection_information (标记请求包的敏感信息 js接口和一些特殊字段 防止疏忽一些数据包 会有额外收获)
hae (有高亮标记和信息提取的插件 可以自定义正则的方式来匹配响应报文和请求报文 自行决定是否高亮提醒和信息提取)
全自动:
用findsomething(一个插件)
URLfinder(获取url 接口 敏感数据)
还可以用ffuf(一个功能强大的模糊化工具 用fuzz模糊js文件 找到更多的js文件来分析更多的信息)
packer-fuzzer(针对webpak的前端打包工具进行快速扫描 高效安全检测)