今天看啥  ›  专栏  ›  黑白之道

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

黑白之道  · 公众号  · 互联网安全  · 2024-07-10 09:42

文章预览

原文由作者授权,首发在奇安信攻防社区https://forum.butian.net/share/1749MyBatis 默认是支持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 ………………………………

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