★且听安全★-点关注,不迷路!
★漏洞空间站★-优质漏洞资源和小伙伴聚集地!
最近在网上看到有大佬公布了一个有意思的 Weblogic SSRF ,本质上其实是 Oracle JDBC Driver 中的类在反序列化操作时会自动发送 JDBC 连接,结合 Weblogic T3 反序列化操作就可以实现 SSRF。
在 Oracle JDBC Driver 中存在一个 `oracle.jdbc.pool.OraclePooledConnection` 类,继承于 `Serializable` :
定位 `readObject` 函数:
通过反序列化数据流提取 `connectionProperty` 参数( `HashTable` 类型),然后调用 `OracleDriver#connect` 函数,从函数名称来看,猜测该函数用于完成数据库连接,跟进:
对 `connection_url` 格式进行匹配之后,当构造格式符合一定条件,将生成 `OracleDriverExtension` 对象 `var11` :
继续往下走,将调用 `OracleDriverExtension#getConnection` 函数,比如我们可以控制将 `OracleDriverExtension` 指定为子类 `T4CDriverExtension` 对象:
发送 JDBC 连接请求,那么如果我们根据上面的处理逻辑,构造特定的连接地址和端口,通过 Weblogic T3 协议进行发送,将会触发 Weblogic JDBC 连接的 SSRF 攻击。
生成特定 `OraclePooledConnection` 序列化载荷,然后利用 T3 协议发包程序发送:
完成 JDBC 连接尝试,触发 SSRF :
由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全团队及文章作者不为此承担任何责任。
★且听安全★-点关注,不迷路!
★漏洞空间站★-优质漏洞资源和小伙伴聚集地!
原文始发于微信公众号(且听安全):JDBC 攻击之反序列化操作导致 Weblogic SSRF
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论