提交 6078dd7a 编写于 作者: K Kohsuke Kawaguchi

[SECURITY-360] integration test

Make sure LDAPAttribute gets rejected.
上级 d42c39c9
......@@ -179,7 +179,7 @@ THE SOFTWARE.
<dependency>
<groupId>org.jenkins-ci.main</groupId>
<artifactId>remoting</artifactId>
<version>2.53.3-20160211.162333-3</version>
<version>2.53.2</version>
</dependency>
<dependency>
......
......@@ -161,6 +161,15 @@ public class Security218CliTest {
probe(Payload.Spring2, -1);
}
@PresetData(PresetData.DataSet.ANONYMOUS_READONLY)
@Test
@Issue("SECURITY-360")
public void ldap() throws Exception {
// with a proper fix, this should fail with EXIT_CODE_REJECTED
// otherwise this will fail with -1 exit code
probe(Payload.Ldap, PayloadCaller.EXIT_CODE_REJECTED);
}
private void probe(Payload payload, int expectedResultCode) throws Exception {
File file = File.createTempFile("security-218", payload + "-payload");
File moved = new File(file.getAbsolutePath() + "-moved");
......
......@@ -24,7 +24,6 @@
package jenkins.security.security218;
import jenkins.security.security218.ysoserial.payloads.*;
import net.sf.json.JSON;
/**
......@@ -46,8 +45,10 @@ public enum Payload {
JRMPListener(JRMPListener.class),
JSON1(JSON1.class),
Spring1(Spring1.class),
Spring2(Spring2.class);
Spring2(Spring2.class),
Ldap(Ldap.class),
;
private final Class<? extends ObjectPayload> payloadClass;
private Payload(Class<? extends ObjectPayload> payloadClass) {
......
package jenkins.security.security218.ysoserial.payloads;
import jenkins.security.security218.ysoserial.util.PayloadRunner;
import java.lang.reflect.Constructor;
/**
* @author Kohsuke Kawaguchi
*/
public class Ldap extends PayloadRunner implements ObjectPayload<Object> {
public Object getObject(final String command) throws Exception {
// this is not a fully exploit, so we cannot honor the command,
// but we want to check that we are blocking LdapAttribute
Class<?> c = Class.forName("com.sun.jndi.ldap.LdapAttribute");
Constructor<?> ctr = c.getDeclaredConstructor(String.class);
ctr.setAccessible(true);
return ctr.newInstance("foo");
}
public static void main(final String[] args) throws Exception {
PayloadRunner.run(Ldap.class, args);
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册