0%

web--easy_tornado

前言:

 此题主要涉及到tornado (一个web框架)的基本认知,以及用python写MD5加密脚本,还要了解什么是cookie_secret,什么是render函数。

一、新知识

  1. 什么是tornado?
     tornado是python的一个web框架。
  2. 用python写md5加密脚本
    import hashlib //导入模块
    def md5(str):  //定义一个函数
       md5=hashlib.md5()  //创建一个对象
       md5.update(str.encode('utf8')) //记得将字符串规定一种编码
       return  md5.hexdigest()
    cookie_secret = "402ecfe0-64a7-4b07-9af1-bd28d59d227f"
    print(md5(cookie_secret + md5("/fllllllllllllag")))
  3. 这里的cookie_secret指的是什么?
     简单的来讲就是密钥,用它来进行一系列的安全加密。
  4. 什么是render函数?
     它是一个渲染函数,暂时并无其它更多了解。

二、解题思路

  1. 打开链接发现3个文件夹,打开/flag.txt发现提示flag in /fllllllllllllag,打开welcome.txt 发现提示 render ,打开hints.txt 发现提示 md5(cookie_secret+md5(filename)) 再看看url中的get传参可以推断出filehash就是md5(cookie_secret+md5(filename))的运算结果。但是我们并不知道cookie_secret的值,怎么办呢?
  2. 我们尝试直接访问/fllllllllllllag发现自动跳转到了error页面且页面内容可以自己更改,那么我们是否可以改成一个变量,让此变量中含有cookie_secret?
  3. 经过查阅资料发现,handler.settings变量中,settings是一个字典,主要保存一些配置选项.那么现在就好办了,使用payload为?msg=即可得到cookie_secret的值如:
  4. 现在可以运行我们上面写的python脚本进行对应的MD5的加密最后得到最终的paylod ?filename= /fllllllllllllag&filehash=db8210d5af8bfcd318427ffc0f1b74ef得到我们的flag:

三、补充知识

  1. 模块注入可以参考:https://www.freebuf.com/vuls/83999.html

-------------本文结束感谢您的阅读-------------