[护网杯 2018]easy_tornado1

news2024/10/11 4:23:35

进入环境后有三个路径链接 

访问/flag提示会说flag在/fllllllllllag里

 值得注意的是访问后网页url发生的变化,这里居然有两个参数

替换掉filename的值后页面url再次发生变化,网页只有一个msg传参的数据

访问welcome.txt,只是回显了一个render,百度了一下,出来了几段模版注入的文章,就想到了之前学习flask模版注入里的,render_template渲染函数

 最后查看了一下wp,果然是模版注入。不过不是Python flask,而是Tornado,是另外一种Python模版,没学

 最后访问一下hints.txt,出现了一个MD5算法,filename我们知道,只不过这个cookie_secret,需要了解一下

那说明URLfilehash参数就是上面算法MD5加密后的字符串,那我们只要得到cookie_secret,就可以经过算法得到flag

cookie_secret简介

普通的cookie并不安全,可以通过客户端修改

在Tornado框架中,cookie_secret是一个密钥,一般使用随机生成的字符串,被用于对生成的cookie进行加密。它的作用是确保cookie的安全性,防止被修改或伪造。

具体来说,当Tornado应用程序使用set_secure_cookie()函数设置cookie时,会使用cookie_secret对cookie进行加密。而在获取cookie时,Tornado则会使用同样的密钥进行解密,并验证cookie是否被篡改。如果cookie_secret不匹配,Tornado将不会对其进行解密,并抛出异常,以防止未经授权的访问。

handler.settings

以下是gpt的答案,因为还没有学过这个模版相关的知识,所以直接复制来的

`handler.settings`在Tornado框架中是一个字典,用于存储应用程序的各种配置选项。其中包括一些默认的配置选项,也可以自定义添加其他配置选项。

在Tornado框架中,`cookie_secret`是`handler.settings`字典中用于配置cookie密钥的一个选项。Cookie密钥是用于加密和验证cookie的字符串,它应该是一个随机且足够长的字符串,用于保证cookie的安全性和完整性。

解题步骤

说明我们可以利用handler.settings,去访问一些配置,就能得到cookie_sercret的键值对,这样我们就可以通过hints文件提供的算法,求得filehash的值 

 需要注意的是一定要按照顺序进行字符串拼接,否则出来的MD5值会有所差别

import hashlib

filename = '/fllllllllllllag'
cookie_secret = '139f115c-818e-4821-9f5a-c88ae4f19a06'
filename =  hashlib.md5(filename.encode()).hexdigest()
a = cookie_secret + filename
filehash = hashlib.md5(a.encode()).hexdigest()
print(filehash)

至此也就做出来了,这个cookie_sercret的值是动态的,后面还要补充模版知识

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/789993.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一个灵活、现代的Android应用架构

一个灵活、现代的Android应用架构 学习Android架构的原则:学习原则,不要盲目遵循规则。 本文旨在通过示例演示实际应用:通过示范Android架构来进行教学。最重要的是,这意味着展示出如何做出各种架构决策。在某些情况下&#xff0…

qt登录框

#include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {//窗口的设置this->setFixedSize(500, 400); //设置固定大小this->setWindowOpacity(0.95); //设置透明度this->setWindowTitle("鹏哥快聊"); // this->setWin…

【node-1】node validation exception. bootstrap checks failed

记录ElasticSearch 内存分配不足报错 背景做出的改变说在最后:最后访问es: 背景 从报错信息中看到,文件,虚拟内存的最大值太低,我们需要调整设置虚拟内存大小,以满足ElasticSearch 运行需求。 做出的改变 …

WPF icon的设置

想给控件设置个圆形图片&#xff0c;代码如下&#xff1a; ​<Setter Property"Icon"><Setter.Value><Image Source"/WpfApp1;component/Resource/1.ico" Width"16" Height"16"/></Setter.Value></Setter&…

面向对象编程:从创建类到封装与构造方法的探索

1. 代码如何创建类&#xff1f; 在面向对象编程中&#xff0c;类是对一类事物的抽象&#xff0c;包含了静态的属性&#xff08;成员变量&#xff09;和动态的行为&#xff08;成员方法&#xff09;。在Java中&#xff0c;创建类的格式如下&#xff1a; 修饰词 class 类名 {//…

react实现页面动态表单设计器(自定义推拽表单)

react实现页面动态表单设计器&#xff08;自定义推拽表单&#xff09; 实现效果安装插件使用组件介绍基本设置&#xff0c;可设置控件标签&#xff0c;是否必填&#xff0c;校验规则校验规则有如下几种多选&#xff0c;下拉&#xff0c;单选可动态设置每个选择的label以及值 实…

ROS Neotic(Ubuntu 20.04)如何正确安装OpenCV

自定义OpenCV版本 一、ROS的安装二、OpenCV编译安装三、cv_bridge编译安装四、温馨提示 一、ROS的安装 鱼香ROS提供了一个全面且方便的脚本&#xff0c;可以直接运行来安装系统对应版本的ROS&#xff0c;同时也可以使用该命令来安装许多有趣的东西 wget http://fishros.com/i…

Android 实现阅读用户协议的文字控件效果

开发中&#xff0c;经常要用到一些阅读隐私协议的场景&#xff0c;原生的textview控件很难做到在一个控件里有两个点击事件&#xff0c;那现在就来安利一个强大的组件——SpannableStringBuilder。 先看看效果&#xff1a; 直接上代码&#xff0c;布局文件&#xff1a; <Li…

线性DP--BOX

还没学&#xff0c;等学完再仔细写。 #include<bits/stdc.h> using namespace std; typedef long long ll; ll a[1000010]; ll vis[1000010]; ll f[1000010][3]; int main() {ll n,m;cin>>n;for(int i1;i<n;i){cin>>a[i];}for(int i1;i<n;i){cin>&g…

top工具使用

文章目录 top命令简介top命令输出信息系统信息运行进程信息 top命令参数top命令快捷键自定义字段显示 top命令简介 top命令是Linux下常用的性能分析工具&#xff0c;可用于实时查看系统运行状态以及各个进程的资源占用情况。通常在系统出现CPU负载异常或者内存占用过高时&…

计算机视觉(三)未有深度学习之前

文章目录 图像分割基于阈值、基于边缘基于区域、基于图论 人脸检测Haar-like特征级联分类器 行人检测HOGSVMDPM 图像分割 把图像划分成若干互不相交的区域。经典的数字图像分割算法一般是基于灰度值的两个基本特征之一&#xff1a;不连续性和相似性。 基于阈值、基于边缘 基于…

数据可视化(3)

1.饼状图 #饼状图 #pie&#xff08;x,labels,colors,labeldistance,autopct,startangle,radius,center,textprops&#xff09; #x,每一块饼状图的比例 #labels:每一块饼形图外侧显示的文字说明 #labeldistance&#xff1a;标记的绘制位置&#xff0c;相对于半径的比例&#xf…

【模拟IC】国微微电子模拟IC岗笔试复盘

前言 对2023的国微微电子的笔试题进行复盘&#xff0c;答案仅供参考&#xff0c;题型分别有选择题&#xff0c;填空题&#xff0c;简答题以及分析题。一共一百分。麻烦大家点点关注&#xff0c;祝大家拿下大厂sssp,拿下心仪的工作。 一、选择题填空题简答题 套筒式放大器与折…

微服务测试是什么?

微服务测试是一种特殊的测试类型&#xff0c;因为它涉及到多个独立的服务。以下是进行微服务测试的一般性步骤&#xff1a; 【B站最通俗易懂】Python接口自动化测试从入门到精通&#xff0c;超详细的进阶教程&#xff0c;看完这套视频就够了 1. 确定系统架构 了解微服务架构对…

【沐风老师】3dMax模型贴图贴画插件使用方法详解

3dMax模型贴图贴画插件使用方法 3dMax模型贴图贴画插件(3dmax贴花放置器),是在3dMax对象上放置贴花时使用的一种工具,可以帮助你加快工作速度。现代化的用户界面,能够保留贴花的纵横比、捕捉角度、通过角点或中心轴调整贴花大小的能力、贴花网格的实时投影、创建和编辑“*…

nginx的快速入手(基本命令)

nginx的快速入手&#xff08;基本命令&#xff09; 1.下载 下载地址&#xff1a;nginx: download 以win的为例。单机下载windows的。 下载完成之后直接解压 2.使用 查看版本 nginx -v 验证配置文件正确吗 就是检查自己修改的配置文件有没有语法上的错误 nginx -t 启动 sta…

多线程(JavaEE初阶系列4)

目录 前言&#xff1a; 1.单例模式 1.1饿汉模式 1.2懒汉模式 1.3结合线程安全下的单例模式 1.4单例模式总结 2.阻塞式队列 2.1什么是阻塞队列 2.2生产者消费者模型 2.2.1 上下游模块之间进行“解耦合” 2.2.2削峰填谷 2.3阻塞队列的实现 结束语&#xff1a; 前言&a…

Java开发 - 深入理解Redis Cluster的工作原理

前言 前面我们讲过Redis Cluster的搭建方式&#xff0c;也是本着应用优先的原则&#xff0c;所以对其基础概念和原理几乎没有涉及&#xff0c;但当学会了Redis集群的搭建方式之后&#xff0c;对于其原来我们还是要知道一些的&#xff0c;所以这篇博客&#xff0c;我们将一起来…

数据结构【查找】

第八章 查找 提前了解&#xff1a; 1、关键字&#xff1a; 若关键字能唯一标识一个数据元素&#xff0c;则关键字称为主关键字&#xff1b;若能标识若干个数据元素的关键字称为次关键字&#xff1b; 2、查找&#xff08;检索&#xff09;&#xff1a;顾名思义&#xff0c;给定…

T113-S3-全志平台wpa_supplicant/hostapd交叉编译移植

目录 前言 一、源码获取 二、编译前准备 三、hostapd交叉编译 四、wpa_supplicant交叉编译 总结 前言 在嵌入式系统开发中&#xff0c;交叉编译和移植wpa_supplicant和hostapd是实现无线网络功能的重要步骤。本文将分享在T113-S3全志平台上成功交叉编译和移植wpa_supplicant和h…