BUUCTF之[BJDCTF2020]Cookie is so stable ----- SSTI注入

BUUCTF之[BJDCTF2020]Cookie is so stable

题目

知识点:服务端模板注入攻击。SSTI里的Twig攻击。从网上找来的图片。参考链接:服务端模板注入攻击
BUUCTF之[BJDCTF2020]Cookie is so stable ----- SSTI注入_第1张图片
然后网上提示说:

  • 输入{{7*‘7’}},返回49表示是 Twig 模块
  • 输入{{7*‘7’}},返回7777777表示是 Jinja2 模块

然后这题是 Twig 模块,用到的payload是:

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

关于这题,我找了好几篇文章都没有理解为什么 Twig 服务端模板注入用的是这个payload,所以现在先把这个当作是知识点记下来先吧。毕竟知识储备量还是太少了。。。。。。

好了,进入这题吧
打开挑战页面可以看到有三个跳转链接:BJDCTF、Flag和Hint。其中

  • BJDCTF 是首页
  • Flag 是找flag的注入页面
  • Hint 是给你提示的页面

然后Hint页面给我们的提示是在cookie那里进行攻击
BUUCTF之[BJDCTF2020]Cookie is so stable ----- SSTI注入_第2张图片

所以,我们先用admin登录,再通过BurpSuite进行抓包。就可以看到注入点的位置了

BUUCTF之[BJDCTF2020]Cookie is so stable ----- SSTI注入_第3张图片
BUUCTF之[BJDCTF2020]Cookie is so stable ----- SSTI注入_第4张图片
所以,用对应的Twig模块的paylaod攻击:{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("id")}}(其中这一步你不用也可以,就走个流程之类的?)
BUUCTF之[BJDCTF2020]Cookie is so stable ----- SSTI注入_第5张图片
最后,获取flag:{{_self.env.registerUndefinedFilterCallback("exec")}}{{_self.env.getFilter("cat /flag")}}
BUUCTF之[BJDCTF2020]Cookie is so stable ----- SSTI注入_第6张图片

总结:这题对于我这样的小白来说太难了,不看别人的WP根本不知道怎么做。所以就先当作是知识点记下来先吧。以后再碰到这样的题目,希望能够自己做出来。。。

你可能感兴趣的:(Classical,CTF-WEB,注入,安全,web)