前言
最近也是学了一点模板注入,就在buu上做了一道相关的题目,在此记录一下。
题目
打开题目有三个txt,flag.txt中告诉了flag的文件名。
welcome.txt中给了render,这是一个渲染函数。hints.txt给了本题的关键。
其实看url就会发现有两个参数,一个是filename,一个是filehash。这么这个md5加密的结果就是filehash参数的内容。filename是我们已知的,那么就需要知道cookie_secret的值,那这个东西是什么呢?百度搜索。
一搜就搜到payload了,但是还是要知道基本原理。在python shell中执行代码将生成个随机的cookie_secret。它是存在于settings中的,而settings又被作为参数传入到了Application构造函数中,所以是可以通过self.application.settings获取到cookie_secret的内容。但是,到目前为止还不知道模板注入的传参点在哪?直接访问/fllllllllllllag就会出现传参点啊,之前没找到看wp的,还得多尝试才会有惊喜。
那我们就把 self.application.settings传入,失败了,这里需要通过handler类来访问。其实self.application.settings也叫做RequestHandler.settings。
那么可以认为handler是指向ResquestHandler对象的,所以说,可以直接handler.settings来获取到cookie_secret的内容了。成功得到。
再根据提示两次md5加密传参得出最终的flag。 (md5加密网址:MD5在线加密 - MD5加密工具 - MD5在线生成)