Maven 项目审计技巧 快速检查依赖漏洞
最近审计了挺多 Java 项目的,发现他们大多使用了 Maven 管理依赖,而在代码审计的时候,如果能够快速发现依赖存在漏洞,则可以帮助我们快速定位漏洞点。
例如:发现了项目引入了 com.alibaba.fastjson
的版本小于 1.2.68
那我们就可以试着搜索 parseObject
这样的字符来定位。
Dependency Analytics
Dependency Analytics 由Snyk Intel漏洞数据库提供支持,它是业界最先进、最准确的开源漏洞数据库。这增加了来自众多来源的最新、最快和更多漏洞的价值。
它支持 mvn/npm/python/go
的依赖分析,只需要在 Visual Studio Code
中安装了该插件,当打开 pom.xml
的时候,右键鼠标 - Dependency Analytics Report
如下图

生成依赖分析报告,如下图所示

点击右侧的小三角形,即可显示详情,例如当前 版本信息,推荐版本信息,漏洞类型

通过检索漏洞的利用和分析文章,可以发现 jackson.fasterxml
存在反序列化漏洞,只需要搜索 .readValue
即可快速定位漏洞点,接着只需要分析如何调用该方法即可。

此处附上 Dependency Analytics 调用的 mvn 命令
mvn --quiet clean -f "pom.xml" &&
mvn --quiet org.apache.maven.plugins:maven-dependency-plugin:3.0.2:tree -f "pom.xml" -DoutputFile="dependencies.txt" -DoutputType=dot -DappendOutput=true