记录一下ssti的学习

SSTI靶场搭建

拉取docker镜像

1
2
cd /etc/docker
vim docker.json//用国内的镜像源,如下编辑

image-20240517210458089

image-20240517210838210

生成容器

自动探测

1
sudo docker run -p 18022:22 -p 18080:80 -i -t mcc0624/flask_ssti:last bash -c '/etc/rc.local;bin/bash'

查看所有容器

1
docker ps -a

image-20240517211137326

关闭容器

1
docker stop <CONTAINER ID>

开启容器

1
docker start <CONTAINER ID>

管理网站

自动探测

1
2
3
4
5
靶场页面
http://IP:18080

SSH
用户名root 密码P@ssw0rd

python venv环境搭建

安装venv

1
2
3
python --version
apt update
apt instal python3.11 -venv

执行flask1路径下的python

image-20240517214516688

flask应用介绍及搭建:

Python flask 变量及方法

flask模板以及介绍

image-20240528110649342

render_template

image-20240528110926037

image-20240528111641896

image-20240528111709997

render_template_string

image-20240528112206689

模板注入漏洞介绍

Flask漏洞

image-20240528112800291

正常的flask代码,先将str的值传给html代码,再让render_template_string展现这个html页面

image-20240528113007955

存在漏洞的代码,这里是先解析str的值,在将解析后的值传给html页面

image-20240528113612582

image-20240528113858774

判断是什么模板注入(ssti)类型

image-20240528114615197

image-20240528114712725

image-20240528114751655

继承关系和魔术方法(重要)

继承关系

​ 父类和子类

image-20240528115135972