/filtered · sink: flask.render_template_string (after substring blocklist)
render_template_string with a substring deny-list. Trivially bypassable.
Blocked tokens (substring deny-list): ('__class__', '__mro__', '__subclasses__', '__globals__', 'subprocess', 'os.system', 'popen', 'import', 'request.application')
The blocklist strips these tokens before rendering: ('__class__', '__mro__', '__subclasses__', '__globals__', 'subprocess', 'os.system', 'popen', 'import', 'request.application'). Jinja2 lets you reach the same attributes without those literal strings via the |attr filter: {{ ''|attr('__cl' ~ 'ass__')|attr('__mr' ~ 'o__') }}, or via dict-style indexing on the string concat. The lab flag is at {{ config['VULNLAB_SSTI_FILTERED'] }}.