flask session 伪造
flask session 伪造

一、session的作用
由于http协议是一个无状态的协议,也就是说同一个用户第一次请求和第二次请求是完全没有关系的,但是现在的网站基本上有登录使用的功能,这就要求必须实现有状态,而session机制实现的就是这个功能。
用户第一次请求后,将产生的状态信息保存在session中,这时可以把session当做一个容器,它保存了正在使用的所有用户的状态信息;这段状态信息分配了一个唯一的标识符用来标识用户的身份,将其保存在响应对象的cookie中;当第二次请求时,解析cookie中的标识符,拿到标识符后去session找到对应的用户的信息
二、flask session的储存方式
第一种方式:直接存在客户端的cookies中
第二种方式:存储在服务端,如:redis,memcached,mysql,file,mongodb等等,存在flask-session第三方库
flask的session可以保存在客户端的cookie中,那么就会产生一定的安全问题。
三、flask的session格式
flask的session格式一般是由base64加密的Session数据(经过了json、zlib压缩处理的字符串) . 时间戳 . 签名组成的。
eyJ1c2VybmFtZSI6eyIgYiI6ImQzZDNMV1JoZEdFPSJ9fQ.Y48ncA.H99Th2w4FzzphEX8qAeiSPuUF_0
session数据 时间戳 签名
时间戳:用来告诉服务端数据最后一次更新的时间,超过31天的会话,将会过期,变为无效会话;
签名:是利用Hmac算法,将session数据和时间戳加上secret_key加密而成的,用来保证数据没有被修改。
四、flask session伪造
上面我们说到flask session是利用hmac算法将session数据,时间戳加上secert_key成的,那么我们要进行session伪造就要先得到secret_key,当我们得到secret_key我们就可以很轻松的进行session伪造。
session伪造
工具 https://github.com/noraj/flask-session-cookie-manager
使用方法
python2 flask-session-cookie-manager2.py decode -c "session值" (-s "key值")
python2 flask-session-cookie-manager2.py encode -s "key值" -t "我们需要伪造的值"
python3 flask-session-cookie-manager3.py decode -c "session值" (-s "key值")
python3 flask-session-cookie-manager3.py encode -s "key值" -t "我们需要伪造的值"
伪造需要key,猜测为”LitCTF”
python3 flask-session-cookie-manager3.py encode -s 'LitCTF' -t '{"name":"admin"}'
# eyJuYW1lIjoiYWRtaW4ifQ.ZOBwTg.fCkX986VBbFDKMaipQ5QjHJAkQg
此时再访问/flag,将当前页面cookie改为伪造的值,刷新页面即可看到flag
flask session 伪造的更多相关文章
- HCTF2018-admin[flask session 伪造]
知识点:flask session 伪造 flask中session是存储在客户端cookie中的,也就是存储在本地.flask仅仅对数据进行了签名.众所周知的是,签名的作用是防篡改,而无法防止被读取 ...
- [原题复现]2018HCTF WEB admin(session伪造、unicode漏洞、条件竞争)
简介 原题复现:https://github.com/woadsl1234/HCTF2018_admin 考察知识点:session伪造.unicode漏洞.条件竞争 线上平台:https:// ...
- flask-admin章节四:flask session的使用
1. 关于session flask session可能很多人根本都没有使用过,倒是cookie大家可能使用得比较多.flask cookie使用起来比较简单,就两个函数,读取和设置. 具体使用方式如 ...
- Flask Session 详解
会话session ,允许你在不同请求 之间储存信息.这个对象相当于用密钥签名加密的 cookie ,即用户可以查看你的 cookie ,但是如果没有密钥就无法修改它. from flask impo ...
- Flask Session 使用和源码分析 —— (6)
基本使用 from flask import Flask, session, redirect, url_for, escape, request app = Flask(__name__) @app ...
- 11.4 Flask session,闪现
session 加密后放在用户浏览器的 cookie 中 于django 的自带session 不同,flask 的 session 需要导入 from flask import session 添加 ...
- flask session
flask session工作机制: 把敏感数据经过加密后放入到‘session’中,然后在把'session'存放到cookie中,下次请求的时候,再从浏览器发送过来的cookie中读取sessio ...
- 【Flask】Flask Session操作
### session:1. session的基本概念:session和cookie的作用有点类似,都是为了存储用户相关的信息.不同的是,cookie是存储在本地浏览器,session是一个思路.一个 ...
- flask session 使用默认配置修改session不生效问题
flask session相关 使用flask 默认sessio是存储在浏览器的cookie中,当请求返回时会将session写在cooKie中,但是在写的时候,默认并不是每次都重新写入 比如下例子 ...
- 六十一:Flask.Session之flask操作session
1.设置session:使用flask.session就可以操作字典,操作方式和操作字典一样:session['key']=value2.获取session,和获取字典的值一样:session['ke ...
随机推荐
- hadoop fs,hadoop dfs以及hdfs dfs区别
1.hadoop dfs 专门针对hdfs系统 2.hdfs dfs 和hadoop dfs,当使用hadoop dfs时会被转为hdfs dfs命令 3.hadoop fs 范围更广
- 火山引擎DataLeap:更强数据目录搜索能力,做到一步找数
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 随着数据管理变得更加复杂,元数据的重要性呈指数级增加. 如今,Data Catalog(数据目录)被看成是元数 ...
- 火山引擎工具技术分享:用 AI 完成数据挖掘,零门槛完成 SQL 撰写
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 文 / DataWind 团队封声 在使用 BI 工具的时候,经常遇到的问题是:"不会 SQL 怎么生产加工 ...
- 数组递增的判断【python实现】
有时候需要对某一组数组的数据进行判断是否 递增 的场景,比如我在开发一些体育动作场景下,某些肢体动作是需要持续朝着垂直方向向上变化,那么z轴的值是会累增的.同理,逆向考虑,递减就是它的对立面. 下面是 ...
- mysql--read only
问题背景: 1.在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-Slave主从关系设置 2.数据库参数文件默认是只读,重启数据库服务时 解决方法: 1.在my.cnf配置文件中添 ...
- 【Cpp】RTTI 机制原理解析
References Baidu Wiki C++中的RTTI机制详解 RTTI 推荐阅读: RTTI 原理 推荐阅读:C++中的RTTI机制 什么是RTTI机制? RTTI 是"Runti ...
- HDU - 1560:DNA sequence ( 迭代加深搜索基础题 )
Problem Description The twenty-first century is a biology-technology developing century. We know tha ...
- Codeforce:723A. The New Year: Meeting Friends (水题)
题意:有三个好朋友的家都住在x轴的不同坐标,问新年的时候三个朋友之间问候走的最短距离 max{(a,b,c)} - min{(a,b,c)} 即可 编译器由 VS2017 切换到VScode使用,纪念 ...
- [kuangbin] 专题7 线段树 题解 + 总结
[kuangbin] 专题7 线段树 题解 + 总结 kuangbin带你飞:点击进入新世界 kuangbin专题十二 基础DP1 题解+总结:https://www.cnblogs.com/RioT ...
- Educational Codeforces Round 109 (Rated for Div. 2) 个人补题记录(A~D,AB思维,C模拟构造,D题DP)
补题链接:Here 1525A. Potion-making (思维 [题意描述] 作为一个魔法师,现在我想配置一杯药物浓度为 \(k\%\) 的药水, 每次操作能进行添加: 一升水 一升药物精华 作 ...