从 Rebuild 企业级系统代码审计 SSRF 漏洞。

admin 2025年6月4日20:30:17评论20 views字数 2035阅读6分47秒阅读模式
从 Rebuild 企业级系统代码审计 SSRF 漏洞。

本篇为代码审计系列SSRF漏洞理论篇第五篇,看完本篇你将掌握关于SSRF漏洞的代码视角原理剖析、基础挖掘漏洞核心能力,看完如有技术错误欢迎评论区指正。

  • 漏洞原理

  • 业务视角DEMO代码

  • 漏洞校验DEMO代码

  • 实战审计案例

SSRF漏洞

漏洞原理

1.1业务原理视⻆

用户使用电脑浏览器操作企业Web站点某些功能的背后逻辑业务逻辑是在本地或远程加载资源,例如:加载图片资源等。企业用户使用协议请求正常链接进行加载,恶意用户利用远程加载功能用于探测其他资产,利用资产敏感信息进行下一步攻击活动。

1.2漏洞原理视⻆

SSRF其技战术是初始访问 | QT1190.021 SSRF,主要是在加载远程链接代码逻辑过程中未对加载路径进行校验,导致通过该漏洞利用应用主机向其它地址发起请求,导致数据泄露或攻击内网服务。

业务视角DEMO代码

常见SSRF漏洞涉及很多协议http、https、file、ftp、mailto、jar、netdoc;请求网络加载资源功能流程如下:    初始化网络连接    请求网络资源    获取响应内容

2.1HttpClient

HttpClient是Apache Jakarta Common下的子项目,可以用来提供高效的、最新的、功能丰富的支持HTTP协议的客户端编程工具包,并且它支持HTTP协议最新的版本和建议。HttpClient实现了HTTP1.0和HTTP1.1。也实现了HTTP全部的方法,如:GET, POST, PUT,DELETE, HEAD, OPTIONS, TRACE

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

2.2RestTemplate

RestTemplate是从Spring3.0开始支持的一个HTTP请求工具,它提供了常见的REST请求方案的模版,例如GET请求、POST请求、PUT请求等等。从名称上来看,是更针对RESTFUL风格API设计的。但通过他调用普通的HTTP接口也是可以的

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

 漏洞校验DEMO代码

针对业务代码多种方式做SSRF操作,主要是针对java中网络请求类进行关键词"搜索"。HttpRequest、Jsoup.connect、getForObject、RestTemplate、postForObject、httpclient、httpasyncclient、java.net.URLConnection、openConnection、java.net.HttpURLConnection、openStream、Socket、java.net.Socket、okhttp、OkHttpClient、newCall、ImageIO.read、javax.imageio.ImageIO、HttpRequest.get、jsoupJsoup.connectSSRF漏洞限制:为了修复 SSRF 漏洞并提高代码的安全性,可以采取以下措施:- 限制允许访问的域名或 IP使用白名单机制,只允许访问特定的域名或 IP 地址。例如,只允许访问https://www.baidu.com                    https://example.com。-验证 URL检查传入的`url`是否符合预期的格式(如必须以https://开头)使用正则表达式或 URL 解析库验证 URL。-使用安全的 RestTemplate 配置`RestTemplate`以限制其行为,例如禁用重定向或设置超时。

3.1RestTemplate限制重定向行为

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

REBUILD实战审计案例

SSRF为白盒审计,以REBUILD项目部署后从项目代码视角到漏洞定位及漏洞调试进行讲解。主要SSRF主要为路径可控即可

4.1项目部署

GitHub项目地址:https://github.com/getrebuild/rebuild/releases

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

可选择Jar包直接启动,然后下载源码进行分析

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

安装项目

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

4.2SSRF漏洞相关功能定位

观察POM.xml文件发现引用OKHttp依赖

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

OKHttp关键字定位功能代码-getHttpClient

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

继续使用OkHttpUtils定位搜索,所有OKHttp都会使用该包进行import

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

4.2.1第一处使用:OkHttpUtils

从 Rebuild 企业级系统代码审计 SSRF 漏洞。
从 Rebuild 企业级系统代码审计 SSRF 漏洞。

isExternalUrl()代码跟进,发现属于HTTP或者HTTPS就直接请求了

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

4.2.2第二处使用:OkHttpUtils

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

分析发现这里使用isExternalUrl()进行了SSRF防护,如果是HTTP或者HTTPS则不请求

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

4.3漏洞测试

4.3.1开启Web python服务

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

4.3.2直接构造参数进行HTTP请求加载

从 Rebuild 企业级系统代码审计 SSRF 漏洞。

END

内部学员投稿。

学代码审计就找闪石星曜CyberSecurity。

详情可点击下方链接了解。

2025版对一些课程进行了重构,丰富了知识点,并新增了一些实战课程!

《JavaWeb代码审计企业级项目实战》课程2.0升级版,新增10节实战课!依旧低至499,加量不加价!招生!

原文始发于微信公众号(闪石星曜CyberSecurity):从 Rebuild 企业级系统代码审计 SSRF 漏洞。

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月4日20:30:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   从 Rebuild 企业级系统代码审计 SSRF 漏洞。http://cn-sec.com/archives/4131556.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息