前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >虎符CTF 2022 Quest-Crash Writeup

虎符CTF 2022 Quest-Crash Writeup

作者头像
ek1ng
发布2022-08-10 21:51:42
3630
发布2022-08-10 21:51:42
举报
文章被收录于专栏:ek1ng的技术小站ek1ng的技术小站

虎符CTF 2022 Quest-Crash Writeup

加入协会后的第一场CTF,出了一个简单的misc,记录一下

题目给出了一个访问链接,仔细看了看网站的内容,大意是提供了一个有redis的存储的服务,并且给出系统信息和redis的配置,以及相关增删改查功能,然后让你crash这个服务。

getflag处提示redis-server is still running, pid: 7. ,Try harder!

题目给flag的要求是应该把redis服务打挂

用burpsuite然后intruder发包是不好使的,这点流量估计打不挂redis,要另辟蹊径应该

感觉更有可能是KEYS * 命令查询的时候会导致宕机

抓包分析 请求KEYS*命令的时候是以POST请求发送{“query”:”KEYS “}的形式查询的,用户输入内容跟在后面,这样的话可以构造查询语句

根据原理,redis单线程的keys指令会导致线程阻塞一段时间,线上服务会停顿,直到指令执行完毕,服务才能恢复。尝试了使用intruder增加2w条key,然后再用intruder一直发送KEYS*命令,redis还是很正常。

新思路,可能这个KEYS不会模糊匹配,比如说我要给h?ello这样的数据然后再用KEYS去匹配里面所有这样的数据,正在尝试中

这样会先把web服务打挂,而不是redis先挂,卡住了卡住了

正确思路,KEY查询会导致redis锁,这个时候发起大量GET,然后这些GET要等KEY查询结束后才会进来,这时候可以可以让redis压力突然增大,可能就会寄

设置50线程发送KEY*查询指令

设置100线程发送SET的指令,往redis中添加hxxxxello:hello的键值对

设置50线程发送GET指令查询

KEY指令是单线程的,会导致redis锁,然后不停的发KEY就会导致堵塞,排在队列后面的的SET和GET指令一下子涌入就会把redis击穿

按长度查看GETflag的指令,找到了返回flag的这次请求

代码语言:javascript
复制
HFCTF{f1abf147-e3c1-4cb9-a8cb-14ea1516db05}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年3月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 虎符CTF 2022 Quest-Crash Writeup
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档