服务端模板语言thymeleaf安全
发布于 18 天前 阅读权限 无需登录 作者 0c0c0f 373 次浏览 来自 知识碎片

之前有老外研究过服务端模板注入包括FreeMarker Smarty,Paper地址: https://www.blackhat.com/docs/us-15/materials/us-15-Kettle-Server-Side-Template-Injection-RCE-For-The-Modern-Web-App-wp.pdf

最近用到了服务端模板语言thymeleaf,地址:http://www.thymeleaf.org,简单看了它的安全性。 1、thymeleaf模板不需要像要FreeMarker Smarty等查找可执行代码的类,直接使用SPEL即可执行代码,如果某些系统可以编辑模板的话就会产生安全漏洞。 下面的这个语句放入到模板页面 <a th:href="${(new java.lang.ProcessBuilder(‘calc’)).start()}"></a> 执行了代码 calc.png

2、想利用thymeleaf模板进行注入,需要控制模板页面才行。 <a th:href="${value}">Previous</a> value读取自db,结果直明文加载的。引擎仅做了一次变量替换,并没执行变量里面的表达式。 nobug.png

3 回复

这样的前提是能控制服务端吗

回到顶部