Flask 造成的 Session 安全问题

在 Flask 中使用 Session

使用下面的代码设置一个 Session,代码里的secret_key是很重要的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from flask import Flask, session

app = Flask(__name__)
app.secret_key = 'SCFmkpovdDVCJPO21cvcds'

@app.route('/')
def set_session():
if 'name' in session:
name = session['name']
if name == "anonymous":
return 'Session 已设置,你是 anonymous'
elif name == 'admin':
return 'Session 已设置,你是 admin'
else:
return 'Session 已设置,你是 ???'
session['name'] = 'anonymous'
return 'Session 未设置,现已设置'

if __name__ == '__main__':
app.run(debug=False, port=8080)
阅读全文 »

Flask 框架的 XSS 和 SSTI 漏洞

Flask 是什么

Flask 是一个使用 Python 编写的轻量级 Web 应用框架,模板引擎使用 Jinja2

Flask 的基本使用

安装 Flask 库

1
python3 -m pip install flask

第一个 Hello, world!

1
2
3
4
5
6
7
8
9
10
11
from flask import Flask

app = Flask(__name__)

@app.route('/')
def Hello_world():
return 'Hello, world!'

if __name__ == '__main__':
# 若在 IDE 里调试,把 debug 设置为 False
app.run(debug=True, port=8080)
阅读全文 »

记一道简单的 PHP 反序列化

题目来源与环境搭建

题目来源

second-xupt-ctf pop

环境搭建

  1. 使用 Docker 和 Docker Compose 搭建,Docker 使用教程见 Docker — 从入门到实践

    关于 Docker 的一个很不错的视频(快速入门)

    https://www.bilibili.com/video/BV1s54y1n7Ev/

  2. 修改docker-compose.yml的端口配置
    1
    vim docker-compose.yml

    把 ports 里的 8085 修改成你想要的端口

  3. 使用以下命令构建 Docker 镜像

    进入题目根目录下运行命令(可先对 Docker 进行换源)

    1
    docker build -t pop .
  4. 使用以下的命令创建运行容器

    进入题目根目录下运行命令

    1
    docker-compose up -d
阅读全文 »

本文介绍如何在 Ubuntu 下安装 LAMP 和 LNMP 环境

简介

LAMP:即 Liunx 下 Apache,MySQL,PHP 环境
LNMP:即 Linux 下 Nginx,MySQL,PHP 环境

搭建环境:Ubuntu 20.04 LTS

若无特殊说明,请使用 root 身份来运行本文中的命令,本文只介绍基本的环境搭建,不包括网站的搭建和管理

阅读全文 »