[护网杯 2018]easy_tornado 模板注入

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之后发现以下几点要点

    1. Error界面的url格式为/error?msg=Error,大佬看到注意到这一点之后便判断存在模板注入攻击。尝试构造/error?msg={{datetime}}
    2. 题目名字叫tornado,这是一个前段模板,大佬去查阅了该模板的官方文档。发现cookie_secret在Application对象settings属性中,还发现self.application.settings有一个别名
    3. handler指向的处理当前这个页面的RequestHandler对象,
      RequestHandler.settings指向self.application.settings,
      因此handler.settings指向RequestHandler.application.settings。
      构造payload获取cookie_secret
      /error?msg={{handler.settings}}

    4. 构造完payload后题目给出了cookie_secret。然后根据hint提示构造加密后的字符串,提交得到flag

 

模板注入涉及到的知识点比较多,以后有机会一定会了解的更透彻,做完这题其实只是涉及了一下模板注入和了解了这种漏洞形式。

https://blog.csdn.net/weixin_44677409/article/details/94410580

https://www.freebuf.com/vuls/83999.html

 

posted @ 2021-03-14 23:13  2hangG3  阅读(84)  评论(0编辑  收藏  举报