1. 题目为三个文件夹的目录
2. 逐一点进去浏览
/flag.txt提示flag在/fllllllllllllag文件中
/welcome.txt提示看不懂
/hints.txt提示了一串利用md5的加密方法
3. 留意到每个点进的文件夹url形式
?filename=/hints.txt&filehash=baa1923771de460f9de0551719341aa3
filename填写文件名,filehash填写一串加密后的字符串,推测为hints.txt中提示的加密方法。
4. 尝试将自己的cookie值带入进cookie_secret中进行加密,失败。
5. 多番尝试无果,看wp,发现是第一次接触到的模板注入。
模板注入涉及的是服务端Web应用使用模板引擎渲染用户请求的过程,和常见Web注入的成因一样,也是服务端接收了用户的输入,将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。其影响范围主要取决于模版引擎的复杂性。
观摩了大佬们的wp之后发现以下几点要点
- Error界面的url格式为/error?msg=Error,大佬看到注意到这一点之后便判断存在模板注入攻击。尝试构造
/error?msg={{datetime}}
- 题目名字叫tornado,这是一个前段模板,大佬去查阅了该模板的官方文档。发现cookie_secret在Application对象settings属性中,还发现self.application.settings有一个别名
- handler指向的处理当前这个页面的RequestHandler对象,
RequestHandler.settings指向self.application.settings,
因此handler.settings指向RequestHandler.application.settings。
构造payload获取cookie_secret
/error?msg={{handler.settings}} - 构造完payload后题目给出了cookie_secret。然后根据hint提示构造加密后的字符串,提交得到flag
- Error界面的url格式为/error?msg=Error,大佬看到注意到这一点之后便判断存在模板注入攻击。尝试构造
模板注入涉及到的知识点比较多,以后有机会一定会了解的更透彻,做完这题其实只是涉及了一下模板注入和了解了这种漏洞形式。
https://blog.csdn.net/weixin_44677409/article/details/94410580