【Java代码审计 | 第十七篇】组件漏洞识别工具PomEye安装使用详细教程

未经许可,不得转载。

在这里插入图片描述

项目介绍

在 Java 代码审计过程中,我们经常需要对项目中引用的第三方组件进行安全审计。然而,手动检查每个组件的版本并搜索相关漏洞不仅耗时繁琐,还容易出错。因此,PomEye出现了——这是一款能够自动解析 pom.xml 文件,提取第三方组件版本号,并识别组件漏洞的高效工具。

主要特色
1、精致、优雅、易用的图形化用户界面,提供直观的交互体验。
2、高效稳定的解析能力,基于 BeautifulSoup4 解析 pom.xml 文件,确保快速、准确地提取组件信息。
3、智能的依赖解析,依据 pom.xml 文件中的 <parent> 标签构建父子关系树,递归查找未知组件的版本号,确保完整的依赖解析。
4、精准的漏洞检测,利用第三方漏洞库 Snyk 进行安全分析,提供漏洞名称、危害等级、影响版本、详细描述及 Snyk 参考链接,帮助开发者快速定位和修复安全隐患。

项目地址:

https://github.com/feiweiliang/PomEye

项目架构

PomEye 由五个核心模块组成,分别为 main.py、pom_parse_client.py、parse.py、check_vul.py 和 variables.py,各自承担不同的功能:

1、main.py:主模块,负责程序的启动与运行。

2、pom_parse_client.py:可视化界面模块,提供上传界面、详细信息界面以及界面跳转逻辑,实现友好的用户交互体验。

3、parse.py:pom.xml 解析模块,利用 BeautifulSoup 提取 XML 文件中的组件信息,并构建父子依赖关系树,当子项目组件版本未知时,递归查询父项目的组件版本号,确保完整性。

4、check_vul.py:漏洞检测模块,根据解析出的组件名称与版本信息,向 Snyk 发送查询请求,并利用 BeautifulSoup 解析返回数据,展示漏洞详情。

5、variables.py:全局变量管理模块,存储所有需要共享的全局变量,确保代码的整洁与可维护性。

安装与配置

来到项目界面,下载源代码 Zip 即可:

在这里插入图片描述

解压后,使用命令行运行main.py:

python main.py

也可以使用 Vscode 运行:

在这里插入图片描述

如上图所示,报错ModuleNotFoundError: No module named ‘ttkbootstrap’,这表明我们的环境中没有安装 ttkbootstrap 这个模块。

使用以下命令安装模块:

pip install ttkbootstrap

在这里插入图片描述

其他模块若未安装,同理。

使用

下载好依赖后,再运行以下命令来使用PomEye:

python main.py

主界面如下:

在这里插入图片描述

上传pom文件或文件夹均可,工具检测完毕后会跳转至组件漏洞详情界面:

在这里插入图片描述

界面分为上下两部分:

  • 上半部分显示项目所依赖的所有第三方组件信息,包括组件名称、版本号、漏洞等级以及所属 pom.xml 文件,便于快速查看项目依赖情况。

  • 在用户点击某个组件所在行后,下半部分将展示该组件在当前版本下的所有已知漏洞详情,具体信息包括:漏洞名称、危险等级、受影响的版本范围、CVE 编号、CWE 编号、漏洞详细描述,以及Snyk 参考链接。

在这里插入图片描述

在合规合法途径内,可进行进一步利用。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值