The repo demonstrates Jackson serialization vulnerability as described in:
- https://cowtowncoder.medium.com/on-jackson-cves-dont-panic-here-is-what-you-need-to-know-54cd0d6e8062
- https://medium.com/@swapneildash/understanding-insecure-implementation-of-jackson-deserialization-7b3d409d2038
- https://blog.doyensec.com/2019/07/22/jackson-gadgets.html
The exploitable vulnerability demonstrated here is: https://snyk.io/vuln/SNYK-JAVA-COMFASTERXMLJACKSONCORE-32043. We demonstrate the exploit by remotely executing a calculator app.
- A vulnerable app, run using Micronaut web framework.
- The app exposes two endpoints - POST to
/user
, and POST to/org
. Both endpoints are vulnerable but the vulnerability is enabled in two different ways. SeeAppController.java
java 8
maven
realpath
unix command line utility (just to run the script)
mvn install
mvn exec:exec
to run the Micronaut servercd exploit && ./run_org_exploit.sh
orcd exploit && ./run_user_exploit.sh
You should see the calculator app popping up.