Springboot未授权之httptrace和logfile的实战利用
2024-4-8 23:14:33 Author: mp.weixin.qq.com(查看原文) 阅读量:31 收藏

S声明:该公众号大部分文章来自作者日常学习笔记,未经授权,严禁转载,如需转载,联系洪椒攻防实验室公众号。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

0x00 前言

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

0x00 httptrace

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

0x01 案例1

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

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

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

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

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

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

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

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

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

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

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

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

      重置密码,登录系统:

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

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

        所以接下来的操作写个定时任务去请求/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 的请求,从而绕过权限认证。

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

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

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

      然后替换accessToken登录系统:

0x03 logfile

      Actuator未授权中的/logfile也是比较容易被忽略的接口,它记录了所有请求的日志。

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

0x04 小结

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


如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放

往期回顾

dom-xss精选文章

年度精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips


文章来源: https://mp.weixin.qq.com/s?__biz=MzIzMTIzNTM0MA==&mid=2247494062&idx=1&sn=25c3bcd4bcee3be9a1a64ff55b64e78b&chksm=e8a5e3cddfd26adb5d1537b27756281d6eac33c8e51d1cbace2a99233a9a459436ee60cb4f5e&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh