---
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节点去除,将模型上传生效即可。
没有合适的资源?快使用搜索试试~ 我知道了~
全国大学生信息安全竞赛决赛web4,SSTI+TensorFlow模型.zip
共62个文件
png:13个
py:12个
pyc:8个
需积分: 5 0 下载量 161 浏览量
2024-01-15
16:45:10
上传
评论
收藏 808KB ZIP 举报
温馨提示
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
资源推荐
资源详情
资源评论
收起资源包目录
全国大学生信息安全竞赛决赛web4,SSTI+TensorFlow模型.zip (62个子文件)
ABC-code
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
资源评论
普通的一个普通猿
- 粉丝: 1462
- 资源: 1761
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功