• easy tornado


    easy tornado

    题目分析

    这是一道2018年护网杯的题目

    /flag.txt
    /welcome.txt
    /hints.txt
    

    一共有3个文件。

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

    进入第一个文件flag.txt,发现好像提示文件名为/fllllllllllag

    进入第二个文件welcome.txt,发现提示为render,render({options}) 去向模板中渲染数据, 可以把视图响应给客户端,猜测存在模板注入。

    进入第三个文件hints.txt,发现提示md5(cookie_secret + md5(filename)),即先将filenamemd5加密,再将cookie_secret与md5加密后的filename进行md5加密,目前我们需要知道的是filenamecookie_secret,猜测文件名为/fllllllllllag,也就是说,只要知道cookie_secret就行了。

    观察查看文件时使用的url:

    http://111.198.29.45:56630/file?filename=/hints.txt&filehash=b10fbfd1f38e8dd058abe90e0df3db8d
    

    猜测md5(cookie_secret + md5(filename))的结果就是访问文件时所需要的filehash

    尝试访问/fllllllllllag,发现跳转到错误页面

    easytornado_4

    页面中存在msg,尝试:

    easytornado_7

    证实存在模板注入漏洞

    解题过程

    查阅资料,发现 secure cookie 是Tornado 用于保护cookies安全的一种措施。

    easytornado_1

    cookie_secret保存在settings

    easytornado_2

    发现self.application.settings有一个别名

    easytornado_3

    handler指向的处理当前这个页面的RequestHandler对象, RequestHandler.settings指向self.application.settings, 因此handler.settings指向RequestHandler.application.settings


    可以构造payload获取cookie_secret

    payload:error?msg={{handler.settings}}

    easytornado_6

    获得cookie_secret,编写脚本,计算md5(cookie_secret + md5(filename))

    import hashlib
    
    filename = '/fllllllllllllag'
    cookie_secret ="6fe556f1-9b77-481e-9535-c4e9f803b89d"
    
    def getvalue(string):
        md5 = hashlib.md5()
        md5.update(string.encode('utf-8'))
        return md5.hexdigest()
    
    def merge():
        print(getvalue(cookie_secret + getvalue(filename)))
    
    merge()
    

    得到flag:

    easytornado_8

  • 相关阅读:
    左耳听风-ARTS-第4周(2019/4/21-2019/4/27)
    Java集合总结
    Zuul网关总结
    左耳听风-ARTS-第3周(2019/4/7-2019/4/13)
    左耳听风-ARTS-第2周(2019/3/31-2019/4/6)
    Java泛型相关总结(下)
    左耳听风-ARTS-第1周
    去长江边走走,看看
    第1记
    c#发送邮件
  • 原文地址:https://www.cnblogs.com/chalan630/p/12609470.html
Copyright © 2020-2023  润新知