---
typora-copy-images-to: img
---
## 题目信息:
* 题目名称: a_msg_board_plus_
* 预估难度:中等
## 题目描述:
```
这是个环境为 Ubuntu, Python 3.6 、还带了乐色消息和嗨客识别的爱马杀鸡宝德加
```
## 题目考点:
```
1. Jinja2模板注入(SSTI)
2. Flask session机制
3. TensorFlow模型审计(相比区域赛添加新步骤)
```
## 思路简述:
通过留言板的模版注入获取到服务器配置信息,通过配置中的secret_key伪造session成为管理员,再利用站点设置选项的TensorFlow相关设置,取得模型内的后门,读取 `/flag` 文件。~~论不要随便乱跑网上下载来的模型~~
## 题目提示(难度从低到高):
1. SSTI
2. Flask Session,注意时间戳
3. 出题人也不知道TensorFlow模型是从哪来的
## 原始 flag 及更新命令:
```shell
# 原始 flag
flag{flag_test}
# ..
# 更新 flag 命令
echo 'flag{85c2a01a-55f7-442a-8712-3f6908e1463a}' > /flag
```
## 题目环境:
```
1. ubuntu 14.04 LTS(更新到最新)
2. Python 3.6
```
## 题目writeup:
1. 进入网站,为一个留言板服务,并且带有机器人过滤机制,页面底部有一个管理员入口但无法进入。
2. 留言的作者存在SSTI,但有位数限制不能使用长payload
![1562314188392](img/1562314188392.png)
3. 使用`{{config}}`获取服务器配置信息,其中泄露了`SECRET_KEY`
![1556719148044](img/1556719148044.png)
4. 观察Flask的session(Flask的session存于cookies并且用`SECRET_KEY`签名)`{"admin":false,"name":"{{config}}"}`,可断定服务器通过session判断是否有管理员权限。
5. 通过前面获取到的`SECRET_KEY`来伪造`{"admin":true}`的session(本地生成一个Flask实例,通过该实例生成合法session,过程见gen_cookie.py)
(后续步骤为相对于区域赛修改部分)
6. 登录管理员后可以进入`/admin`后台,其中后台提供了网站源码和TensorFlow模型上传,并且从网页的注释和源码中可得知网站可以下载当前使用的模型。![1562304489115](img/1562304489115.png)
![1562304584548](img/1562304584548.png)
7. 审计Web逻辑和TensorFlow模型(使用TensorBoard浏览模型二进制文件)可以发现当输入的字符串字符总和为1024时会触发读取`/flag`的后门(模型生成代码可参考`model_init.py`,题目已包含生成好的二进制模型)
```
Tensorboard可视化
def init(model_path):
new_sess = tf.Session()
meta_file = model_path + ".meta"
model = model_path
saver = tf.train.import_meta_graph(meta_file)
saver.restore(new_sess, model)
return new_sess
sess = init('detection_model/detection')
writer = tf.summary.FileWriter("./log", sess.graph)
然后在命令行执行tensorboard --logdir ./log
```
![1562307817821](img/1562307817821.png)
<center>将评论转换为特征值(考虑比赛环境,简化为一个数字,由字符串总和得)</center>
![1562307493848](img/1562307493848.png)
<center>当特征值为1024时触发flag分支</center>
![1562307600460](img/1562307600460.png)
<center>`/flag`字符串节点,作为ReadFile参数</center>
![1562307636446](img/1562307636446.png)
<center>ReadFile节点</center>
8. 因此我们可以构造一个总和1024的字符串,读取出flag(比如`aaaaaabxCZC`)。
![1562307755402](img/1562307755402.png)
9. 考虑到awd防御环节,网站提供了修改模型的功能,选手只需要将flag节点去除,将模型上传生效即可。
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 3、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 全国大学生信息安全竞赛决赛web4,SSTI+TensorFlow模型.zip
资源推荐
资源详情
资源评论
收起资源包目录
全国大学生信息安全竞赛决赛web4,SSTI+TensorFlow模型.zip (62个子文件)
code_20105
model_init.py 776B
gen_cookie.py 1002B
exp.py 964B
img
1562314188392.png 16KB
1562307493848.png 139KB
1562307491683.png 139KB
1556719528291.png 32KB
1562307636446.png 85KB
1562307600460.png 92KB
1562307755402.png 15KB
1556720832334.png 52KB
1562304489115.png 42KB
1556719148044.png 57KB
1562304584548.png 52KB
1556719049089.png 13KB
1562307817821.png 21KB
源码
docker
sources.list 1KB
docker-compose.yml 184B
source
tf
detection_model
detection.meta 7KB
detection.index 141B
detection.data-00000-of-00001 18B
load.py 903B
__pycache__
load.cpython-36.pyc 1KB
app.pyc 3KB
flag 28B
app.py 5KB
templates
admin.html 4KB
index.html 4KB
wsgi.py 94B
temp.zip 7KB
data.pyc 1KB
data.py 1KB
static
js
ie10-viewport-bug-workaround.js 641B
bootstrap.min.js 36KB
css
bootstrap.min.css 118KB
ie10-viewport-bug-workaround.css 433B
blog.css 2KB
start.sh 70B
Dockerfile 983B
source
tf
detection_model
detection.meta 7KB
detection.index 141B
detection.data-00000-of-00001 18B
load.py 903B
__pycache__
load.cpython-36.pyc 1KB
app.pyc 3KB
flag 28B
app.py 5KB
templates
admin.html 4KB
index.html 4KB
wsgi.py 94B
temp.zip 7KB
data.pyc 1KB
data.py 1KB
__pycache__
data.cpython-36.pyc 1KB
app.cpython-36.pyc 5KB
static
js
ie10-viewport-bug-workaround.js 641B
bootstrap.min.js 36KB
css
bootstrap.min.css 118KB
ie10-viewport-bug-workaround.css 433B
blog.css 2KB
check.py 2KB
README.md 4KB
共 62 条
- 1
资源评论
土豆片片
- 粉丝: 1570
- 资源: 5636
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 3层独栋别墅图纸编号D093-三层-13.90&20.70米-施工图.dwg
- IIS多站点管理工具,可支持同时运行多个IIS服务
- 装备换元宝-3.txt
- 三层别墅图纸编号D092-三层-17.70&19.65米-建施图.dwg
- 三层别墅图纸编号D091-三层-09.30&11.70米-建施图.dwg
- 三层别墅图纸编号D090-三层-12.00&12.70米-施工图.dwg
- 3层独栋别墅图纸编号D089-三层-11.50&14.50米- 施工图.dwg
- 3层独栋别墅建筑高度9.38米D088-三层-11.86&09.26米-施工图.dwg
- 三层别墅图纸编号D087-三层-22.00&10.50米-施工图.dwg
- maven-resources-production java.lang.NegativeArraySizeException
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功