攻防世界之easytornado

纯音乐,感受那份寂静,仿佛沐浴在月光下,因为没有歌词的限制,所以总能给人一种在宇宙遨游的感觉!

tornado,没错。今天在这个又是一道新的框架题。前戏其实比较简单,但是后面的查找工作确实让我有点小头疼。究竟怎么回事呢?下面来进入正题。

打开题目我们直发现有三个下级文件,然后我们依次打开。

打开flag.txt后,我们得知flag在/fllllllllllllag文件夹内

第二个文件是render,这是一个渲染函数在之前那个py模板注入里用到过,但是这里我没搞清楚有啥子用

第三个文件打开后发现了一个计算公式,cookie加上md5加密后的filename,在进行md5加密。

当我任意更改url后发现直接回显报错,这里考虑会有注入。

尝试后发现确实被执行了,然后就进一步考虑语句

通过查阅官方文件发现cookie_secret在Application对象settings属性中,还发self.application.settings有一个别名

RequestHandler.settings
An alias for self.application.settings.

handler指向的处理当前这个页面的RequestHandler对象, RequestHandler.settings指向self.application.settings, 因此handler.settings指向RequestHandler.application.settings。
执行之后我们得到了cookie_secede

这时开始写一个脚本算出值即可,代码如下:

import hashlib

def md5(s):
    md5 = hashlib.md5()
    md5.update(s.encode("utf8"))
    return md5.hexdigest()



def filehash():
	filename = '/fllllllllllllag'
	cookie_secret = '37b0ce08-bcab-4db2-a05f-1bd2c5a8c91d'
	print(md5(cookie_secret+md5(filename)))

if __name__ == '__main__':
	filehash()

运行后得到结果(如果需要代码分析可以留言评论)

然后就到了最开心的时候了,但是这题属实让我头疼啊,路径不对啊!最后经过尝试发现修改flag.txt文件为/fllllllag即可(感觉自己好沙雕),然后得到flag

留下评论