SSTI
PRACTICE ! PRACTICE ! PRACTICE !
SSTI is a web vulnerability which allows us to take advantage of insecure implementation of Template Engine
What is Template Engine ?
A template engine allows us to create static template files which can be re-used in our application
Consider a page that stores information about a user - /profile/user
The @app.route
defines the user endpoint, and we are defining a func called profile_page
which takes one argument called user
and then assigns the user name to the template variable and renders the template
Flask is the web framework, while Jinja2 is the template engine being used
So how is it Exploitable ?
The variable user
(which is user input) is concatenated directly into the template, rather than passed in as data. This means whatever is supplied as user input will be interpreted by the engine
An insecure implementation by the developer leads to template injections, the dev must properly sanitize the user's input
References
Last updated