代码审计:使用jar-analyzer分析Apache Commons Text RCE漏洞

Jar Analyzer是一个GUI工具,可用于分析Jar文件。它提供以下功能:

  • 支持大Jar文件和批量Jar文件的分析
  • 方便搜索方法之间的调用关系
  • 分析LDC指令以定位Jar文件中的字符串
  • 一键分析Spring Controller/Mapping
  • 提供对方法字节码和指令的高级分析
  • 一键反编译,并优化对内部类的处理
  • 一键生成方法的CFG(控制流图)分析结果
  • 一键生成方法的栈帧(Stack Frame)分析结果
  • 支持自定义SQL语句进行高级分析
图片[1]-代码审计:使用jar-analyzer分析Apache Commons Text RCE漏洞-山海云端论坛

此漏洞环境涉及Apache Commons Text的CVE-2022-42889漏洞,受影响版本为1.5到1.9。该漏洞允许攻击者构造恶意文本,导致Apache Commons Text在解析时执行任意恶意代码。

通过使用Jar Analyzer进行分析,可以快速定位到漏洞触发点。两种方法可用于分析:

  1. 搜索类别: 在Jar Analyzer中搜索org.apache.commons.text.lookup类,可以发现该类的lookup方法调用了ScriptEngine的eval方法,可通过操纵lookup方法的参数构造恶意文本来触发漏洞。
  2. 调用关系: 在call界面中,可查看方法调用关系,从调用lookup方法的方法一直追溯到StringLookup接口的实现类,进而分析触发链。

最后,漏洞的深度利用方法可以参考相关资源,如https://forum.butian.net/share/1973。

POC示例:

<code>StringSubstitutor stringSubstitutor = StringSubstitutor.createInterpolator(); stringSubstitutor.replace("${script:javascript:2 + 2}");</code>

参考链接:

  • https://lists.apache.org/thread/n2bd4vdsgkqh2tm14l1wyc3jyol7s1om
  • https://forum.butian.net/share/1973
  • https://github.com/jar-analyzer/jar-analyzer
© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容