28

JSFind:扫描JS文件中链接的Burp脚本

 3 years ago
source link: https://www.freebuf.com/sectool/252034.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

随着SPA网页的兴起,js文件中会包含大量前端路由和后端api的链接信息,获取到这些链接能提供更多的有效信息。

burp自带的JS Link Finder效果很不错,不过找到的链接不能直接复制使用,需要再做处理,使用起来很不方便,根据 js-link-finder 使用burp-clj脚本重新实现,并根据 LinkFinder 提供的正则表达式,新增了REST API的支持,现在可以直接通过 jslink 对js中找到的链接进行处理,然后作为burp Intruder的payload使用。

2 安装方法

AN3UJz2.gif!mobile

图1  插件安装流程

2.1 安装burp-clj插件

下载 burp-clj 最新版本的burp-clj.jar,然后在burp Extender中加载jar插件。

i2iEN3q.jpg!mobile

图2  burp Extender加载burp-clj.jar插件

2.2 添加脚本源

启用burp-clj插件后,切换Clojure Plugin选项卡,点Add按钮添加脚本源: https://github.com/ntestoc3/burp-scripts ,这里使用github地址,也可以git clone下来,使用本地目录。

nauAniR.jpg!mobile

图3  Clojure Plugin添加脚本源

添加脚本源之后,点Reload Scripts!加载脚本。

2.3 启用jslink脚本

在Clojure Plugin选项卡的Scripts List中勾选js link parse的复选框,启用jslink脚本。

eeERFbi.jpg!mobile

图4  启用jslink脚本

3 使用方法

BfmEfeE.gif!mobile

图5  jslink使用方法

浏览器通过burp代理访问网站,jsfind会被动扫描js文件,扫描到含有链接的js文件会生成issue。

JS Links选项卡可以看到所有扫描到的包含链接的js文件,可以同时在左侧列表选择多个js文件(按ctrl或shift多选),右边列表会显示所有选中js文件中的链接。

VzQjUf.jpg!mobile

图6  JS Links查看多个js文件中的链接

针对不需要的链接可以选中后删除,然后通过 删除链接前面的./字符 按钮统一链接的格式,方便intruder使用。

注意链接列表中的删除并不会保存,再次切换到对应的js文件,原先的链接还会存在。

4 注意事项

如果浏览器访问过目标网站,则js文件会缓存,再次访问burp里面只能看到304,不会分析文件内容,需要清空缓存并硬性重新加载,用于在burp中获取js内容。

burp项目中的issue信息会保存,但jslink找到的链接不会保存,jslink脚本重新加载的话,已经分析的链接信息会丢失。

5 最后

感谢 https://github.com/portswigger/js-link-finder 的burp插件思路

感谢 https://github.com/GerbenJavado/LinkFinder 的正则表达式

PS:本程序仅供于学习交流,请使用者遵守《中华人民共和国网络安全法》, 勿将此工具用于非授权的测试, 本站及程序开发者不负任何连带法律责任。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK