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

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

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

文章预览

原文由作者授权,首发在奇安信攻防社区 https://forum.butian.net/share/1749 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很自然的会想到${}和#{},看看具体是 ………………………………

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