记一次曲折的EDU漏洞挖掘

1.挖掘思路

1
/xx1-server/下actuator端点泄露--heapdump转储文件获取用户名密码-js中发现xx2和xx3路径中actuator端点泄露-尝试RCE(失败)-swagger-ui信息泄露-编写poc(批量)

2./xx1-server/下actuator端点泄露

对某edu进行了一波信息收集,发现某系统下调用了/xx1-server/的服务

image-20230528104948244

尝试访问此路径,发现springboot信息

image-20230528105632715

尝试访问actuator,发现包括heapdump以及jolokia诸多端点泄露

image-20230528085052307

先下载heapdump文件查看

image-20230528090656170

第一个heapdump利用工具无结果:

image-20230528085148762

第二个heapdump利用工具通过搜索关键字username和password找到用户名密码:

image-20230528085222178

image-20230528085314713

还有内网数据库链接信息以及一个类似学号的用户名:

image-20230528085641051

heapdump泄露的用户名密码较复杂,此系统还有一个平台可以登陆,尝试登陆提示失败

3.js中发现xx2和xx3下actuator端点泄露

image-20230528084837797

/xx2-server/无法访问,但是/xx3-server/可以访问,提示401

image-20230528090240008

尝试使用/xx1-server/中heapdump泄露的用户名密码进行登陆,登陆成功,同样存在heapdump

image-20230528090442258

尝试下载打开,发现没有什么有价值的东西

image-20230528090627520

4.尝试RCE(失败,原因太菜)

actuator下还存在jolokia以及jolokia/list,尝试jolokia Realm JNDI RCE

image-20230528091312533

image-20230528091350595

RCE以失败告终,接收到了目标请求,但是没有反应,高版本的JDK也试(env获取到的目标是jdk1.8),均失败,(github中的py脚本是get型的,在这里是登陆认证之后的,需要简单修改一下脚本,携带着header中的Authorization进行POST请求发包)。至于为什么不成功,可能””态势感知””或者”waf”知道

image-20230528091551053

5.事件型到”通用型”

继续查看xxx.js文件,发现一行被注释的URL,指向的是另外一个学校的/xx3-server/,尝试利用title关键字进行搜索:

image-20230528094345584

结果不是很多,尝试用js文件搜索,这次结果还可以

image-20230528094823835

发现均存在xxx.js文件,并且xxx.js文件中基本都发现路径xx1-server、xx2-server以及xx3-server,有的可能只有xx1和xx2路径,尝试访问xx1,不需要密码,xx2同样无法访问,访问到xx3-server的时候,同样出现401,第一个学校中xx1-server下heapdump中获取到的用户名密码登陆到了第一个学校的/xx3-server/,再加上貌似是个通用型的服务,假如是通用型用户名密码,尝试用户名密码登陆第二个学校的/xx3-server/,登陆成功,验证了第一个猜想。

image-20230528113929392

spring常见的还有swagger-ui以及v2/api-docs,尝试访问,均存在(后面会尝试通过接口获取敏感信息):

image-20230528114140697

image-20230528114223086

尝试访问其它学校,看看是不是同样的可以用户名密码登陆

是这样的,第三个学校同样xx1-server直接访问,但是actuator下无特殊端点泄露,xx2-server无法访问,xx3-server提示401登陆验证,使用泄露的用户名密码尝试登陆,登陆成功,存在swagger-ui以及v2/api-docs

image-20230528114624710

尝试访问第四个学校,xxx.js同样存在,但是多了一个/xx4-server/路径,同样xx1-server直接访问,但是actuator下无特殊端点泄露,xx2-server无法访问,xx3-server提示401登陆验证,使用泄露的用户名密码尝试登陆,登陆成功,存在swagger-ui以及v2/api-docs,尝试访问/xx4-server/,actuator下无特殊端点泄露。

第五个学校同样如此

6.swagger-ui信息泄露

在swagger-ui列出的接口信息中,发现用户管理接口

image-20230528092702211

image-20230528092813123

貌似没用到token什么的进行鉴权,尝试访问可获取到用户敏感信息

image-20230528092904122

用同样的方法访问其余站点,试了几个之后均存在敏感信息泄露

编写afrog https://github.com/zan8in/afrog 的通用POC,批量刷一下:

首先服务地址是在xxx.js文件中泄露的,先判断是否存在xxx.js,若不存在就跳过,其次是假如开启登陆认证的话,请求头会要求Authorization,内容是第一次heapdump泄露的username:password进行base64编码后的结果

image-20230528103059005

结果如下:(并未进行敏感操作)

image-20230528103756938

然后可以判断一下actuator端点存在多少,有61个结果,去重之后除去非edu的大概也有几十个吧,包括swagger-ui可以访问的也有不少:

image-20230528134214254

打包提交:

image-20230528140456573

image-20230528140718462