flask session安全问题

Posted 中国白客联盟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了flask session安全问题相关的知识,希望对你有一定的参考价值。



首先我们来了解下flask session长啥样,长下面这样


flask session安全问题


那我们就可以把session理解为cookie中名称为session的一对键值,且是加密的。


session加密过程如下


flask session安全问题

(上图来自于P神博客)


也就是说,我们可以去查看session中分段的内容,却无法对其进行修改。


如我们有如下demo模拟用户登录

flask session安全问题


访问首页如下图


flask session安全问题

访问login模拟登录test用户

flask session安全问题

test其对应的session如下


eyJ1c2VybmFtZSI6InRlc3QifQ.XC7SPg.sV9_ueBW2e4kCoY0sxh14dxsQiY

flask session安全问题


对分段进行base64解码,如第一段为

flask session安全问题


如果我们尝试修改第一段,把test修改为admin试试

能够发现session失效了,说明直接修改是不行的,因为第三段有签名校验


flask session安全问题


那我们这次的安全问题实际上是基于secret_key泄漏的情况下,来进行如用户伪造


我们编写如下demo

flask session安全问题


其中secret_key是泄漏出来的密钥

运行

尝试替换第一次的登录页面,发现成功伪造admin用户



凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数凑字数


以上是关于flask session安全问题的主要内容,如果未能解决你的问题,请参考以下文章

Flask教程3-session:安全的加密Cookie

Flask框架—session组件详解

Flask中session实现原理

flask基础之session原理详解

flask中的session

flask 框架之cookie,session