0
点赞
收藏
分享

微信扫一扫

[BJDCTF2020]Cookie is so stable(漏洞原理详解)

Sky飞羽 2022-04-18 阅读 138

web第45题
[BJDCTF2020]Cookie is so stable
打开靶场
在这里插入图片描述
访问flag页面
在这里插入图片描述
一个输入框
访问hint页面,查看源码
在这里插入图片描述
提示与cookie有关
那么在flag页面输入后抓包观察
在这里插入图片描述
输入后显示
在这里插入图片描述
登陆后抓包显示为
在这里插入图片描述
做到这里又遇到新的知识点了,模板注入漏洞
参考大佬的博客:一篇文章带你理解漏洞之 SSTI 漏洞,讲的非常详细
漏洞原理:

模板注入检测方式:
在这里插入图片描述
Twig
{{7*‘7’}} 输出49
Jinja
{{7*‘7’}}输出7777777
在这里插入图片描述
证明存在模板注入漏洞
在这里插入图片描述
证明是twig框架的漏洞
漏洞详解即payload的构造原理:(引用于上述链接)

原理:也就是说通过向registerUndefinedFilterCallback函数中传入exec,此函数将exec赋值给filterCallbacks[],然后调用getFilter函数,并传入参数name(此参数作为我们需要命令执行的传入的语句),然后将filterCallbacks[]的值取出来即exec赋给callback,再使用call_user_func函数进行调用,相当于执行了call_user_func(exec,name的值),也就是说调用了exec函数,并且将name参数的值作为exec函数的参数,造成了命令执行

一般flag存在根目录下,构造payload:

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

在这里插入图片描述

举报

相关推荐

0 条评论