全国电子网站建设,正邦 网站建设,手机h5网站,html网站开发开题报告范文关于JAW
JAW是一款针对客户端JavaScript的图形化安全分析框架#xff0c;该工具基于esprima解析器和EsTree SpiderMonkey Spec实现其功能#xff0c;广大研究人员可以使用该工具分析Web应用程序和基于JavaScript的客户端程序的安全性。 工具特性 1、动态可扩展的框架#x…关于JAW
JAW是一款针对客户端JavaScript的图形化安全分析框架该工具基于esprima解析器和EsTree SpiderMonkey Spec实现其功能广大研究人员可以使用该工具分析Web应用程序和基于JavaScript的客户端程序的安全性。 工具特性 1、动态可扩展的框架支持分析JavaScript程序以检测客户端漏洞 2、使用基于Chromium的爬虫程序利用DevTools协议和浏览器扩展API增强其功能 3、支持收集网页、脚本、事件、DOM 快照、网络消息、Web存储和Cookie数据 4、实现了JavaScript 混合代码属性图 (HPG) 5、支持交互式检测或自动检测不安全的程序行为 6、独立的内置查询用于检测客户端 CSRF、请求劫持和DOM Clobbering漏洞 7、设计并执行定制的安全相关程序分析包括预定义 JavaScript 源和接收器之间的数据流分析、控制流和可达性分析、利用 DOM 快照解析 DOM 查询选择器、通过抽象语法树 (AST) 进行模式匹配等 工具架构 工具要求 1、最新版本的NPM包管理器Node.JS; 2、最新稳定版Python 3.x 3、pip包管理器 工具安装
广大研究人员可以直接使用下列命令将该项目源码克隆至本地
git clone https://github.com/SoheilKhodayari/JAW.git
然后切换到项目目录中执行工具安装脚本完成依赖组件的安装
cd JAW$ ./install.sh
运行管道
我们可以通过以下方式在命令行终端中运行管道实例
$ python3 -m run_pipeline --confconfig.yaml
命令行参数
$ python3 -m run_pipeline -husage: run_pipeline.py [-h] [--conf FILE] [--site SITE] [--list LIST] [--from FROM] [--to TO]This script runs the tool pipeline.optional arguments:-h, --help 显示工具帮助信息和退出--conf FILE, -C FILE 管道配置文件 (默认: config.yaml)--site SITE, -S SITE 目标待测站点 (默认: None)--list LIST, -L LIST 目标待测站点列表 (默认: None)--from FROM, -F FROM 设置待测站点列表的第一个入口点 (默认: -1)--to TO, -T TO 设置待测站点列表的最后一个入口点 (默认: -1)
工具使用
下列命令可以构建一个JavaScript客户端属性图并执行Cypher查询
$ python3 -m analyses.example.example_analysis --input$(pwd)/data/test_program/test.js
下列命令可以执行Web爬虫
$ cd crawler$ node crawler.js --seedurlhttps://google.com --maxurls100 --browserchrome --headlesstrue
下列命令可以启动Web爬虫并执行动态污点分析
$ cd crawler$ node crawler-taint.js --seedurlhttps://google.com --maxurls100 --headlesstrue --foxhoundpathoptional-foxhound-executable-path
下列命令可以将一个HPG导入到一个Neo4j图形化数据库中
$ python3 -m hpg_neo4j.hpg_import --rpathpath-to-the-folder-of-the-csv-files --idxyz --nodesnodes.csv --edgesrels.csv
下列命令可以针对输出数据hpg_crawler创建一个混合属性图并导入至本地Neo4j实例
$ python3 -m engine.api path --jsprogram.js --importbool --hybridbool --reqsrequests.out --evtsevents.out --cookiescookies.pkl --htmlhtml_snapshot.html
使用Cypher查询执行安全分析
$ python3 -m analyses.example.example_query_cypher
漏洞检测
首先我们需要在config.yaml文件中针对漏洞类型启用分析组件
request_hijacking:enabled: true# [...]#domclobbering:enabled: false# [...]cs_csrf:enabled: false# [...]
然后使用配置文件运行管道
$ python3 -m run_pipeline --confconfig.yaml
我们还可以在管道中运行多个实例
$ screen -dmS s1 bash -c python3 -m run_pipeline --confconf1.yaml; exec sh$ screen -dmS s2 bash -c python3 -m run_pipeline --confconf2.yaml; exec sh$ # [...]
分析输出结果如下
[*] Tags: [WIN.LOC][*] NodeId: {TopExpression: 86, CallExpression: 87, Argument: 94}[*] Location: 29[*] Function: ajax[*] Template: ajaxloc /bearer1234/[*] Top Expression: $.ajax({ xhrFields: { withCredentials: true }, url: ajaxloc /bearer1234/ })1:[WIN.LOC] variableajaxloc0 (loc:6)- var ajaxloc window.location.href
许可证协议
本项目的开发与发布遵循AGPL-3.0开源许可协议。
项目地址
JAW【GitHub传送门】
参考资料 Chrome DevTools Protocol https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions Introduction - Cypher Manual https://www.facebook.com/notes/facebook-bug-bounty/client-side-csrf/2056804174333798/ DOM Clobbering