diff --git a/README.md b/README.md index 054be83ca..36103af4f 100644 --- a/README.md +++ b/README.md @@ -67,7 +67,7 @@ Disclaimer: You are about to install vulnerable mobile apps in your machine! ## Contributing -We encourage you to contribute to SecDevLabs! Please check out the [Contributing to SecDevLabs](/docs/CONTRIBUTING.md) section for guidelines on how to proceed! 🎉 +We encourage you to contribute to SecDevLabs! Please check out the [Contributing to SecDevLabs](docs/CONTRIBUTING.md) section for guidelines on how to proceed! 🎉 ## License diff --git a/owasp-top10-2021-apps/a1/tictactoe/deployments/docker-compose.yml b/owasp-top10-2021-apps/a1/tictactoe/deployments/docker-compose.yml index eed83d92d..14070dd22 100644 --- a/owasp-top10-2021-apps/a1/tictactoe/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a1/tictactoe/deployments/docker-compose.yml @@ -3,14 +3,14 @@ version: '3' services: api: - container_name: a5_tictactoe + container_name: a1_tictactoe build: context: ../ dockerfile: deployments/Dockerfile ports: - "10005:10005" networks: - - a5net + - a1net env_file: - .dockers.env depends_on: @@ -29,10 +29,10 @@ services: env_file: - .dockers.env networks: - - a5net + - a1net networks: - a5net: + a1net: volumes: db_data: diff --git a/owasp-top10-2021-apps/a3/comment-killer/deployments/docker-compose.yml b/owasp-top10-2021-apps/a3/comment-killer/deployments/docker-compose.yml index f36d78218..b3361f385 100644 --- a/owasp-top10-2021-apps/a3/comment-killer/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a3/comment-killer/deployments/docker-compose.yml @@ -1,11 +1,11 @@ version: "3.7" networks: - a7_net: + a3_net: services: app: - container_name: app-a7 + container_name: app-a3 build: context: ../ dockerfile: deployments/app.Dockerfile @@ -13,10 +13,10 @@ services: - "10007:3000" stdin_open: true networks: - - a7_net + - a3_net api: - container_name: api-a7 + container_name: api-a3 build: context: ../ dockerfile: deployments/api.Dockerfile @@ -24,4 +24,4 @@ services: - "10017:10017" command: "go run main.go" networks: - - a7_net + - a3_net diff --git a/owasp-top10-2021-apps/a3/copy-n-paste/README.md b/owasp-top10-2021-apps/a3/copy-n-paste/README.md index 6ef40a6bb..ae12c86b7 100644 --- a/owasp-top10-2021-apps/a3/copy-n-paste/README.md +++ b/owasp-top10-2021-apps/a3/copy-n-paste/README.md @@ -63,7 +63,7 @@ Now that you know the purpose of this app, what could go wrong? The following se #### Lack of input validation allows injection of SQL queries -After reviewing `NewUser()` , `CheckIfUserExists()` and `AuthenticateUser()` from [`db.go`](<(https://github.com/globocom/secDevLabs/blob/master/owasp-top10-2021-apps/a3/copy-n-paste/app/util/db.go#)>) file, it was possible to see that some input from users are concatenated with SQL queries, as shown in the following code snippets: +After reviewing `NewUser()` , `CheckIfUserExists()` and `AuthenticateUser()` from [`db.go`](https://github.com/globocom/secDevLabs/blob/master/owasp-top10-2021-apps/a3/copy-n-paste/app/util/db.go) file, it was possible to see that some input from users are concatenated with SQL queries, as shown in the following code snippets: ```go query := fmt.Sprint("select * from Users where username = '" + user + "'") diff --git a/owasp-top10-2021-apps/a3/copy-n-paste/deployments/a1inj.Dockerfile b/owasp-top10-2021-apps/a3/copy-n-paste/deployments/a3inj.Dockerfile similarity index 100% rename from owasp-top10-2021-apps/a3/copy-n-paste/deployments/a1inj.Dockerfile rename to owasp-top10-2021-apps/a3/copy-n-paste/deployments/a3inj.Dockerfile diff --git a/owasp-top10-2021-apps/a3/copy-n-paste/deployments/docker-compose.yml b/owasp-top10-2021-apps/a3/copy-n-paste/deployments/docker-compose.yml index fad1a8442..c772448de 100644 --- a/owasp-top10-2021-apps/a3/copy-n-paste/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a3/copy-n-paste/deployments/docker-compose.yml @@ -1,20 +1,20 @@ version: '3.4' services: api: - container_name: a1_api + container_name: a3_api build: context: ../ - dockerfile: deployments/a1inj.Dockerfile + dockerfile: deployments/a3inj.Dockerfile ports: - "10001:10001" networks: - - a1net + - a3net command: "go run server.go" environment: MYSQL_ROOT_PASSWORD: root MYSQL_USER: user MYSQL_PASSWORD: pass - MYSQL_DATABASE: a1db + MYSQL_DATABASE: a3db depends_on: - mysqldb external_links: @@ -32,12 +32,12 @@ services: MYSQL_ROOT_PASSWORD: root MYSQL_USER: user MYSQL_PASSWORD: pass - MYSQL_DATABASE: a1db + MYSQL_DATABASE: a3db networks: - - a1net + - a3net networks: - a1net: + a3net: volumes: db_data: \ No newline at end of file diff --git a/owasp-top10-2021-apps/a3/gossip-world/deployments/docker-compose.yml b/owasp-top10-2021-apps/a3/gossip-world/deployments/docker-compose.yml index 2fb7adda3..597f2292c 100644 --- a/owasp-top10-2021-apps/a3/gossip-world/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a3/gossip-world/deployments/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.4" services: app: - container_name: app-a7 + container_name: app-a3 build: context: ../ dockerfile: deployments/Dockerfile @@ -11,35 +11,36 @@ services: - "../app/:/app" environment: SECRET_KEY: secretkey - MYSQL_ENDPOINT: mysqldb-a7 + MYSQL_ENDPOINT: mysqldb-a3 MYSQL_PASSWORD: pass MYSQL_USER: user - MYSQL_DB: a7db + MYSQL_DB: a3db networks: - - a7_net + - a3_net depends_on: - - mysqldb-a7 + - mysqldb-a3 external_links: - - mysqldb-a7:mysqldb-a7 + - mysqldb-a3:mysqldb-a3 restart: always - mysqldb-a7: - container_name: mysqldb-a7 + mysqldb-a3: + container_name: mysqldb-a3 image: mariadb:10.6.3 ports: - "3307:3307" environment: MYSQL_ROOT_PASSWORD: root - MYSQL_DATABASE: a7db + MYSQL_DATABASE: a3db MYSQL_USER: user MYSQL_PASSWORD: pass networks: - - a7_net + - a3_net volumes: - - storage-a7-database:/var/lib/mysql + - storage-a3-database:/var/lib/mysql volumes: - storage-a7-database: + storage-a3-database: networks: - a7_net: \ No newline at end of file + a3_net: + diff --git a/owasp-top10-2021-apps/a3/mongection/deployments/docker-compose.yml b/owasp-top10-2021-apps/a3/mongection/deployments/docker-compose.yml index cfdca532b..94e0d4f36 100644 --- a/owasp-top10-2021-apps/a3/mongection/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a3/mongection/deployments/docker-compose.yml @@ -3,7 +3,7 @@ version: '3' services: server: - container_name: a1_mongection + container_name: a3_mongection build: context: ../ dockerfile: deployments/mongection.Dockerfile @@ -13,7 +13,7 @@ services: ports: - "10001:10001" networks: - - a1net + - a3net depends_on: - mongo external_links: @@ -28,7 +28,7 @@ services: ports: - "27017:27017" networks: - - a1net + - a3net networks: - a1net: \ No newline at end of file + a3net: \ No newline at end of file diff --git a/owasp-top10-2021-apps/a3/sstype/deployments/docker-compose.yml b/owasp-top10-2021-apps/a3/sstype/deployments/docker-compose.yml index 8c361eb6b..21db9c0b4 100644 --- a/owasp-top10-2021-apps/a3/sstype/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a3/sstype/deployments/docker-compose.yml @@ -3,15 +3,15 @@ version: '3' services: server: - container_name: a1_sstype + container_name: a3_sstype build: context: ../ dockerfile: deployments/sstype.Dockerfile ports: - "10001:10001" networks: - - a1net + - a3net restart: always networks: - a1net: \ No newline at end of file + a3net: \ No newline at end of file diff --git a/owasp-top10-2021-apps/a3/streaming/README.md b/owasp-top10-2021-apps/a3/streaming/README.md index a321c47e3..10fbd8b89 100644 --- a/owasp-top10-2021-apps/a3/streaming/README.md +++ b/owasp-top10-2021-apps/a3/streaming/README.md @@ -45,7 +45,7 @@ Now that you know the purpose of this app, what could go wrong? The following se #### Non-sanitization of user input allows for cross-site scripting -After reviewing `buildLiveHTMLMessage(message)` from [`play.component.ts`](<(https://github.com/globocom/secDevLabs/blob/master/owasp-top10-2021-apps/a3/streaming/app/frontend/src/app/lives/play/play.component.ts#)>) file, it was possible to identify that loaded messages and username are not sanitized and can be executed on a web browser (as shown in the message bellow). +After reviewing `buildLiveHTMLMessage(message)` from [`play.component.ts`](https://github.com/globocom/secDevLabs/blob/master/owasp-top10-2021-apps/a3/streaming/app/frontend/src/app/lives/play/play.component.ts) file, it was possible to identify that loaded messages and username are not sanitized and can be executed on a web browser (as shown in the message bellow).

diff --git a/owasp-top10-2021-apps/a5/misconfig-wordpress/deployments/docker-compose.yml b/owasp-top10-2021-apps/a5/misconfig-wordpress/deployments/docker-compose.yml index 8a31b3702..d356efaa7 100644 --- a/owasp-top10-2021-apps/a5/misconfig-wordpress/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a5/misconfig-wordpress/deployments/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.4' services: db: - container_name: a6db + container_name: a5db image: mariadb:10.6.3 restart: always environment: @@ -11,10 +11,10 @@ services: MYSQL_PASSWORD: wordpress wordpress: - container_name: a6-wordpress + container_name: a5-wordpress depends_on: - db - image: secdevlabs/a6-the-mistery:wp-version-2 + image: secdevlabs/a5-the-mistery:wp-version-2 ports: - "8000:80" restart: always diff --git a/owasp-top10-2021-apps/a5/stegonography/deployments/docker-compose.yml b/owasp-top10-2021-apps/a5/stegonography/deployments/docker-compose.yml index 0b50926d7..0eae3a115 100644 --- a/owasp-top10-2021-apps/a5/stegonography/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a5/stegonography/deployments/docker-compose.yml @@ -11,7 +11,7 @@ services: ports: - 10006:10006 networks: - - a6_net + - a5_net restart: always db: @@ -23,7 +23,7 @@ services: - 27017:27017 - 27018:27018 networks: - - a6_net + - a5_net networks: - a6_net: \ No newline at end of file + a5_net: \ No newline at end of file diff --git a/owasp-top10-2021-apps/a6/cimentech/deployments/docker-compose.yml b/owasp-top10-2021-apps/a6/cimentech/deployments/docker-compose.yml index b2f83cd9d..9d5ae5987 100644 --- a/owasp-top10-2021-apps/a6/cimentech/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a6/cimentech/deployments/docker-compose.yml @@ -14,17 +14,17 @@ services: - ../app/html/themes:/var/www/html/themes restart: always networks: - - a9_net + - a6_net db: image: postgres:10.5 - container_name: a9db + container_name: a6db environment: POSTGRES_PASSWORD: example ports: - 5432:5432 networks: - - a9_net + - a6_net volumes: - db_data:/var/lib/postgresql/data - ../app/dump.db:/docker-entrypoint-initdb.d/dump.sql @@ -33,4 +33,4 @@ volumes: db_data: networks: - a9_net: + a6_net: diff --git a/owasp-top10-2021-apps/a7/insecure-go-project/README.md b/owasp-top10-2021-apps/a7/insecure-go-project/README.md index 49c200e69..51492298c 100644 --- a/owasp-top10-2021-apps/a7/insecure-go-project/README.md +++ b/owasp-top10-2021-apps/a7/insecure-go-project/README.md @@ -49,11 +49,11 @@ Now that you know the purpose of this app, what could go wrong? The following se #### Sensitive hardcoded credentials allow an attacker access to the database -After inspecting the application source code, it is possible to identify that some sensitive data from MongoDB are hardcoded on the [`config.yml`](../app/config.yml), as shown on the picture below: +After inspecting the application source code, it is possible to identify that some sensitive data from MongoDB are hardcoded on the [`config.yml`](app/config.yml), as shown on the picture below: -This issue can also be found on [`mongo-init.js`](../deployments/mongo-init.js) file, as shown bellow: +This issue can also be found on [`mongo-init.js`](deployments/mongo-init.js) file, as shown bellow: diff --git a/owasp-top10-2021-apps/a7/insecure-go-project/deployments/docker-compose.yml b/owasp-top10-2021-apps/a7/insecure-go-project/deployments/docker-compose.yml index 509ec5faf..efe20f001 100644 --- a/owasp-top10-2021-apps/a7/insecure-go-project/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a7/insecure-go-project/deployments/docker-compose.yml @@ -8,7 +8,7 @@ volumes: services: api: - container_name: a2_insecure_api + container_name: a7_insecure_api build: context: ../ dockerfile: deployments/api.Dockerfile diff --git a/owasp-top10-2021-apps/a7/saidajaula-monster/app/app.py b/owasp-top10-2021-apps/a7/saidajaula-monster/app/app.py index 59267802f..769c5cdd2 100644 --- a/owasp-top10-2021-apps/a7/saidajaula-monster/app/app.py +++ b/owasp-top10-2021-apps/a7/saidajaula-monster/app/app.py @@ -12,10 +12,10 @@ app = Flask(__name__) -database = DataBase(os.environ.get('A2_DATABASE_HOST'), - os.environ.get('A2_DATABASE_USER'), - os.environ.get('A2_DATABASE_PASSWORD'), - os.environ.get('A2_DATABASE_NAME')) +database = DataBase(os.environ.get('A7_DATABASE_HOST'), + os.environ.get('A7_DATABASE_USER'), + os.environ.get('A7_DATABASE_PASSWORD'), + os.environ.get('A7_DATABASE_NAME')) def login_admin_required(f): diff --git a/owasp-top10-2021-apps/a7/saidajaula-monster/deployments/docker-compose.yml b/owasp-top10-2021-apps/a7/saidajaula-monster/deployments/docker-compose.yml index 0449efe01..4c331b9c1 100644 --- a/owasp-top10-2021-apps/a7/saidajaula-monster/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a7/saidajaula-monster/deployments/docker-compose.yml @@ -1,15 +1,15 @@ version: "3.4" services: app: - container_name: app-a2 + container_name: app-a7 build: context: ../ dockerfile: deployments/Dockerfile environment: - A2_DATABASE_USER: user - A2_DATABASE_PASSWORD: pass - A2_DATABASE_HOST: db - A2_DATABASE_NAME: A2 + A7_DATABASE_USER: user + A7_DATABASE_PASSWORD: pass + A7_DATABASE_HOST: db + A7_DATABASE_NAME: A7 links: - db:db depends_on: @@ -17,29 +17,30 @@ services: ports: - "10002:10002" networks: - - a2_net + - a7_net volumes: - "../app/:/app" restart: always db: - container_name: db-a2 + container_name: db-a7 image: mariadb:10.6.3 ports: - "3307:3307" environment: MYSQL_ROOT_PASSWORD: root - MYSQL_DATABASE: A2 + MYSQL_DATABASE: A7 MYSQL_USER: user MYSQL_PASSWORD: pass networks: - - a2_net + - a7_net volumes: - - storage-a2-database:/var/lib/mysql + - storage-a7-database:/var/lib/mysql - ../db:/docker-entrypoint-initdb.d volumes: - storage-a2-database: + storage-a7-database: networks: - a2_net: \ No newline at end of file + a7_net: + diff --git a/owasp-top10-2021-apps/a9/games-irados/deployments/docker-compose.yml b/owasp-top10-2021-apps/a9/games-irados/deployments/docker-compose.yml index 33dac5759..a4211eb8f 100644 --- a/owasp-top10-2021-apps/a9/games-irados/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a9/games-irados/deployments/docker-compose.yml @@ -1,7 +1,7 @@ version: "3.4" services: app: - container_name: app-a10 + container_name: app-a9 build: context: ../ dockerfile: deployments/Dockerfile @@ -9,38 +9,39 @@ services: - "10010:10010" environment: SECRET_KEY: secretkey - MYSQL_ENDPOINT: mysqldb-a10 + MYSQL_ENDPOINT: mysqldb-a9 MYSQL_PASSWORD: pass MYSQL_USER: user - MYSQL_DB: A10 + MYSQL_DB: A9 networks: - - a10_net + - a9_net depends_on: - - mysqldb-a10 + - mysqldb-a9 external_links: - - mysqldb-a10:mysqldb-10 + - mysqldb-a9:mysqldb-a9 volumes: - "../app/:/app" restart: always - mysqldb-a10: - container_name: mysqldb-a10 + mysqldb-a9: + container_name: mysqldb-a9 image: mariadb:10.6.3 ports: - "3307:3307" environment: MYSQL_ROOT_PASSWORD: root - MYSQL_DATABASE: A10 + MYSQL_DATABASE: A9 MYSQL_USER: user MYSQL_PASSWORD: pass networks: - - a10_net + - a9_net volumes: - - storage-a10-database:/var/lib/mysql + - storage-a9-database:/var/lib/mysql restart: unless-stopped volumes: - storage-a10-database: + storage-a9-database: networks: - a10_net: \ No newline at end of file + a9_net: +