BJDCTF2020 Cookie is so subtle

Uncategorized
689 words

知识点

SSTI模板注入 Cookie注入

  • index.php

index.php

  • hint.php

hint.php

我们在hint.php中看到Why not take a closer look at cookies?,加上题目名字我们可以猜测这道题的漏洞点在cookie上面

我们通过burpsuite抓下包看一下cookie

页面提交后,cookie这里多了一个user=(msg you input),那么是不是可以命令执行呢

经过多次尝试,发现这是一个SSTI.即服务器端模板注入,什么是SSTI呢

SSTI

是什么 : Server-Side Template Injection

是什么引发 : render_template渲染函数 , 该函数在渲染时, 对用户输入的变量不做渲染 , {{}}在jinja2中作为变量包裹标识符,即jinja2中,会把{{}}包裹的内容当作变量解析替换,比如4会被解析成4,这样就像sql一样存在注入漏洞

判断SSTI类型

网上扒拉了一张图

exp

那么我们经过测试之后,大概能确定这里采用的是Twig引擎,网上扒拉一份payload

{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}}

get flag

需要注意的是,这里需要通过burp抓包改包再放包,因为在页面端的输入会经过url编码而失去注入作用