北屋教程网

专注编程知识分享,从入门到精通的编程学习平台

码农必看!这款轻量级 Java 源代码审计工具,漏洞无处遁形

0x01 工具简介

JavaSinkTracer 是 Tr0e师傅开发的一款基于 Python javalang 库开发的一款轻量级 Java 源代码漏洞审计工具。此工具基于“函数级”的污点分析,即反向追溯从 Sink(漏洞函数)到 Source(外部API函数)的调用链,暂不关注污点变量,只关注函数调用关系,可有效规避上述“变量级”污点跟踪的缺陷。当前已实现的功能有:

  • 可在 Sink 配置文件中,自由拓展待检测的漏洞危险函数;
  • 自动构建 Java 源代码中所有函数的互相调用关系图call graph;
  • 从 Sink 点反向追溯到 Source 函数(可从配置文件的“depth”自定义追溯深度),提取调用链;
  • 程序自动识别“污点传播链路”上“不包含任何参数”的函数,排除不可能存在外部可控变量的链路;
  • 借助 Python javalang 三方库,自动提取每条“函数级污点链路”上所有函数的源代码,方便分析审计;
  • 自动生成漏洞报告(Md和html两种格式),Html报告支持漏洞栏目导航、漏洞代码高亮、代码变量跟踪等;

工具使用

基础环境:

pip install -r requirements.txt

运行命令:

python JavaSinkTracer.py [-h] [-p PROJECTPATH] [-o OUTPUTPATH

完整参数:

λ python JavaSinkTracer.py -h

      ███████╗███████╗ ██████╗
     ██╔════╝██╔════╝██╔════╝
     ███████╗█████╗  ██║
     ╚════██║██╔══╝  ██║
     ███████║███████╗╚██████╗
     ╚══════╝╚══════╝ ╚═════╝

    Java源代码漏洞审计工具_Tr0e

usage: JavaSinkTracer.py [-h] [-p PROJECTPATH] [-o OUTPUTPATH]

JavaSinkTracer

options:
  -h, --help            show this help message and exit
  -p PROJECTPATH, --projectPath PROJECTPATH
                        待扫描的项目本地路径根目录,默认值:D:/Code/Github/java-sec-code
  -o OUTPUTPATH, --outputPath OUTPUTPATH
                        指定扫描报告输出的本地路径根目录,默认值:当前项目根路径下的 Result 子文件夹

以主流的开源 Java 漏洞靶场 java-sec-code 为例,扫描过程和漏洞报告效果如下:



漏洞的报告展示,以其中一个涉及到跨文件 SSRF 漏洞链路为例:


0x03 工具获取

夸克网盘「JavaSinkTracer 」

夸克网盘分享

点击下方链接,帮助小白轻松学Kali与编程

Kali与编程黑客全程课(讲师答疑) - 网易云课堂

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言