Skip to content

Commit ea79e84

Browse files
authored
Merge pull request diffblue#443 from diffblue/ginco_evaluation_bash_script
SEC-432: Introduced bash script for install, built, and analyse Ginco.
2 parents 29be751 + 7e694d5 commit ea79e84

File tree

5 files changed

+140
-1
lines changed

5 files changed

+140
-1
lines changed

benchmarks/GENUINE/.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ WebGoat
55
Alfresco
66
DSpace
77
encuestame
8-
ginco
8+
Ginco
99
jforum3
1010
libresonic
1111
onyx

benchmarks/GENUINE/Ginco.sh

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
#!/usr/bin/env bash
2+
3+
if [ -z "$SECURITY_SCANNER_HOME" ]; then
4+
SECURITY_SCANNER_HOME=../../dist
5+
if [ ! -d "$SECURITY_SCANNER_HOME" ]; then
6+
echo "Need to set SECURITY_SCANNER_HOME to cmake directory"
7+
exit 1
8+
fi
9+
echo "SECURITY_SCANNER_HOME set to path: $SECURITY_SCANNER_HOME"
10+
fi
11+
12+
if [[ ! -d "Ginco" ]]; then
13+
mkdir Ginco
14+
cd Ginco
15+
16+
git clone https://github.com/culturecommunication/ginco .
17+
18+
# This is the commit where the XSS issue was fixed: 2fb5a070034deda25b2d50a98e9e6b42754e6425
19+
# This is the subsequent commit mentioned in the README.txt file: fb937f67a78a1f01017cee3a12f4d79d325ec82f
20+
# Nevertheless, we do not checkout any of them. We actually checkout
21+
# latest 'master' branch on 2017-11-17 10:18:50.
22+
git checkout e5b62450f61f76feccd2c2d5bf8ed33d1e258d87
23+
24+
patch -p1 -f < ../Ginco_files/0001-Reverting-XSS-issue-and-adding-generation-of-jar.patch
25+
26+
mvn package -DskipTests
27+
28+
# Now we create an artificial entry-point project and build it
29+
cp -r ../Ginco_files/__MAIN__/ .
30+
mkdir -p __MAIN__/src/main/java/org/cprover
31+
cp ../../LIBRARIES/models/model/src/main/java/org/cprover/* __MAIN__/src/main/java/org/cprover
32+
(cd __MAIN__ && mvn package)
33+
34+
# Finally, we deploy built binaries to the deplyment directory '__dist__'
35+
mkdir -p __dist__/ginco-admin/{webapp,lib}
36+
mkdir -p __dist__/ginco-webservices/webapp
37+
cp __MAIN__/target/classes/Main.class __dist__/ginco-admin/webapp
38+
cp ginco-admin/target/ginco-admin-classes.jar __dist__/ginco-admin/lib
39+
cp ginco-webservices/target/ginco-webservices.war __dist__/ginco-webservices/webapp
40+
41+
cd ..
42+
fi
43+
44+
(cd $SECURITY_SCANNER_HOME && python3 ../driver/run.py -C ../benchmarks/GENUINE/GincoRules.json -I ../benchmarks/GENUINE/Ginco/__dist__/ginco-admin/webapp -L ../benchmarks/GENUINE/Ginco/__dist__/ginco-admin/lib -R GENUINE/Ginco/RESULTS -T GENUINE/Ginco/TEMP --name Ginco --verbosity 9 --use-models-library --do-not-use-precise-access-paths --rebuild --timeout 10000000 --entry-point Main.main)
45+
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
From ed369d182a223b53c9ff37bec44b391833b24c7b Mon Sep 17 00:00:00 2001
2+
From: marek-trtik <[email protected]>
3+
Date: Fri, 8 Jun 2018 17:41:23 +0100
4+
Subject: [PATCH] Reverting XSS issue and adding generation of jar
5+
6+
---
7+
ginco-admin/pom.xml | 2 +-
8+
.../src/main/java/fr/mcc/ginco/rest/services/ImportRestService.java | 2 +-
9+
2 files changed, 2 insertions(+), 2 deletions(-)
10+
11+
diff --git a/ginco-admin/pom.xml b/ginco-admin/pom.xml
12+
index d4f91e5..5b7f18c 100644
13+
--- a/ginco-admin/pom.xml
14+
+++ b/ginco-admin/pom.xml
15+
@@ -151,7 +151,7 @@
16+
</resource>
17+
</webResources>
18+
<warSourceExcludes>*.js,app/**/*.js</warSourceExcludes>
19+
- </configuration>
20+
+<attachClasses>true</attachClasses><classesClassifier>classes</classesClassifier></configuration>
21+
</plugin>
22+
<plugin>
23+
<groupId>com.googlecode.jslint4java</groupId>
24+
diff --git a/ginco-admin/src/main/java/fr/mcc/ginco/rest/services/ImportRestService.java b/ginco-admin/src/main/java/fr/mcc/ginco/rest/services/ImportRestService.java
25+
index 140a5c8..d2ddaf1 100644
26+
--- a/ginco-admin/src/main/java/fr/mcc/ginco/rest/services/ImportRestService.java
27+
+++ b/ginco-admin/src/main/java/fr/mcc/ginco/rest/services/ImportRestService.java
28+
@@ -193,7 +193,7 @@ public class ImportRestService {
29+
response.setExternalConceptIds(externalConceptIds);
30+
ObjectMapper mapper = new ObjectMapper();
31+
String serialized = mapper.writeValueAsString(new ExtJsonFormLoadData(response));
32+
- return StringEscapeUtils.unescapeHtml4(serialized);
33+
+ return serialized;
34+
}
35+
36+
/**
37+
--
38+
2.7.4
39+
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
2+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>__MAIN__</groupId>
5+
<artifactId>__MAIN__</artifactId>
6+
<packaging>jar</packaging>
7+
8+
<parent>
9+
<groupId>fr.smile.mcc.ginco</groupId>
10+
<artifactId>ginco</artifactId>
11+
<version>2.0.9-SNAPSHOT</version>
12+
</parent>
13+
14+
<dependencies>
15+
<dependency>
16+
<groupId>fr.smile.mcc.ginco</groupId>
17+
<artifactId>ginco-admin</artifactId>
18+
<version>${project.version}</version>
19+
<classifier>classes</classifier>
20+
<scope>provided</scope>
21+
</dependency>
22+
<dependency>
23+
<groupId>javax.servlet</groupId>
24+
<artifactId>servlet-api</artifactId>
25+
</dependency>
26+
<dependency>
27+
<groupId>org.apache.cxf</groupId>
28+
<artifactId>cxf-bundle-jaxrs</artifactId>
29+
</dependency>
30+
</dependencies>
31+
32+
</project>
33+
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import org.cprover.CProver;
2+
import javax.servlet.http.HttpServletRequest;
3+
import org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
4+
import fr.mcc.ginco.rest.services.ImportRestService;
5+
6+
public class Main {
7+
8+
static void sink(String s) {
9+
}
10+
11+
public static void main(String[] args) {
12+
MultipartBody arg0 = CProver.nondetWithNull();
13+
HttpServletRequest arg1 = CProver.nondetWithNull();
14+
ImportRestService obj = CProver.nondetWithNull();
15+
try {
16+
sink(obj.uploadFile(arg0, arg1));
17+
}
18+
catch(Exception e) {
19+
}
20+
}
21+
22+
}

0 commit comments

Comments
 (0)