O módulo pickle do Python fornece mecanismos para serialização binária de objetos, onde o "pickling" transforma estruturas de objetos em fluxos de bytes e o "unpickling" restaura essas estruturas a partir dos bytes (Python Software Foundation, 2024). No entanto, a própria documentação alerta sobre riscos de segurança significativos.
É aquela amizade boa mas tem detalhes que vai ferrar com você
Nooooossa, que módulo eficiente! Serializa tudo!
Você sabe que vai dar merda
Todo mundo avisa que vai dar merda
A documentação GRITA que vai dar merda
Mas... Ah, dessa vez vai ser diferente!
Foco nobres camaradas....
O pickle é usado por uma razão simples: vai executar o código automaticamente durante a desserialização isso nunca foi um bug é o design que se tornou uma vulnerabilidade.
Vamos ao código principal :
1
stealer = LocalDataCollector()
malicious_pickle = pickle.dumps(stealer) # Serializa o objeto
2
result = pickle.loads(malicious_pickle) # DESSERIALIZAÇÃO = EXECUÇÃO
pickle.dumps(obj): Converte objeto Python para bytes
pickle.loads(bytes): Converte bytes para objeto Python EXECUTANDO CÓDIGO

SOCIAL SHARE CARD GENERATOR