freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

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

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安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录