mirror of
https://github.com/elicpeter/nyx.git
synced 2026-06-15 20:05:13 +02:00
Dynamic (#77)
This commit is contained in:
parent
55247b7fcd
commit
991c84a1eb
1464 changed files with 225448 additions and 1985 deletions
24
tests/dynamic_fixtures/java/junit_test/Benign.java
Normal file
24
tests/dynamic_fixtures/java/junit_test/Benign.java
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
// Phase 14 — JUnit test method, benign.
|
||||
|
||||
// import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
public class Benign {
|
||||
@Test
|
||||
public void testRun() throws Exception {
|
||||
System.out.print("__NYX_SINK_HIT__\n");
|
||||
// Read + drop payload.
|
||||
String unused = System.getenv("NYX_PAYLOAD");
|
||||
if (unused == null) unused = "";
|
||||
String[] cmd = {"/bin/sh", "-c", "echo hello"};
|
||||
Process p = Runtime.getRuntime().exec(cmd);
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
System.out.println(line);
|
||||
}
|
||||
p.waitFor();
|
||||
}
|
||||
}
|
||||
15
tests/dynamic_fixtures/java/junit_test/Test.java
Normal file
15
tests/dynamic_fixtures/java/junit_test/Test.java
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// Phase 14 fixture stub — minimal `@Test` annotation in the default
|
||||
// package. Lives here so the fixture's `@Test`-annotated method
|
||||
// compiles under plain javac without a junit-jupiter Maven dep. The
|
||||
// fixture's comment carries a literal `org.junit` marker so the
|
||||
// Phase 14 [`JavaShape::detect`] still selects the JUnit shape.
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target(ElementType.METHOD)
|
||||
public @interface Test {
|
||||
}
|
||||
28
tests/dynamic_fixtures/java/junit_test/Vuln.java
Normal file
28
tests/dynamic_fixtures/java/junit_test/Vuln.java
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
// Phase 14 — JUnit test method, vulnerable.
|
||||
//
|
||||
// The `org.junit.jupiter.api` comment marker tells the Phase 14 shape
|
||||
// detector to select `JavaShape::JunitTest`; the actual annotation is
|
||||
// the fixture-local `@NyxTest` stub so the file compiles under a
|
||||
// dependency-free javac invocation.
|
||||
|
||||
// import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
public class Vuln {
|
||||
@Test
|
||||
public void testRun() throws Exception {
|
||||
System.out.print("__NYX_SINK_HIT__\n");
|
||||
String input = System.getenv("NYX_PAYLOAD");
|
||||
if (input == null) input = "";
|
||||
String[] cmd = {"/bin/sh", "-c", "echo hello " + input};
|
||||
Process p = Runtime.getRuntime().exec(cmd);
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
System.out.println(line);
|
||||
}
|
||||
p.waitFor();
|
||||
}
|
||||
}
|
||||
19
tests/dynamic_fixtures/java/junit_test/pom.xml
Normal file
19
tests/dynamic_fixtures/java/junit_test/pom.xml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>nyx</groupId>
|
||||
<artifactId>junit-test-fixture</artifactId>
|
||||
<version>0.0.1</version>
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
</properties>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-api</artifactId>
|
||||
<version>5.10.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
||||
Loading…
Add table
Add a link
Reference in a new issue