CTF

[GWCTF 2019]你的名字(SSTI)

Posted on 2020-03-19,1 min read

。。感觉是SSTI

输入{1+1}返回{1+1}
输入{{1+1}}直接报错。
这就有点迷了。接触过的SSTI都是构造payload不同。也没遇到过报错这种情况
看writeup后。发现还能通过{%%}这种方式去注入
这是一种盲注。通过{% if 1 %}1{% endif %}
可以看到。虽然没回显。但是payload确实正常执行

题目上。却直接报错。

猜测是触发了黑名单。从最简单的开始。fuzz

{% if 1 %}1{% endif %}
#报错
猜测是if触发了黑名单。然后就没思路了。用了for也不行。

继续看writeup。。。是字符串置换为空。。。

blacklist = ['import', 'getattr', 'os', 'class', 'subclasses', 'mro', 'request', 'args', 'eval', 'if', 'for',
                 ' subprocess', 'file', 'open', 'popen', 'builtins', 'compile', 'execfile', 'from_pyfile', 'local',
                 'self', 'item', 'getitem', 'getattribute', 'func_globals', 'config']

知道置换后。那就很简单了。。
payload。将替换的字符。双写绕过

下一篇: [GYCTF2020]Node Game(CRLF头部注入)→