未经许可,不得转载。

项目介绍
在 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 参考链接。

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

被折叠的 条评论
为什么被折叠?



