freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

PomEye: 一款java第三方组件版本识别及漏洞检测GUI工具
2023-05-13 21:51:25
所属地 河北省

在Java代码审计中,我们经常需要对引用的第三方组件进行审计。但是我们手工去查看项目中每个组件的版本并去搜索相关漏洞实在是有些繁琐。为了解决这个问题,我先是在网上找相关的工具,用起来也不太顺手。于是乎,我使用Python写了一个用起来还算顺手的工具,分享给大家。下面简单介绍一下该工具并讲解一下整个项目的架构。

工具地址:PomEye

工具简介

  • 打开工具后可以上传单个pom.xml文件或者整个maven项目

  • 程序会自动检测pom.xml文件中的组件版本,当子项目的组件版本未知时递归的查找其父项目的该组件的版本号。

  • 然后程序会根据识别出的组件版本利用第三方漏洞库查询组件漏洞
    截图1.png
    全部检测完毕后会打开组件信息界面
    截图2.png
    组件信息界面分为上下两部分:

  • 上半部分是项目依赖的所有的第三方组件信息,包括组件的版本漏洞等级来源pom文件

  • 当点击某个组件所在行时,下方会展示出该组件在当前版本下的所有漏洞详情,漏洞详情包括:漏洞名称、危险等级、影响版本、CVE编号、CWE编号、漏洞详情及snyk参考链接

项目架构

项目分为五个模块,分别是:main.py、pom_parse_client.py、parse.py、check_vul.py和variables.py。

  • main.py:主模块,用来打开程序。

  • pom_parse_client.py:可视化界面模块,包括上传界面,详细信息界面,界面跳转

  • parse.py:解析pom.xml文件模块,利用BeautifulSoup库提取xml文件中组件信息,然后构建父子依赖关系树,当子项目的组件版本未知时递归的查找其父项目的该组件的版本号。

  • check_vul.py:漏洞检测模块,根据解析出的组件名称和版本向snyk发起查找请求,利用BeautifulSoup库解析返回包,将漏洞详情展示在界面。

  • variables.py:全局变量模块,所有需要用到的全局变量

工具特色

  • 精致、优美、易使用的图形化用户界面

  • 使用BeautifulSoup4解析pom.xml文件,速度快、不出错

  • 根据pom.xml文件中的标签构建父子关系树,当子项目的组件版本未知时递归的查找其父项目的该组件的版本号

  • 利用第三方漏洞库snyk检测组件漏洞,显示漏洞名称、危险等级、影响版本、漏洞详情及snyk参考链接

# python # 代码审计 # JAVA安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录