Some words before Lunar New Year

Back in late 2021, the World started talking about a very serious vulnerability named Log4Shell that leads to RCE, I remember the day surfing Twitter and saw a very nice tweet:

After this can we all just stop using Java? - @samwcyo

Log4Shell is basically a JNDI injection vulnerability in Log4j - an extremely popular logging library in Java. I wanted to better understand the JNDI injection vulnerability, as well as the techniques for exploiting it, so I decided to write a summary.

The summary is intended to be divided into 3 parts:

  • First part describes the JNDI injection vulnerability, providing a base for understanding the notorious Log4Shell.
  • Second part talks about techniques to exploit JNDI injection in old JDK with Log4Shell as guinea pig.
  • Last part provides new exploitation techniques in newer JDK, experiments with Log4Shell.
Written on January 29, 2022