# CommonsCollection1 Payload - Java Transformers to Rutime exec() and Thread Sleep
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Aprenda e pratique Hacking GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
Na última seção do payload, você pode ver que um **objeto Map é criado**. Em seguida, a função `decorate` é executada a partir de `LazyMap` com o objeto map e os transformers encadeados. A partir do código a seguir, você pode ver que isso fará com que os **transformers encadeados** sejam copiados dentro do atributo `lazyMap.factory`:
Então, lembre-se de que dentro da **factory** nós salvamos **`chainedTransformer`** e dentro da função **`transform`** nós estamos **percorrendo todos aqueles transformers encadeados** e executando um após o outro. A parte engraçada é que **cada transformer está usando `object`****como entrada** e **object é a saída do último transformer executado**. Portanto, **todas as transformações estão encadeadas executando o payload malicioso**.
No final, devido a como o lazyMap está gerenciando os transformers encadeados dentro do método get, é como se estivéssemos executando o seguinte código:
Note que aqui **foram explicados os gadgets** usados para o **payload ComonsCollections1**. Mas ficou **como tudo isso começa a ser executado**. Você pode ver [aqui que **ysoserial**](https://github.com/frohoff/ysoserial/blob/master/src/main/java/ysoserial/payloads/CommonsCollections1.java), para executar este payload, usa um objeto `AnnotationInvocationHandler` porque **quando este objeto é desserializado**, ele **invocará** a função `payload.get()` que **executará todo o payload**.
Você pode encontrar mais gadgets aqui: [https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html](https://deadcode.me/blog/2016/09/02/Blind-Java-Deserialization-Commons-Gadgets.html)
Aprenda e pratique Hacking AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Aprenda e pratique Hacking GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.