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 --conf=config.yaml
命令行参数
$ python3 -m run_pipeline -h
usage: 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)
$ python3 -m analyses.example.example_analysis --input=$(pwd)/data/test_program/test.js
$ cd crawler
$ node crawler.js --seedurl=https://google.com --maxurls=100 --browser=chrome --headless=true
$ cd crawler
$ node crawler-taint.js --seedurl=https://google.com --maxurls=100 --headless=true --foxhoundpath=<optional-foxhound-executable-path>
$ python3 -m hpg_neo4j.hpg_import --rpath=<path-to-the-folder-of-the-csv-files> --id=<xyz> --nodes=<nodes.csv> --edges=<rels.csv>
$ python3 -m engine.api <path> --js=<program.js> --import=<bool> --hybrid=<bool> --reqs=<requests.out> --evts=<events.out> --cookies=<cookies.pkl> --html=<html_snapshot.html>
$ python3 -m analyses.example.example_query_cypher
request_hijacking:
enabled: true
# [...]
#
domclobbering:
enabled: false
# [...]
cs_csrf:
enabled: false
# [...]
$ python3 -m run_pipeline --conf=config.yaml
$ screen -dmS s1 bash -c 'python3 -m run_pipeline --conf=conf1.yaml; exec sh'
$ screen -dmS s2 bash -c 'python3 -m run_pipeline --conf=conf2.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'] variable=ajaxloc
0 (loc:6)- var ajaxloc = window.location.href
原文始发于微信公众号(FreeBuf):JAW:一款针对客户端JavaScript的图形化安全分析框架
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论