-
Notifications
You must be signed in to change notification settings - Fork 3
Test2 #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
davewichers
wants to merge
21
commits into
main
Choose a base branch
from
test1
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Test2 #3
Changes from all commits
Commits
Show all changes
21 commits
Select commit
Hold shift + click to select a range
138fe95
Add test case 6.
davewichers ba3042a
Merge pull request #2 from davewichers/main
davewichers 7abadec
Configure constrast-scan
davewichers e1dd127
Undo unnecessary change.
davewichers 1eb0219
Fix war reference.
davewichers cfe2b8b
Add mvn compile compand to build required artifact, and change name t…
davewichers 6d75f6c
Fix build steps and upgrade contrast codesec scan version.
davewichers 854b344
Try again.
davewichers 237f208
Try again.
davewichers dfad523
Try again.
davewichers 7e34cb9
Again.
davewichers 75c333f
Fix contrast version.
davewichers 31a28a4
Actually build the .war.
davewichers 6060ba6
Test.
davewichers 8c92360
Test
davewichers 9f08a0f
Try again.
davewichers 7e5809d
Add test cases 6-10.
davewichers 5283127
Add tests 11-15.
davewichers 94ac178
Merge pull request #8 from davewichers/main
davewichers e9017d3
Add 5 more test cases.
davewichers d304b19
Add 5x more test cases.
davewichers File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
77 changes: 77 additions & 0 deletions
77
src/main/java/org/owasp/benchmark/testcode/BenchmarkTest00006.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
/** | ||
* OWASP Benchmark v1.2 | ||
* | ||
* <p>This file is part of the Open Web Application Security Project (OWASP) Benchmark Project. For | ||
* details, please see <a | ||
* href="https://owasp.org/www-project-benchmark/">https://owasp.org/www-project-benchmark/</a>. | ||
* | ||
* <p>The OWASP Benchmark is free software: you can redistribute it and/or modify it under the terms | ||
* of the GNU General Public License as published by the Free Software Foundation, version 2. | ||
* | ||
* <p>The OWASP Benchmark is distributed in the hope that it will be useful, but WITHOUT ANY | ||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
* PURPOSE. See the GNU General Public License for more details. | ||
* | ||
* @author Dave Wichers | ||
* @created 2015 | ||
*/ | ||
package org.owasp.benchmark.testcode; | ||
|
||
import java.io.IOException; | ||
import javax.servlet.ServletException; | ||
import javax.servlet.annotation.WebServlet; | ||
import javax.servlet.http.HttpServlet; | ||
import javax.servlet.http.HttpServletRequest; | ||
import javax.servlet.http.HttpServletResponse; | ||
|
||
@WebServlet(value = "/cmdi-00/BenchmarkTest00006") | ||
public class BenchmarkTest00006 extends HttpServlet { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
@Override | ||
public void doGet(HttpServletRequest request, HttpServletResponse response) | ||
throws ServletException, IOException { | ||
doPost(request, response); | ||
} | ||
|
||
@Override | ||
public void doPost(HttpServletRequest request, HttpServletResponse response) | ||
throws ServletException, IOException { | ||
// some code | ||
response.setContentType("text/html;charset=UTF-8"); | ||
|
||
String param = ""; | ||
if (request.getHeader("BenchmarkTest00006") != null) { | ||
param = request.getHeader("BenchmarkTest00006"); | ||
} | ||
|
||
// URL Decode the header value since req.getHeader() doesn't. Unlike req.getParameter(). | ||
param = java.net.URLDecoder.decode(param, "UTF-8"); | ||
|
||
java.util.List<String> argList = new java.util.ArrayList<String>(); | ||
|
||
String osName = System.getProperty("os.name"); | ||
if (osName.indexOf("Windows") != -1) { | ||
argList.add("cmd.exe"); | ||
argList.add("/c"); | ||
} else { | ||
argList.add("sh"); | ||
argList.add("-c"); | ||
} | ||
argList.add("echo " + param); | ||
|
||
ProcessBuilder pb = new ProcessBuilder(); | ||
|
||
pb.command(argList); | ||
|
||
try { | ||
Process p = pb.start(); | ||
org.owasp.benchmark.helpers.Utils.printOSCommandResults(p, response); | ||
} catch (IOException e) { | ||
System.out.println( | ||
"Problem executing cmdi - java.lang.ProcessBuilder(java.util.List) Test Case"); | ||
throw new ServletException(e); | ||
} | ||
} | ||
} |
70 changes: 70 additions & 0 deletions
70
src/main/java/org/owasp/benchmark/testcode/BenchmarkTest00007.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
/** | ||
* OWASP Benchmark v1.2 | ||
* | ||
* <p>This file is part of the Open Web Application Security Project (OWASP) Benchmark Project. For | ||
* details, please see <a | ||
* href="https://owasp.org/www-project-benchmark/">https://owasp.org/www-project-benchmark/</a>. | ||
* | ||
* <p>The OWASP Benchmark is free software: you can redistribute it and/or modify it under the terms | ||
* of the GNU General Public License as published by the Free Software Foundation, version 2. | ||
* | ||
* <p>The OWASP Benchmark is distributed in the hope that it will be useful, but WITHOUT ANY | ||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
* PURPOSE. See the GNU General Public License for more details. | ||
* | ||
* @author Dave Wichers | ||
* @created 2015 | ||
*/ | ||
package org.owasp.benchmark.testcode; | ||
|
||
import java.io.IOException; | ||
import javax.servlet.ServletException; | ||
import javax.servlet.annotation.WebServlet; | ||
import javax.servlet.http.HttpServlet; | ||
import javax.servlet.http.HttpServletRequest; | ||
import javax.servlet.http.HttpServletResponse; | ||
|
||
@WebServlet(value = "/cmdi-00/BenchmarkTest00007") | ||
public class BenchmarkTest00007 extends HttpServlet { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
@Override | ||
public void doGet(HttpServletRequest request, HttpServletResponse response) | ||
throws ServletException, IOException { | ||
doPost(request, response); | ||
} | ||
|
||
@Override | ||
public void doPost(HttpServletRequest request, HttpServletResponse response) | ||
throws ServletException, IOException { | ||
// some code | ||
response.setContentType("text/html;charset=UTF-8"); | ||
|
||
String param = ""; | ||
if (request.getHeader("BenchmarkTest00007") != null) { | ||
param = request.getHeader("BenchmarkTest00007"); | ||
} | ||
|
||
// URL Decode the header value since req.getHeader() doesn't. Unlike req.getParameter(). | ||
param = java.net.URLDecoder.decode(param, "UTF-8"); | ||
|
||
String cmd = | ||
org.owasp.benchmark.helpers.Utils.getInsecureOSCommandString( | ||
this.getClass().getClassLoader()); | ||
String[] args = {cmd}; | ||
String[] argsEnv = {param}; | ||
|
||
Runtime r = Runtime.getRuntime(); | ||
|
||
try { | ||
Process p = r.exec(args, argsEnv); | ||
org.owasp.benchmark.helpers.Utils.printOSCommandResults(p, response); | ||
} catch (IOException e) { | ||
System.out.println("Problem executing cmdi - TestCase"); | ||
response.getWriter() | ||
.println(org.owasp.esapi.ESAPI.encoder().encodeForHTML(e.getMessage())); | ||
Check warningCode scanning / CodeQL Information exposure through a stack trace
[Error information](1) can be exposed to an external user.
|
||
return; | ||
} | ||
} | ||
} |
68 changes: 68 additions & 0 deletions
68
src/main/java/org/owasp/benchmark/testcode/BenchmarkTest00008.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
/** | ||
* OWASP Benchmark v1.2 | ||
* | ||
* <p>This file is part of the Open Web Application Security Project (OWASP) Benchmark Project. For | ||
* details, please see <a | ||
* href="https://owasp.org/www-project-benchmark/">https://owasp.org/www-project-benchmark/</a>. | ||
* | ||
* <p>The OWASP Benchmark is free software: you can redistribute it and/or modify it under the terms | ||
* of the GNU General Public License as published by the Free Software Foundation, version 2. | ||
* | ||
* <p>The OWASP Benchmark is distributed in the hope that it will be useful, but WITHOUT ANY | ||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
* PURPOSE. See the GNU General Public License for more details. | ||
* | ||
* @author Dave Wichers | ||
* @created 2015 | ||
*/ | ||
package org.owasp.benchmark.testcode; | ||
|
||
import java.io.IOException; | ||
import javax.servlet.ServletException; | ||
import javax.servlet.annotation.WebServlet; | ||
import javax.servlet.http.HttpServlet; | ||
import javax.servlet.http.HttpServletRequest; | ||
import javax.servlet.http.HttpServletResponse; | ||
|
||
@WebServlet(value = "/sqli-00/BenchmarkTest00008") | ||
public class BenchmarkTest00008 extends HttpServlet { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
@Override | ||
public void doGet(HttpServletRequest request, HttpServletResponse response) | ||
throws ServletException, IOException { | ||
doPost(request, response); | ||
} | ||
|
||
@Override | ||
public void doPost(HttpServletRequest request, HttpServletResponse response) | ||
throws ServletException, IOException { | ||
// some code | ||
response.setContentType("text/html;charset=UTF-8"); | ||
|
||
String param = ""; | ||
if (request.getHeader("BenchmarkTest00008") != null) { | ||
param = request.getHeader("BenchmarkTest00008"); | ||
} | ||
|
||
// URL Decode the header value since req.getHeader() doesn't. Unlike req.getParameter(). | ||
param = java.net.URLDecoder.decode(param, "UTF-8"); | ||
|
||
String sql = "{call " + param + "}"; | ||
|
||
try { | ||
java.sql.Connection connection = | ||
org.owasp.benchmark.helpers.DatabaseHelper.getSqlConnection(); | ||
java.sql.CallableStatement statement = connection.prepareCall(sql); | ||
Check failureCode scanning / CodeQL Query built from user-controlled sources
This query depends on a [user-provided value](1).
|
||
java.sql.ResultSet rs = statement.executeQuery(); | ||
org.owasp.benchmark.helpers.DatabaseHelper.printResults(rs, sql, response); | ||
|
||
} catch (java.sql.SQLException e) { | ||
if (org.owasp.benchmark.helpers.DatabaseHelper.hideSQLErrors) { | ||
response.getWriter().println("Error processing request."); | ||
return; | ||
} else throw new ServletException(e); | ||
} | ||
} | ||
} |
124 changes: 124 additions & 0 deletions
124
src/main/java/org/owasp/benchmark/testcode/BenchmarkTest00009.java
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
/** | ||
* OWASP Benchmark v1.2 | ||
* | ||
* <p>This file is part of the Open Web Application Security Project (OWASP) Benchmark Project. For | ||
* details, please see <a | ||
* href="https://owasp.org/www-project-benchmark/">https://owasp.org/www-project-benchmark/</a>. | ||
* | ||
* <p>The OWASP Benchmark is free software: you can redistribute it and/or modify it under the terms | ||
* of the GNU General Public License as published by the Free Software Foundation, version 2. | ||
* | ||
* <p>The OWASP Benchmark is distributed in the hope that it will be useful, but WITHOUT ANY | ||
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR | ||
* PURPOSE. See the GNU General Public License for more details. | ||
* | ||
* @author Dave Wichers | ||
* @created 2015 | ||
*/ | ||
package org.owasp.benchmark.testcode; | ||
|
||
import java.io.IOException; | ||
import javax.servlet.ServletException; | ||
import javax.servlet.annotation.WebServlet; | ||
import javax.servlet.http.HttpServlet; | ||
import javax.servlet.http.HttpServletRequest; | ||
import javax.servlet.http.HttpServletResponse; | ||
|
||
@WebServlet(value = "/hash-00/BenchmarkTest00009") | ||
public class BenchmarkTest00009 extends HttpServlet { | ||
|
||
private static final long serialVersionUID = 1L; | ||
|
||
@Override | ||
public void doGet(HttpServletRequest request, HttpServletResponse response) | ||
throws ServletException, IOException { | ||
doPost(request, response); | ||
} | ||
|
||
@Override | ||
public void doPost(HttpServletRequest request, HttpServletResponse response) | ||
throws ServletException, IOException { | ||
// some code | ||
response.setContentType("text/html;charset=UTF-8"); | ||
|
||
String param = ""; | ||
java.util.Enumeration<String> names = request.getHeaderNames(); | ||
while (names.hasMoreElements()) { | ||
String name = (String) names.nextElement(); | ||
|
||
if (org.owasp.benchmark.helpers.Utils.commonHeaders.contains(name)) { | ||
continue; // If standard header, move on to next one | ||
} | ||
|
||
java.util.Enumeration<String> values = request.getHeaders(name); | ||
if (values != null && values.hasMoreElements()) { | ||
param = name; // Grabs the name of the first non-standard header as the parameter | ||
// value | ||
break; | ||
} | ||
} | ||
// Note: We don't URL decode header names because people don't normally do that | ||
|
||
java.security.Provider[] provider = java.security.Security.getProviders(); | ||
java.security.MessageDigest md; | ||
|
||
try { | ||
if (provider.length > 1) { | ||
|
||
md = java.security.MessageDigest.getInstance("sha-384", provider[0]); | ||
} else { | ||
md = java.security.MessageDigest.getInstance("sha-384", "SUN"); | ||
} | ||
byte[] input = {(byte) '?'}; | ||
Object inputParam = param; | ||
if (inputParam instanceof String) input = ((String) inputParam).getBytes(); | ||
if (inputParam instanceof java.io.InputStream) { | ||
byte[] strInput = new byte[1000]; | ||
int i = ((java.io.InputStream) inputParam).read(strInput); | ||
if (i == -1) { | ||
response.getWriter() | ||
.println( | ||
"This input source requires a POST, not a GET. Incompatible UI for the InputStream source."); | ||
return; | ||
} | ||
input = java.util.Arrays.copyOf(strInput, i); | ||
} | ||
md.update(input); | ||
|
||
byte[] result = md.digest(); | ||
java.io.File fileTarget = | ||
new java.io.File( | ||
new java.io.File(org.owasp.benchmark.helpers.Utils.TESTFILES_DIR), | ||
"passwordFile.txt"); | ||
java.io.FileWriter fw = | ||
new java.io.FileWriter(fileTarget, true); // the true will append the new data | ||
fw.write( | ||
"hash_value=" | ||
+ org.owasp.esapi.ESAPI.encoder().encodeForBase64(result, true) | ||
+ "\n"); | ||
fw.close(); | ||
response.getWriter() | ||
.println( | ||
"Sensitive value '" | ||
+ org.owasp | ||
.esapi | ||
.ESAPI | ||
.encoder() | ||
.encodeForHTML(new String(input)) | ||
+ "' hashed and stored<br/>"); | ||
Comment on lines
+102
to
+108
Check warningCode scanning / CodeQL Cross-site scripting
Cross-site scripting vulnerability due to a [user-provided value](1).
|
||
|
||
} catch (java.security.NoSuchAlgorithmException e) { | ||
System.out.println( | ||
"Problem executing hash - TestCase java.security.MessageDigest.getInstance(java.lang.String,java.security.Provider)"); | ||
throw new ServletException(e); | ||
} catch (java.security.NoSuchProviderException e) { | ||
System.out.println( | ||
"Problem executing hash - TestCase java.security.MessageDigest.getInstance(java.lang.String,java.security.Provider)"); | ||
throw new ServletException(e); | ||
} | ||
|
||
response.getWriter() | ||
.println( | ||
"Hash Test java.security.MessageDigest.getInstance(java.lang.String,java.security.Provider) executed"); | ||
} | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Check failure
Code scanning / CodeQL
Uncontrolled command line