[护网杯2018]Web WP

easy_tornado

一打开就是三个文件

打开后里面的内容分别为

/flag.txt
flag in /fllllllllllllag
/welcome.txt
render
/hints.txt
md5(cookie_secret+md5(filename))

我们注意到url是

filehash应该是经过hints.txt中所说的方法加密过的,并且知道flag所在的文件名,只需要得到cookie_secret就好了。

但是怎么得到cookie_secret呢。根据题目名tornado和render可知应该跟模版注入有关。

rander函数

  1. render方法的实质就是生成template模板;
  2. 通过调用一个方法来生成,而这个方法是通过render方法的参数传递给它的;
  3. 这个方法有三个参数,分别提供标签名,标签相关属性,标签内部的html内容
  4. 通过这三个参数,可以生成一个完整的模板

render函数介绍其实我只是勉强看懂了qaq代码能力太差

tornado

tornado官方文档

目前我对它的印象就停留在是一个python web框架

然而从官方文档中可以看出,cookie_secret是在文件handler/setting中,因此找到注入点后输入payload为即可。

解题

我们把filename改成flag所在的/fllllllllllllag,报错了

把msg的值改为1,能够在页面上输出。

我们试着改成2

但是过滤了一些运算符

确实存在模版注入,那我们将它改为

接下来就是md5(cookie_secret+md5(filename)),写个脚本算一下就彳亍了。

Author: Neorah
Link: https://neorah.me/ctf/huwangctf/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.