8000 Code Security Report: 25 high severity findings, 33 total findings · Issue #47 · Uncleken13/WebGoat · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Code Security Report: 25 high severity findings, 33 total findings #47

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
1 task
mend-for-github-com bot opened this issue Sep 18, 2024 · 0 comments
Open
1 task
Labels
Mend: code security findings Code security findings detected by Mend

Comments

@mend-for-github-com
Copy link
mend-for-github-com bot commented Sep 18, 2024

Code Security Report

Scan Metadata

Latest Scan: 2024-10-08 05:39pm
Total Findings: 33 | New Findings: 0 | Resolved Findings: 0
Tested Project Files: 422
Detected Programming Languages: 2 (JavaScript / TypeScript*, Java*)

  • Check this box to manually trigger a scan

Most Relevant Findings

The list below presents the 10 most relevant findings that need your attention. To view information on the remaining findings, navigate to the Mend Application.

SeverityVulnerability TypeCWEFileData FlowsDate
HighSQL Injection

CWE-89

SqlInjectionLesson10.java:71

12024-09-18 07:00pm
Vulnerable Code

try (Connection connection = dataSource.getConnection()) {
try {
Statement statement =
connection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
ResultSet results = statement.executeQuery(query);

1 Data Flow/s detected

public AttackResult completed(@RequestParam String action_string) {

protected AttackResult injectableQueryAvailability(String action) {

String query = "SELECT * FROM access_log WHERE action LIKE '%" + action + "%'";

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionChallenge.java:69

12024-09-18 07:00pm
Vulnerable Code

try (Connection connection = dataSource.getConnection()) {
String checkUserQuery =
"select userid from sql_challenge_users where userid = '" + username_reg + "'";
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(checkUserQuery);

1 Data Flow/s detected

"select userid from sql_challenge_users where userid = '" + username_reg + "'";

ResultSet resultSet = statement.executeQuery(checkUserQuery);

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighDeserialization of Untrusted Data

CWE-502

InsecureDeserializationTask.java:60

12024-09-18 07:00pm
Vulnerable Code

b64token = token.replace('-', '+').replace('_', '/');
try (ObjectInputStream ois =
new ObjectInputStream(new ByteArrayInputStream(Base64.getDecoder().decode(b64token)))) {
before = System.currentTimeMillis();
Object o = ois.readObject();

1 Data Flow/s detected

public AttackResult completed(@RequestParam String token) throws IOException {

new ObjectInputStream(new ByteArrayInputStream(Base64.getDecoder().decode(b64token)))) {

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior Deserialization of Untrusted Data Training

● Videos

   ▪ Secure Code Warrior Deserialization of Untrusted Data Video

● Further Reading

   ▪ OWASP Deserialization Cheat Sheet

   ▪ OWASP Top Ten 2017 A8: Insecure Deserialization

   ▪ OWASP Deserialization of untrusted data

 
HighPath/Directory Traversal

CWE-22

ProfileUploadBase.java:43

22024-09-18 07:00pm
Vulnerable Code

File uploadDirectory = cleanupAndCreateDirectoryForUser();
try {
var uploadedFile = new File(uploadDirectory, fullName);
uploadedFile.createNewFile();

2 Data Flow/s detected
View Data Flow 1

protected AttackResult execute(MultipartFile file, String fullName) {

var uploadedFile = new File(uploadDirectory, fullName);

View Data Flow 2

return super.execute(file, file.getOriginalFilename());

protected AttackResult execute(MultipartFile file, String fullName) {

var uploadedFile = new File(uploadDirectory, fullName);

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior Path/Directory Traversal Training

● Vid 10000 eos

   ▪ Secure Code Warrior Path/Directory Traversal Video

● Further Reading

   ▪ OWASP Path Traversal

   ▪ OWASP Input Validation Cheat Sheet

 
HighSQL Injection

CWE-89

Assignment5.java:59

12024-09-18 07:00pm
Vulnerable Code

if (!"Larry".equals(username_login)) {
return failed(this).feedback("user.not.larry").feedbackArgs(username_login).build();
}
try (var connection = dataSource.getConnection()) {
PreparedStatement statement =
connection.prepareStatement(

1 Data Flow/s detected

"select password from challenge_users where userid = '"

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionLesson2.java:65

12024-09-18 07:00pm
Vulnerable Code

}
protected AttackResult injectableQuery(String query) {
try (var connection = dataSource.getConnection()) {
Statement statement = connection.createStatement(TYPE_SCROLL_INSENSITIVE, CONCUR_READ_ONLY);
ResultSet results = statement.executeQuery(query);

1 Data Flow/s detected

public AttackResult completed(@RequestParam String query) {

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionLesson6a.java:74

32024-09-18 07:00pm
Vulnerable Code

usedUnion = false;
}
try (Statement statement =
connection.createStatement(
ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY)) {
ResultSet results = statement.executeQuery(query);

3 Data Flow/s detected
View Data Flow 1

public AttackResult completed(@RequestParam(value = "userid_6a") String userId) {

public AttackResult injectableQuery(String accountName) {

query = "SELECT * FROM user_data WHERE last_name = '" + accountName + "'";

View Data Flow 2

public AttackResult attack(@RequestParam("userid_sql_only_input_validation") String userId) {

AttackResult attackResult = lesson6a.injectableQuery(userId);

public AttackResult injectableQuery(String accountName) {

query = "SELECT * FROM user_data WHERE last_name = '" + accountName + "'";

View Data Flow 3

userId = userId.toUpperCase().replace("FROM", "").replace("SELECT", "");

public AttackResult injectableQuery(String accountName) {

query = "SELECT * FROM user_data WHERE last_name = '" + accountName + "'";

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionLesson3.java:63

12024-09-18 07:00pm
Vulnerable Code

try (Connection connection = dataSource.getConnection()) {
try (Statement statement =
connection.createStatement(TYPE_SCROLL_INSENSITIVE, CONCUR_READ_ONLY)) {
Statement checkStatement =
connection.createStatement(TYPE_SCROLL_INSENSITIVE, CONCUR_READ_ONLY);
statement.executeUpdate(query);

1 Data Flow/s detected

public AttackResult completed(@RequestParam String query) {

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

 
HighPath/Directory Traversal

CWE-22

ProfileUploadBase.java:44

32024-09-18 07:00pm
Vulnerable Code

File uploadDirectory = cleanupAndCreateDirectoryForUser();
try {
var uploadedFile = new File(uploadDirectory, fullName);
uploadedFile.createNewFile();
FileCopyUtils.copy(file.getBytes(), uploadedFile);

3 Data Flow/s detected
View Data Flow 1

protected AttackResult execute(MultipartFile file, String fullName) {

FileCopyUtils.copy(file.getBytes(), uploadedFile);

View Data Flow 2

return super.execute(file, fullName != null ? fullName.replace("../", "") : "");

protected AttackResult execute(MultipartFile file, String fullName) {

FileCopyUtils.copy(file.getBytes(), uploadedFile);

View Data Flow 3

return super.execute(file, file.getOriginalFilename());

protected AttackResult execute(MultipartFile file, String fullName) {

FileCopyUtils.copy(file.getBytes(), uploadedFile);

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior Path/Directory Traversal Training

● Videos

   ▪ Secure Code Warrior Path/Directory Traversal Video

● Further Reading

   ▪ OWASP Path Traversal

   ▪ OWASP Input Validation Cheat Sheet

 
HighSQL Injection

CWE-89

SqlInjectionLesson8.java:158

22024-09-18 07:00pm
Vulnerable Code

String logQuery =
"INSERT INTO access_log (time, action) VALUES ('" + time + "', '" + action + "')";
try {
Statement statement = connection.createStatement(TYPE_SCROLL_SENSITIVE, CONCUR_UPDATABLE);
statement.executeUpdate(logQuery);

2 Data Flow/s detected
View Data Flow 1

public AttackResult completed(@RequestParam String name, @RequestParam String auth_tan) {

protected AttackResult injectableQueryConfidentiality(String name, String auth_tan) {

public static void log(Connection connection, String action) {

"INSERT INTO access_log (time, action) VALUES ('" + time + "', '" + action + "')";

View Data Flow 2

public AttackResult completed(@RequestParam String name, @RequestParam String auth_tan) {

protected AttackResult injectableQueryIntegrity(String name, String auth_tan) {

public static void log(Connection connection, String action) {

"INSERT INTO access_log (time, action) VALUES ('" + time + "', '" + action + "')";

Secure Code Warrior Training Material

● Training

   ▪ Secure Code Warrior SQL Injection Training

● Videos

   ▪ Secure Code Warrior SQL Injection Video

● Further Reading

   ▪ OWASP SQL Injection Prevention Cheat Sheet

   ▪ OWASP SQL Injection

   ▪ OWASP Query Parameterization Cheat Sheet

Findings Overview

Severity Vulnerability Type CWE Language Count
High SQL Injection CWE-89 Java* 14
High Deserialization of Untrusted Data CWE-502 Java* 2
High Path/Directory Traversal CWE-22 Java* 7
High Server Side Request Forgery CWE-918 Java* 2
Medium XML External Entity (XXE) Injection CWE-611 Java* 1
Medium Error Messages Information Exposure CWE-209 Java* 4
Low System Properties Disclosure CWE-497 Java* 1
Low Weak Hash Strength CWE-328 Java* 1
Low Log Forging CWE-117 Java* 1
@mend-for-github-com mend-for-github-com bot added the Mend: code security findings Code security findings detected by Mend label Sep 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Mend: code security findings Code security findings detected by Mend
Projects
None yet
Development

No branches or pull requests

0 participants
0