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
之类的。