Springboot未授权之httptrace和logfile的实战利用

admin 2024年3月5日00:11:33评论22 views字数 2229阅读7分25秒阅读模式
S声明:该公众号大部分文章来自作者日常学习笔记,未经授权,严禁转载,如需转载,联系洪椒攻防实验室公众号。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

0x00 前言

      相信大家在很多项目中,不论是渗透测试还是攻防演练中都遇到过很多springboot的actuator未授权,但是大家基本上都主要是关注env、heapdump,还有容易造成命令执行的、gateway、hystrix.stream、jolokia等等,但是最近发现有的人很容易忽略httptrace和logfile接口。

0x00 httptrace

       httptrace可以记录每一个HTTP请求的信息,包括请求路径、请求参数、响应状态、返回参数、请求耗时等信息。一般会随着SpringBoot Actuator未授权同时出现。Springboot未授权之httptrace和logfile的实战利用       这个漏洞虽然不能直接RCE或者是拿到密码,但是我们可以获取cookie信息和接口地址,直接拼接接口和cookie就能获取后台数据。话不多说,直接上案例。

0x01 案例1

       测试某系统发现一个springboot未授权。/env里面还有一些redis、nacos的连接信息,但都是内网,外网没有开端口,用拿到的密码去撞了下admin账号的密码也没成。

Springboot未授权之httptrace和logfile的实战利用

/actuator/mappings下还有很多接口,很幸运的发现了大部分接口可以未授权:

Springboot未授权之httptrace和logfile的实战利用
Springboot未授权之httptrace和logfile的实战利用
Springboot未授权之httptrace和logfile的实战利用

       找了一个小时,就是没有发现能查询到用户密码的接口,只能查询到账号信息,很多接口都是参数未知的,查询不到东西,只能想办法拿到管理员账号。账号添加接口跟密码重置接口需要太多参数,构造不出来,又陷入了僵局。 

       你们以为到这我就会放弃了吗?就会放弃了吗???不可能,绝对不可能!!!!既然没有账号,无法注册 但是可以使用某政务服务平台账号登陆(全国包括每个省市都有)。

Springboot未授权之httptrace和logfile的实战利用       使用XX政务服务平台登陆后会让你使用当前手机号设置一个密码,当时没多想直接设置了一个密码,也没截图进入系统后会跳转到一个无任何利用点的大屏首页(大屏信息太敏感了就不截图了):

Springboot未授权之httptrace和logfile的实战利用

       进入系统后发现加载了这么几个接口:

Springboot未授权之httptrace和logfile的实战利用

       getuser? 这不是一个活脱脱的越权吗?(接口本身就是未授权的) 直接查看id为2的管理员信息,没有什么有用的信息。

Springboot未授权之httptrace和logfile的实战利用

       加载自己的信息,能看到自己的密码,但是无法解密

Springboot未授权之httptrace和logfile的实战利用

        尝试进行重置密码,看是否有漏洞,结果是无法自定义重置密码??

Springboot未授权之httptrace和logfile的实战利用

      咦?我刚刚是不是设置过密码?试想一下 能不能也给别人设置密码呢?往上翻burp历史,找到了自己设置密码的接口:

Springboot未授权之httptrace和logfile的实战利用

      能看到直接是设置自己密码,只需要有Access_token即可。那么我们怎么拿到Access_token呢?嘿嘿嘿,师傅们不要忘了,spingboot还有个接口,能看到所有的http请求信息,包括session、cookie等信息,那就是/trace,这个系统是/httptrace

Springboot未授权之httptrace和logfile的实战利用

       能看到刚刚自己的token信息,那我们是不是也能拿到别人或者管理员的token呢?往下翻就看到了别人的token,看一下信息:

Springboot未授权之httptrace和logfile的实战利用

      重置密码,登录系统:

Springboot未授权之httptrace和logfile的实战利用

权限不够高,如果管理员上线了,我们就肯定能通过/httptrace接口拿到他的token进行密码重置
         PS:这里特意测试了一下,账号退出后的token仍然有好几个小时的有效期。           

       但是/httptrace接口是有限制的,如果业务量大,存的访问请求可能只有几分钟,如果业务量不大 可以存半天甚至好几天,特意用未授权的log日志接口查看了管理员的上线频率,蛮高的

Springboot未授权之httptrace和logfile的实战利用

        所以接下来的操作写个定时任务去请求/httptrace接口等待管理员上线,获取token,重置密码!

0x02 案例2

      最近的红队评估项目中遇到了某单位的一个nacos,存在CVE-2021-29441 Nacos权限认证绕过漏洞,当开启 Nacos 权限认证(nacos.core.auth.enabled=true)后,配置文件中存在默认值:

nacos.core.auth.server.identity.key=serverIdentity
nacos.core.auth.server.identity.value=security

     该硬编码导致攻击者可以构造携带该 key 和 value 的请求,从而绕过权限认证。

Springboot未授权之httptrace和logfile的实战利用

     直接添加账户,但是该账户是没有权限,看不到任何配置的。

Springboot未授权之httptrace和logfile的实战利用      这时候就想到了,默认配置下的nacos,除了存在认证绕过漏洞,还存在spring的Actuator未授权漏洞,如果存在env接口,大概率是能够从heapdump里得到nacos的jwt密钥的,然后进行构造正确的token。还有一个接口就是/httptrace

Springboot未授权之httptrace和logfile的实战利用

     跟上面一样的,通过获取token信息,

Springboot未授权之httptrace和logfile的实战利用

      然后替换accessToken登录系统:

Springboot未授权之httptrace和logfile的实战利用

0x03 logfile

      Actuator未授权中的/logfile也是比较容易被忽略的接口,它记录了所有请求的日志。Springboot未授权之httptrace和logfile的实战利用

Springboot未授权之httptrace和logfile的实战利用

很多时候可以从logfile里面找到泄露的账号密码信息。

0x04 小结

       httptrace和logfile一般来说不会同时出现,每个站点出现的接口都不一样,所以导致大家很可能会忽略这两个接口,师傅们以后可以多留意一下。

原文始发于微信公众号(洪椒攻防实验室):Springboot未授权之httptrace和logfile的实战利用

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月5日00:11:33
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Springboot未授权之httptrace和logfile的实战利用http://cn-sec.com/archives/2545773.html

发表评论

匿名网友 填写信息