CVE-2019-17571/Apache Log4j 反序列化远程代码执行漏洞
用的是 Apache Log4j 1.2.17 版本,sink 在 org.apache.log4j.net.SocketNode 类中:

在构造函数中,传入 socket 传输的数据流,然后在 run 方法中直接调用 readObject() 反序列化。
查找在哪些类中会调用 SocketNode 类,发现 SocketServer、SimpleSocketServer 类中都有调用:

并且由于 SocketNode 是实现 Runnable 接口。所以通过 new Thread().start() 方法能执行其 run 方法造成反序列化代码执行漏洞。
复现漏洞可以通过调用 SocketServer、SimpleSocketServer 类,或者自己实现都可以。
当然,任意代码执行的话还需要调用其他可以的 gadget .比如 Jdk7u21、CommonsCollections1 之类的。
