BJDCTF2020 Cookie is so subtle
知识点
SSTI模板注入 Cookie注入
- index.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中,会把{{}}
包裹的内容当作变量解析替换,比如{{2 + 2}}会被解析成4,这样就像sql一样存在注入漏洞
判断SSTI类型
网上扒拉了一张图
exp
那么我们经过测试之后,大概能确定这里采用的是Twig引擎,网上扒拉一份payload
{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}}
get flag
需要注意的是,这里需要通过burp抓包改包再放包,因为在页面端的输入会经过url编码而失去注入作用