第14天:信息打点-JS架构&框架识别&泄漏提取&API接口枚举&FUZZ爬虫&插件项目

img

什么是 JS 渗透测试?

在 Javascript 中也存在变量和函数,当存在可控变量及函数调用即可参数漏洞JS 开发的 WEB 应用和 PHP,JAVA,NET 等区别在于即没有源代码,也可以通过浏览器的查看源代码获取真实的点。获取 URL,获取 JS 敏感信息,获取代码传参等,所以相当于JS 开发的 WEB 应用属于白盒测试(默认有源码参考),一般会在 JS 中寻找更多的 URL地址,在 JS 代码逻辑(加密算法,APIkey 配置,验证逻辑等)进行后期安全测试。

1
2
3
4
5
6
7
假设:web应用可以采用后端或者前端语言进行开发
后端语言:PHP , java , python , .NET ,浏览器看不到真实的源代码。
前端语言:JavaScript(JS)和JS框架,浏览器端可以看到真实的源码。

例子:
zblog:核心功能采用PHP语言去传输接受。
vue.Js:核心功能采用框架语法JS传输接受。

JS手工进行分析

如何快速获取有价值的信息,说白了就是找更多的ip地址或者url路径,从而扩大自己的资产范围,要是本来就有敏感信息,比如说身份证之类的东西进行泄漏,或者前端泄漏有账号和密码。

1
2
3
4
5
6
7
8
9
10
src=
path=
method:"get"
http.get("
method:"post"
http.post("
$.ajax

http://service.httppost
http://service.httpget #这两个应该是不常用的,js中没有内置这样的函数

image-20250508153556677

从js的文件名来判断这些js文件对应的功能点。

image-20250508154159166

image-20250508154819463

个人理解 , 如果使用手工进行分析 , 那么就需要对js开发有点理解 , 因为你要知道什么关键字对于网站来说是敏感的 , js开发者喜欢使用什么关键字作为一个函数的名字.

JS半自动进行分析

第一个:使用burp自带的功能点进行分析

image-20250508163834494

这个功能点是burp将你开启代理时候浏览的网站 , 然后自动提取出来的.

第二个使用burp上的插件进行分析(推荐)

推荐的是两款burp插件商店自带的插件: js link finderjs miner, 还有一个第三方插件:HaE

image-20250508180554066

在burp的插件商店下载上图的两个插件. 其中需要注意的是js link Finder是需要提前下载一个jython的jar包的

1
https://www.jython.org/download.html

image-20250508180743203

在burp上安装第三方插件:

image-20250508181225548

将新的规则进行载入:

首先复制下图中红框的内容

image-20250508182644920

将下图的配置文件替换成新规则的配置文件:

image-20250508182838481

然后回到burp点击载入就行了.

image-20250508183139879

这个时候在看历史数据包的时候就可以发现被规则匹配上的数据包就被颜色标记了.

image-20250508185427925

JS全自动进行分析

JSFinder

功能: 从网站中提取js文件

JSFinder项目地址: https://github.com/Threezh1/JSFinder

使用方式:python JSFinder.py -u http://47.92.71.78/

image-20250508191148402

URLFinder

功能: 从网站中提取js文件

项目地址:https://github.com/pingc0y/URLFinder

这款工具也有Linux的版本,这里为了方便直接使用windows版本:

1
URLFinder-windows-amd64.exe -u http://47.103.17.101/ -s all -m 2

image-20250508194417880

FFUF

功能: 利用fuzz的方式从网站中爆破出js文件

项目地址:https://github.com/ffuf/ffuf

模糊测试字典下载地址:https://wordlists-cdn.assetnote.io/data/automated/

1
2
3
4
使用方式:
./ffuf -w ../Js字典2024.txt -u http://47.92.71.78/FUZZ -t 200

-t是代表线程

image-20250508201413965

Packer-Fuzzer

简介: 针对JS框架开发打包器Webpack检测

项目地址:https://github.com/rtcatc/Packer-Fuzzer

使用方式:

1
2
3
python PackerFuzzer.py -u http://47.92.71.78/

得到的结果会保存在reports文件夹下面

image-20250508204415424

总结

js安全问题

1
2
3
4
5
6
7
8
9
1.源码纰漏
2.未授权访问=JS里面分析更多的URL访问确定接口路径(还有可能泄漏整套源代码的下载地址)
3.敏感Key纰漏=JS文件中可能配置了接口信息(云应用,短信,邮件,数据库,测试用户的账号密码等)
4.API接口安全 (代码中加密提交参数传递,更多的URL路径)


如何从表现中的JS提取价值信息
如何从地址中FUZZ提取未知的JS文件
如何从JS开发框架WebPack进行测试