目录

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 如下图

https://cdn.bingbingzi.cn/blog/202204260912582.png

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

https://cdn.bingbingzi.cn/blog/202204260914186.png

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

https://cdn.bingbingzi.cn/blog/202204260923894.png

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

https://cdn.bingbingzi.cn/blog/202204260932739.png

此处附上 Dependency Analytics 调用的 mvn 命令

1
2
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