当前位置: 首页 > news >正文

CNVD 实战笔记:通过 Java 代码审计挖掘 SSRF 漏洞

CNVD 实战笔记:通过 Java 代码审计挖掘 SSRF 漏洞

首先通过搜索关键词来寻找cms中ssrf的使用

/*** 审计的函数* 1. URL* 2. HttpClient* 3. OkHttpClient* 4. HttpURLConnection* 5. Socket* 6. ImageIO* 7. DriverManager.getConnection* 8. SimpleDriverDataSource.getConnection*/

当搜索到OkHttpClient时发现了存在一个工具类调用封装了okhttp3 ,不过只主要支持http协议。接着向上找调用查看url变量是否可控

image-20251011063008623

这里就只记录发现漏洞的一条线,实战需要每条都寻找,向上寻找到了fetchRemoteFile调用

image-20251011081354076

一直找到了路由处,发现有利用的可能。查看权限校验这还是一个未授权的接口,权限具体过程就不细说了

image-20251011081511653

可以看到此处逻辑,会获取type参数,然后isExternalUrl校验这是否是一个外部url,如果是外部url直接报错

image-20251011081550384

校验的逻辑非常简单,判断是否以http://,https://开头,相当于做了过滤

image-20251011081836920

通过校验后便会在url后面加上拼接上/index.json作为参数传入。我们先接着看后面的代码

public static JSON fetchRemoteJson(String fileUrl) throws RebuildException {String content = fetchRemoteFile(fileUrl);if (JSONUtils.wellFormat(content)) {return (JSON) JSON.parse(content);}throw new RebuildException("Unable to read data from RB-Store");
}

接着来看fetchRemoteFile,判断fileUrl是不是以http开头,如果是以http开头则直接调用get获取其内容,如果不是http开头,会拼接一些乱七八糟的url导致无法利用。可是前面对外部的url已经进行了校验。

不过在这停留想了一段时间后发现了,这里判断是的http,但是上面校验的是http://,https://。这就导致了前面的校验和后面的判断不统一(很多漏洞的原理),存在有绕过的可能,于是我便尝试以http:/,https:/行动

image-20251011082144007

写了测试类后发现是可以办到的,okhttp3库能够解析http:/ ,https:/

image-20251011082907603

接着还需要解决url后面拼接/index.json,这个的处理方法其实还是蛮多的,这里选择用参数抵消掉后面拼接的index.json让其成为一个无效参数带过去即可

例如:http://10.82.189.40:18080/setup/load-index?type=http:/127.0.0.1:80/2.txt?x=

可以看到成功的获取了我放在服务器的内容,但由于之后会进行json解析导致只有json格式才会回显。相当于就是无回显ssrf,能让其访问任意的http资源,但是无回显,危害程度就比较低了。不过算是一次实战经验。

image-20251011083402322

http://www.zskr.cn/news/18554.html

相关文章:

  • 关系数据库MySQL的常用基础命令详解实战 - 指南
  • 金蝶KIS账套编辑器v3.0/金蝶KIS降级工具
  • 深度解析社区运营中的技巧实践:从材料驱动到智能优化的全面探索
  • 【项目-1】如何根据霍尔信号与反电动势波形关系准确推导出绕组通电顺序?
  • 7-Zip下载安装使用教程 官方网站怎么下载?7zip和bandizip选哪个?选哪个?如何选择?
  • Paytium WordPress插件存储型XSS漏洞深度分析
  • 金蝶KIS标准版v9.1_Patch/金蝶标准版破解
  • 2025.10.11——1绿
  • 专题:2025年AI Agent智能体行业洞察报告|附110+份报告PDF、资料仪表盘汇总下载
  • Intersection Observer API 完全指南:从语法到 3 个性能实战 - 教程
  • VMware ESXi 9.0.1.0 macOS Unlocker OEM BIOS 2.7 AQC 网卡特殊定制版
  • SignTool 使用 SafeNet eToken 硬证书进行代码签名
  • css_01_自适应grid布局
  • 关于微信公众号/服务号自动回消息问题(python)
  • 10.10 闲话
  • Python 中的函数签名:详解与实例
  • 装饰器工厂与类装饰器:进阶装饰器技术解析
  • 53最大子数组和 动态规划和分制 - MKT
  • Codeforces 2153D Not Alone 题解 [ 绿 ] [ 线性 DP ] [ 分类讨论 ]
  • 每日一题 ###121买卖股票的最佳时机
  • LibreChat-图文并茂手把手教你界面配置 | Adorable LibreChat Interface Configuration Guide
  • GAE-广义优势估计算法介绍
  • RAG-检索增强生成
  • C语言vsC++
  • 20251010 之所思 - 人生如梦
  • 4.布局系统
  • 虚拟环境QA
  • day009
  • HTTP OPTIONS 方法详解:从原理到实践
  • 详解 `a, b = b, a + b`:执行逻辑、常见误区与赋值符号辨析