素材巴巴 > 程序开发 >

buuctf easy-tornado(cookie_secret)

程序开发 2023-09-14 14:45:19

进入url可以看到三个超链接

都分别点开看看

并且发现url中传输了两个参数,一个是filename,另一个是filehash,在flag.txt中将filename改为提示的/fllllllllllllag试一试

 看来拿到flag的关键就在于解出filehash是什么,根据连接的提示,我们可以猜想filehash=md5(cookie_secret+md5(filename)),filename我们知道就是/fllllllllllllag,但是cookie

_secret我们就不知道了,而且第二个文档提示的render也不清楚有什么用,只能去查一下tornado框架有什么特点了

tornado框架的介绍Tornado Web Server — Tornado 4.3 文档

我们在这个文档里面可以知道cookie_secret并不像我们的cookie一样可以自己修改的(不是自己的cookie),而是包含了时间戳,HMAC签名和编码后的cookie值,所以我们自己修改cookie并不现实。

想到render难道没有用处么(会不会是cookie_secret的突破点),找一下render作用

render意为渲染;self.render("entry.html", entry=entry)该语句意思就是找到entry.html这个模板,用右边这个entry来实例化entry.html模板中的entry参数,从而显示在页面上。

回过头发现flag.txt那个Error的页面有一个参数msg也是等于Error

发现msg这个函数可以左右页面的输出,想到之前有些题目利用一个参数可以出来phpinfo()等,因此现在目标就是怎么利用msg这个参数来找到cookie_secret了

在文档中我们可以看到相关render渲染的作用,我们可以利用{{}}来把表达式传进去以获取我们想要的信息,这样我们猜想msg={{cookie的位置}}来获得我们想要的 

因为没有相关框架的基础,不知道cookie的位置,看了一些大佬的wp,再加上查文档验证

cookie_secret在Application对象settings的属性中 ,访问它的话就需要知道它的属性名字

根据wp和文档可知:self.application.settings有一个别名是RequestHandler.settings

其中handler又是指向处理当前这个页面的RequestHandler对象

RequestHandler.settings指向self.application.settings

因此handler.settings指向RequestHandler.application.settings

将handler.setting带入msg即可知道cookie_secret,再来一步步根据md5来计算filehash 

不像别人大佬可以自己写md5解密加密脚本,我只能上网搜在线解密

记住两次加密都要是32位小写,因为你进去默认的filehash就是32位小写的,相当于一个提示吧

 

 相继带入即可获得flag

简单的tornado模板学习知道了cookie_secret在哪并且如何利用渲染获得


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。