hexo

2021-KCTF-第三题『统一门派』分析

此次2021 KCTF并未参与,朋友说出了一道web题,所以来帮忙看一下。
访问站点,发现是开源的若依管理系统。
官网地址:http://www.ruoyi.vip/
notion image
弱口令试了几个,没有结果,扫描了一下端口发现存在6379端口(redis)。
使用redis-cli客户端连接,未授权访问
notion image
百度搜索了一下rouyi-vue版本是前后端分离的,采用了Redis,JWT等技术。
其登录请求主体
登录过程中,主要发生了以下几件事:
  • 首先根据uuid获取redis中的验证码并对请求的验证码做验证,如果验证码校验通过,就会对账号密码进行校验。
  • 用户名和密码校验成功,则使用token作为key将用户信息保存到redis中。
  • 使用JWT对token签名并返回给用户。
因为redis可控,所以想着本地搭建一个rouyi系统,登录成功后查看redis中的token信息,并将它复制到靶机中,假设secret密钥是默认的情况下,可以直接用本地生成的JWT签名Authorization登录靶机。

解法一

本地docker搭建一个rouyi-vue
本地登录后拿到Admin-Token和Authorization
notion image
查看redis中的token
notion image
然后我们需要在靶机的redis中创建此token
添加完毕后去给靶机添加Cookie,名为Admin-Token,值为本地测试时的Admin-Token,添加完刷新页面就进入了后台
notion image

解法二

利用Redis主从复制可以直接拿shell
https://github.com/Ridter/redis-rce
然后莫名其妙上了别人的车,root权限
notion image

解法三

这个就是直接非预期了
notion image
某网络安全培训平台隐式SQL注入漏洞挖掘历程使用wifipumpkin3快速搭建钓鱼WIFI