若依管理系统part1

信息收集

首先,我们要做的是收集基于若依CMS的系统

一、若依特征

绿若依:icon_hash=”706913071”

常见登录页面:

蓝若依:icon_hash=” -1231872293”

常见登录页面:

也可以通过标题收集:fofa语法:title=”登录若依管理系统”

也可以通过内容收集:fofa语法:body=”ruoyi.vip”

若依框架通常使用的组件有springboot、webpack、shiro、druid、swagger、redis、zookeeper、mysql等

二.常见漏洞

一,未授权访问

常见为绿若依,绿若依一般都会常用webpack组件(可以使用Packer-Fuzzer打包),F12查看js文件,找到一个名为appxxxxxx.js的文件,搜索baseurl,找到api路径

常见的未授权有druid、springboot、swagger

在api后面拼接对应路径

二,druid目录探测

如果配置不当可能不需要druid密码即可直接访问druid

1./druid/login.html

收集的网址直接拼接,如果成功,就说明存在druid后台

若依存在默认的api,druid的路径可能在api下

1./prod-api/druid/login.html

2./dev-api/druid/login.html

默认路径探测3-开发自定义

在这个情况下,直接扫描是没有任何用处的,通常的思路是首先浅浅登录错误一次,查看数据包的目录

默认路径探测总结

1
2
3
4
5
6
7
8
9
10
/druid/index.html
/druid/login.html
/prod-api/druid/login.html
/prod-api/druid/index.html
/dev-api/druid/login.html
/dev-api/druid/index.html
/api/druid/login.html
/api/druid/index.html
/admin/druid/login.html
/admin-api/druid/login.html

druid弱口令爆破

通常druid不需要验证码就可以进行爆破(请自行收集字典)

常见用户名

1
2
3
4
admin
druid
ruoyi
...

常见密码

1
2
3
4
123456
admin
druid
...

总的来说爆破最重要的还是一本好的字典

三.Druid登录后利用

在我们无法登录若依的时候,如果我们获取到了druid连接池,我们可以尝试扩大危害

进入druid后我们重点关注的是/druid/weburi.html/druid/websession.html

Druid到获取未授权路由

在这我们可以获得创建了连接池的URI

在这里面如果开发在开发的时候没做权限校验,我们可以获得未授权的API接口

Druid到敏感信息泄露

有时候可能会在路径中翻到上传的文件(如PDF后缀)

访问的话,会发现泄露了大量的敏感信息

Druid到登录系统

/druid/websession.html路径下,我们有时候可以看到已经连接的SESSIONID

我们切到登录处在登录的同时替换掉SESSIONID有可能可以登录系统

四.swagger未授权

除了Druid之外,其实和Swagger组件是一起的

同理也存在自定义路径的可能性需要收集,如果Swagger组件没修改的话,查看的效果和druid泄露的效果类似

可以通过接口文档进行下一步操作,如果发现大量接口可以使用工具进行自动化测试,如swagger-hack

这边提供部分路径(建议确定是否是自定义路径之后进行dirsearche扫描)

1
2
3
/swagger-ui/index.html
/prod-api/swagger-ui/index.html
/api/swagger-ui/index.html

五.springboot未授权

http://ip/baseurl/actuator

重点关注/actuator/heapdump路径

访问下载后使用工具对其进行分析可获得大量敏感信息

六.redis未授权

若依系统通常会用到mysql和redis数据库,可以尝试redis未授权访问,或者对数据库进行弱口令爆破

七.任意用户注册(较少见)

通常我们遇到的ruoyi系统如下

注意URL为

1
https://xxxxx.edu.cn/login?redirect=%2Findex

也可能遇到其他二改系统的路径为

1
https://xxxxx.edu.cn/{任意内容}/login?redirect=%2Findex

大部分使用ruoyi框架的人都会忽略掉前端的注册界面(后端可能删了)
因此我们拼接/registe

八.shiro反序列化

若依登录界面通常都采用了rememberMe字段,如果存在默认的key值,则可以进一步利用,实现shiro反序列化

九.未授权文件上传

常见于绿若依系统,F12查找js中的app.js,搜索uploadurl

我尝试了一下,一般都有鉴权,如果遇到没有鉴权的可以传文件拿shell。