settings.xml里:
<!-- 添加pluginGroup可简化命令行参数 -->
<pluginGroups>
<pluginGroup>com.immomo.momosec</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>momo-plugin</id>
<pluginRepositories>
<pluginRepository>
<id>gh</id>
<url>https://raw.githubusercontent.com/momosecurity/mosec-maven-plugin/master/mvn-repo/</url>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>momo-plugin</activeProfile>
</activeProfiles>
或者
项目里的pom.xml里:
<!-- 陌陌的maven插件:https://github.com/momosecurity/mosec-maven-plugin -->
<pluginRepositories>
<pluginRepository>
<id>gh</id>
<url>https://raw.githubusercontent.com/momosecurity/mosec-maven-plugin/master/mvn-repo/</url>
</pluginRepository>
</pluginRepositories>
然后开启后端检测服务:
~/repos/mosec-x-plugin-backend$ python3 website.py
同时为了使用momo这个maven插件的后端检测服务,需要在项目里加上这个:
<!-- 参考:https://github.com/momosecurity/mosec-maven-plugin -->
<plugin>
<groupId>com.immomo.momosec</groupId>
<artifactId>mosec-maven-plugin</artifactId>
<version>1.0.6</version>
<executions>
<execution>
<id>test</id>
<goals>
<goal>test</goal> <!-- test过程执行 -->
</goals>
</execution>
</executions>
<configuration>
<endpoint>http://192.168.85.129:9000/api/plugin</endpoint>
<severityLevel>High</severityLevel>
<onlyProvenance>true</onlyProvenance>
<failOnVuln>true</failOnVuln>
</configuration>
</plugin>
最后在项目运行:
mvn com.immomo.momosec:mosec-maven-plugin:1.0.6:test -DonlyProvenance=true
意思是在项目编译的时候自动检测其依赖
抓了一下包,大概是这样:
我们将fastjson的版本改成1.2.4,然后抓抓包看能不能检测出来:
终端里也报错了,不允许编译成功:
再测一下java-sec-code的效果,我在这个项目里加了这个:
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.13</version>
</dependency>
最近有爆出xstream<= 1.4.13的xml反序列化RCE,但是结果这个工具只给我检测出了json反序列化的两个:
所以去看看它的接口实现咋写的。
发现应该是去查sqlite数据库,而这个数据库只是用来查的,如果要加规则估计要自己手动更新这个数据库了:
参考:
- https://github.com/momosecurity/mosec-x-plugin-backend
- https://github.com/momosecurity/mosec-maven-plugin
又找到这个工具:
https://github.com/jeremylong/DependencyCheck