背景介绍
在安全研究中,发现并利用漏洞往往是一个具有挑战性的过程,需要耐心、毅力和创新思维。在本文中,骨哥将分享安全人员如何在不到 6 小时发现并利用一个关键的 XXE 漏洞,进而实现对第三方软件的全面 SSRF 攻击。
安全人员受到委托帮忙测试一款第三方软件,其后端为 Java + IIS,并暴露了一些 JSP 文件,为了尽快找到漏洞,安全人员首先进行了环境侦察,了解软件的整体架构和功能。
在传统的网络搜索中,并未找到该软件的样本,但在一个中文论坛,安全人员发现了一些 .iso 链接,在解压缩了一个.cab文件中的一些安装程序后,成功获取了所有面向公众的文件。
经过几个小时对JSP文件的大量搜索后,依然毫无进展,于是安全人员决定从Java导入META-INF目录,其中包含所有.classes,以便使用Jadx-UI进行反编译,在这里发现了大量包含 "@WebServlet" 注释的条目,从而为扩展攻击面提供了有力支撑。
由于需要针对众多 Servlet 生成 HTTP 请求,安全人员借助 ChatGPT 自动化了该过程,从而节省了大量时间与精力。
在分析众多 Servlet 时,安全人员发现了一个疑似 SSRF 的盲注漏洞,但随后注意到同一个 Servlet 中存在对 XML 内容类型的检查。
利用 Burp Scanner 进行 XXE 模糊测试,漏洞随即触发。
由于 Java 1.8 禁用了 file:// 或 netdoc,导致无法直接读取 web.config 文件获取密钥,但仍可通过 SSRF 盲注泄露 AWS 元数据。
通过 Shodan.io 发现大约 500-1000 家公司受到该漏洞影响,安全人员负责任地披露了相关漏洞,目前厂商已着手进行修复。
在本次攻击中,可以学习到以下几点经验:
1、坚持不懈和资源利用
成功发现漏洞往往需要耐心和取巧方法,在本案例中,安全人员通过多种途径获取软件样本,最终取得突破。
2、技术创新和自动化
巧妙利用工具和自动化技术,例如反编译 Java 类、借助 ChatGPT 生成请求,可以大幅提升效率和探索更多攻击面。
3、洞察细节和灵活转换
看似不起眼的细节,如 XML 内容类型检查,可能隐藏着关键的漏洞信息,在本案例中,正是通过对细节的洞察,让安全人员最终发现了漏洞的突破口。
你学废了么?
感谢阅读,如果觉得还不错的话,欢迎分享给更多喜爱的朋友~
====正文结束====