今天看啥  ›  专栏  ›  合天网安实验室

从一道CTF题浅谈MyBatis与Ognl的那些事

合天网安实验室  · 公众号  ·  · 2024-07-11 16:30

文章预览

MyBatis 默认是支持OGNL 表达式的,尤其是在动态SQL中,通过OGNL 表达式可以灵活的组装 SQL 语句,从而完成更多的功能。在特定的情况下可能会存在RCE的风险。 0x01引言 前段时间看了一道CTF题目ezsql 传送门:http://www.yongsheng.site/2022/03/29/d3ctf/ 里面的解题过程大概是Mybatis调用时存在SQL注入,然后还存在OGNL注入。 看完文章后有一些疑惑: 为什么SQL注入能解析ognl表达式达到RCE的效果? 题目中是通过Provider注解进行sql配置的,xml配置和类似@Select配置也会存在类似的问题吗? 使用#{}预编译后也会存在类似的风险吗? 带着这些疑惑,下面从mybatis的解析流程入手,分析这个case的成因并且看看能不能解决上述提出的疑惑。 0x02 mybatis封装SQL流程 提到Mybatis很自然的会想到${}和#{},看看具体是怎么解析的。 2.1 相关过程 Mybatis的工作流程首先是构建,也就是解析我们 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览