JDBC MySQL任意文件读取分析

本文详细分析了JDBC MySQL连接中允许任意文件读取的安全问题,包括数据交互流程、参数设置、不同版本的差异以及修复方案。通过构造特定的连接参数,攻击者可能读取敏感文件,而8.0.x版本可通过注释符绕过某些限制,5.1.x版本则可通过URL编码方式绕过。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JDBC MySQL任意文件读取分析

文章首发于知识星球-赛博回忆录。给主管打个广告,嘿嘿。
在渗透测试中,有些发起mysql测试流程(或者说mysql探针)的地方,可能会存在漏洞。在连接测试的时候通过添加allowLoadLocalInfileInPath,allowLoadLocalInfile,allowUrlInLocalInfile与伪造的服务器进行通信,造成任意文件读取。

完整payload:
test?allowLoadLocalInfile=true&allowUrlInLocalInfile=true&allowLoadLocalInfileInPath=/&maxAllowedPacket=655360

以下是可以利用该漏洞的一些场景
在这里插入图片描述在这里插入图片描述在这里插入图片描述

一、端之间数据交互流程

简述一下客户端(被攻击端)与伪造mysql服务器的通信流程。通过wireshark进行抓包读取。

1.问候MySQL客户端
2.等待查询包(03)
3.回答本地数据文件请求tcp option(01 01 08 0a 58 77 5b a8 e9 1f b7 2d
)。前三个字节是数据包的大小(0b 00 00)。接下来的1个字节是数据包编号(01)。下一个字节是数据包类型(fb),然后是文件名(2f 65 74 63 2f 70 61 73 77 64 /etc/hosts)。

主要是数据包的类型字段fb,要求连接的主机将本地文件进行发送。
这两张图展示的是第三个数据包的各个字段。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值