WorldCloud 人脸识别 html Java程序员 CK cordova 如何做网络营销推广 NEJ Notify.js vue论坛 十大erp系统 ios视频教程 软件测试项目实战案例 mysql默认密码 datetimepicker赋值 cad怎么重复上一次命令 chrome发送post请求 mac上传文件到linux android自定义控件 kafka启动命令 郑州普通话 配置python环境 python分析 java对象 java中string java实战 java中的基本数据类型 java如何配置环境变量 java入门基础 ps怎么插入表格 c语言指数函数 mpg格式转换 远程桌面管理软件 sqlprompt mmap文件怎么打开 bilibili硬币 卸载mysql 骰子牛牛 换肤助手 括号符号大全
当前位置: 首页 > 学习教程  > 编程语言

【攻防世界】十六 --- easytornado

2020/12/28 18:32:22 文章标签:

题目 — easytornado 一、writeup 主页有三个文件 分别访问以下可以看到他们的URL格式如下图所示 都是文件名带一个filehash的格式,那就可以猜测访问flag文件的url格式应该就是:/file?filename/flag的文件名&filehashxxx。接下来依次看这几个文…

题目 — easytornado

一、writeup

主页有三个文件
在这里插入图片描述
分别访问以下可以看到他们的URL格式如下图所示
在这里插入图片描述
都是文件名带一个filehash的格式,那就可以猜测访问flag文件的url格式应该就是:/file?filename=/flag的文件名&filehash=xxx。接下来依次看这几个文件的内容。/flag.txt文件
在这里插入图片描述
提示flag在:/fllllllllllllag中,我们的URL格式又进一步确定了:/file?filename=/fllllllllllllag&filehash=xxx,现在只要确定了filehash如何计算就可以得到flag。再看/welcome.txt文件
在这里插入图片描述
这里显示了一个render,不知道是什么,先放着,再看/hints.txt文件中的内容
在这里插入图片描述
这里告诉了我们filehash的计算方法:md5(cookie_secret + md5(filename)),接下来只要确定了cookie_secret的值是什么,我们就可以得到flag了。起初我以为cookie_secret 就是 render,于是编写了如下所示的代码去计算 filehash

import hashlib
def md5(message):
    md5 = hashlib.md5()
    md5.update(message.encode('utf-8'))
    return md5.hexdigest()

def main(salt, name):
    print(md5(salt + md5(name)))


if __name__ == "__main__":
    cookie_secret = input("请输入盐值:")
    filename = input("请输入文件名:")
    main(cookie_secret, filename)

但是发现计算得到的结果和url中的内容并不相同
在这里插入图片描述

so,cookie_secret 肯定就不是render了。需要继续找cookie_secret。发现当输入错误的 filehash值 ,会回显出如下所示的内容
在这里插入图片描述
这里试了以下SSTI貌似不存在
在这里插入图片描述
到这里就没有思路了。查阅资料得知,可以访问:?msg={{handler.settings}},得到应用的设置(这里其实是有SSTI的),这里面有cookie_secret(另:在Tornado的前端页面模板中,Tornado提供了一些对象别名来快速访问对象,Handler对象指向的处理当前这个页面的RequestHandler对象。执行?msg={{datetime}} 还可以访问到datetime模块)
在这里插入图片描述
将得到的cookie_secret带到代码中
在这里插入图片描述
可以看到得到的filehashurl中的相同,找到了cookie_secret:f1556be2-63a1-4dc4-9962-6ca77ecc3751,运行程序得到访问/fllllllllllllag文件的filehash
在这里插入图片描述
构造url:/file?filename=/fllllllllllllag&filehash=94700a15bb200c74d858f10a9a2ad7a6,得到flag
在这里插入图片描述

二、知识点

  • Tornado — py的一个web开发框架
  • Tornado 里,应用的设置可以通过{{handler.settings}}访问。(如果有SSTI的话)
  • 观察URL的格式访问文件
  • /error?msg={{datetime}} — 在Tornado的前端页面模板中,datetime是指向python中datetime这个模块,Tornado提供了一些对象别名来快速访问对象

本文链接: http://www.dtmao.cc/news_show_550004.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?