ssti知识归纳

前置知识

jinja2入门教程(6 封私信 / 80 条消息) 从入门到实践:Jinja2小白学习指南 - 知乎

ssti介绍SSTI注入 - Hello CTF

魔术方法

class 类的一个内置属性,表示实例对象的类。
base 类型对象的直接基类
bases 类型对象的全部基类,以元组形式,类型的实例通常没有属性 bases
mro 查看继承关系和调用顺序,返回元组。此属性是由类组成的元组,在方法解析期间会基于它来查找基类。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
>>> request.__class__
<class 'flask.wrappers.Request'>

>>> request.__class__.__mro__
(<class 'flask.wrappers.Request'>, <class 'werkzeug.wrappers.request.Request'>, <class 'werkzeug.sansio.request.Request'>, <class 'flask.wrappers.JSONMixin'>, <class 'werkzeug.wrappers.json.JSONMixin'>, <class 'object'>) # 返回为元组
>>> request.__class__.__mro__[-1]
<class 'object'>

>>> request.__class__.__bases__
(<class 'werkzeug.wrappers.request.Request'>, <class 'flask.wrappers.JSONMixin'>) # 返回为元组
>>> request.__class__.__bases__[0].__bases__[0].__bases__[0]
<class 'object'>

>>> request.__class__.__base__
<class 'werkzeug.wrappers.request.Request'>
>>> request.__class__.__base__.__base__.__base__
<class 'object'>

一把梭fenjing

fenjing webui