技术社区
安全培训
技术社群
积分商城
先知平台
漏洞库
历史记录
清空历史记录
相关的动态
相关的文章
相关的用户
相关的圈子
相关的话题
注册
登录
CISCN2025 半决赛 AWDP rng-assistant
Fir3proof
CTF
173浏览 · 2025-03-19 06:27
返回文档
题目结构
start.sh
通过
redis-cli config set save ""
来禁用redis的RDB 持久化。
default.py
和
math-v1.py
分别监听两个端口,处理来自flask的请求(实际上就是随机返回字符串)
Flask监听8000端口,nginx监听80端口作为反向代理。
默认会给非本地连接的HTTP请求添加
X-User-Role
为
guest
的请求头,可以自己传递
X-User-Role
头来绕过
●
用户注册
●
用户登录
●
用户提问
redis未授权访问
通过socket连接跟“大模型”通信,这里还设置了回答的缓存机制
提示词和对应的模型作为key,将“大模型”的回答缓存到redis中
注意到管理员可以修改模型通信端口
不难想到将这个端口修改为redis的端口6379,就可以直接未授权访问redis了。
格式化字符串漏洞
PromptTemplate#get_template
首先从redis寻找模板,找到则直接返回,否则在
static/prompts
下找
PromptTemplate.get_template(template_id).format(t=self)
这里把类对象self传入格式化字符串的上下文
/ask
路由调用了
generate_prompt
,但没有传
prompt_id
因此往redis增加键
prompt:math-v1
,获取模板时即可拿到我们设置的格式化字符串
flag是
from flag import FLAG
引入的
修复的话可以考虑两点:
●
禁止将端口修改为redis端口6379
●
PromptTemplate.get_template(template_id).format(t=self)
格式化字符串时不传入self
0
人收藏
0
人喜欢
转载
分享
0
条评论
某人
表情
可输入
255
字
评论
发布投稿
热门文章
1
从零掌握java内存马大全(基于LearnJavaMemshellFromZero复现重组)
2
突破网络限制,Merlin Agent助你轻松搭建跳板网络!
3
从白帽角度浅谈SRC业务威胁情报挖掘与实战
4
基于规则的流量加解密工具-CloudX
5
从0到1大模型MCP自动化漏洞挖掘实践
近期热点
一周
月份
季度
1
从零掌握java内存马大全(基于LearnJavaMemshellFromZero复现重组)
2
突破网络限制,Merlin Agent助你轻松搭建跳板网络!
3
从白帽角度浅谈SRC业务威胁情报挖掘与实战
4
基于规则的流量加解密工具-CloudX
5
从0到1大模型MCP自动化漏洞挖掘实践
暂无相关信息
暂无相关信息
优秀作者
1
T0daySeeker
贡献值:38700
2
一天
贡献值:24800
3
Yale
贡献值:18000
4
1674701160110592
贡献值:18000
5
1174735059082055
贡献值:16000
6
Loora1N
贡献值:13000
7
bkbqwq
贡献值:12800
8
手术刀
贡献值:11000
9
lufei
贡献值:11000
10
xsran
贡献值:10600
目录
题目结构
redis未授权访问
格式化字符串漏洞
转载
标题
作者:
你好
http://www.a.com/asdsabdas
文章
转载
自
复制到剪贴板