• 一次Actuator未授权访问利用


    目录

    介绍

    复现

     Actuator目录下可能利用泄漏信息的路径

    利用

    思考

    处理意见


    介绍

    事先得到同意对朋友公司的网站进行了扫描,扫出了一个Actuator未授权,于是开始复现并记录一下,最后获取了redis的密码

    复现

    这里是请求包

     响应包成功返回了200,并且返回了里面的数据,证明路径api下的actuator是可以访问的

     对api/actuator/ 这个路径进行访问

    可以看到返回了很多信息

     

     Actuator目录下可能利用泄漏信息的路径

    1. /dump - 显示线程转储(包括堆栈跟踪)
    2. /autoconfig - 显示自动配置报告
    3. /configprops - 显示配置属性
    4. /trace - 显示最后几条HTTP消息(可能包含会话标识符)
    5. /logfile - 输出日志文件的内容
    6. /shutdown - 关闭应用程序
    7. /info - 显示应用信息
    8. /metrics - 显示当前应用的’指标’信息
    9. /health - 显示应用程序的健康指标
    10. /beans - 显示Spring Beans的完整列表
    11. /mappings - 显示所有MVC控制器映射
    12. /env - 提供对配置环境的访问
    13. /restart - 重新启动应用程序

    利用

    接着访问下actuator下的env

    可以看到有很多系统的配置信息

     这里我们就找一下有用的东西,直接搜索******看看有哪些密码或者敏感信息被加密了

     可以看到被加密的数据有redis的密码

    接下来直接访问api/actuator/heapdump这个路径,对heapdump这个文件进行下载到本地

     通过jdk自带的工具打开这个heapdump文件,工具在jdk目录下jdk/bin/jvisualvm.exe

    这里记得改一下文件类型

    打开后会显示一些基本信息,不过都是没用的,咱们的最终目标是获取redis的密码。

    点击OQL控制台

     输入 

    select s from java.util.LinkedHashMap$Entry s where /spring.redis.password/.test(s.key)

    进行查询

    这里的spring.redis.password为刚才在env下看到的存放redis密码的索引也就是

    同理,除了可以对spring.redis.password进行查询,也可以对security.oauth2.client.client-secretsun.java.command的值进行查询

     点击进入,查看详情

    思考

    看到这个redis的密码后在思考一个问题,为什么密码的开头要用大写,redis的密码没有要求强制设置复杂度,甚至可以设置成123456或者无密码。所以可以尝试通过此密码对对方服务器上所有开放的可以登录的服务进行撞库,也可以尝试登录后台管理员。

    处理意见

    1.因为这些明文密码都是通过heapdump这个文件来获取的,可以禁止对heapdump的下载

    2. 设置单独的 Actuator 管理端口并配置不对外网开放

  • 相关阅读:
    Linux的用户管理
    springMVC第一天
    树莓派的的串口通信协议
    【人民币识别】人民币序列号识别【含GUI Matlab源码 908期】
    金蝶云星空的网络控制设置
    TL1010 汽车内饰材料燃烧性能
    新增表同步测试
    Springboot的自动装配原理和文件上传FastDFS
    Netty源码分析:服务器启动跟踪,nioeventloop 剖析,accept、read 事件跟踪
    Java反编译工具 JD-GUI安装使用
  • 原文地址:https://blog.csdn.net/xhscxj/article/details/128028286