• [护网杯 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

  • 相关阅读:
    vue指令(3)v-html
    vue指令(2)v-text
    vue基础(2)模板语法
    Struts2中在Action里面向前端页面传值的方法总结
    MySQL之字符串函数
    搜索关键字描红
    点击超链接执行js代码实现确认操作
    Java之线程同步的三种方法
    Java之线程的控制
    Java之线程的生命周期
  • 原文地址:https://www.cnblogs.com/cmredkulaa/p/14534883.html
Copyright © 2020-2023  润新知