今天看啥  ›  专栏  ›  七芒星实验室

JAVA安全之Thymeleaf模板注入检测再探

七芒星实验室  · 公众号  ·  · 2024-10-18 07:00
    

文章预览

文章前言 从之前的文章中我们分析后发现Thymeleaf 3.0.15版本中只要检测到"{"就会认为存在表达式内容,随后直接抛出异常停止解析来防范模板注入问题,此类场景用于我们URL PATH、Retruen、Fragment等可控的情况下进行,但是如果我们存在对模板文件进行更改、创建、上传等操作的时候我们还可以精心构造恶意的JAVA代码并将其写入模板中,随后触发执行 常规执行 使用之前的载荷进行尝试攻击会触发一下告警提示: /doc;/__%24%7BT%09(java.lang.Runtime).getRuntime(). exec ( "calc" )%7D__%3A%3A.x 跟踪源代码进行分析: 随后调用containsExpression来检查是否包含表达式内容,匹配个关键点在于检索是否存在"{" 如果包含则直接防护true,随后直接抛异常——也就是说只有有表达式就会直接抛异常 同时在Thymeleaf 3.0.15.RELEASE版本中修复了LiteralSubstitutionUtil函数,添加了对于||的过滤处理 ………………………………

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