From 1bb597311f437505c3934d8e0902b7978d5476be Mon Sep 17 00:00:00 2001 From: Edmar-Sousa Date: Sun, 5 Oct 2025 14:01:42 -0300 Subject: [PATCH 1/8] feat: initial folders structure --- .../a5/insecure-file-upload/.gitignore | 0 .../a5/insecure-file-upload/Makefile | 0 .../a5/insecure-file-upload/README.md | 0 .../a5/insecure-file-upload/app/index.html | 11 +++++++++++ .../a5/insecure-file-upload/app/public/css/main.css | 0 .../a5/insecure-file-upload/app/upload.php | 0 6 files changed, 11 insertions(+) create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/.gitignore create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/Makefile create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/README.md create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/app/index.html create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/app/upload.php diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/.gitignore b/owasp-top10-2021-apps/a5/insecure-file-upload/.gitignore new file mode 100644 index 000000000..e69de29bb diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/Makefile b/owasp-top10-2021-apps/a5/insecure-file-upload/Makefile new file mode 100644 index 000000000..e69de29bb diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/README.md b/owasp-top10-2021-apps/a5/insecure-file-upload/README.md new file mode 100644 index 000000000..e69de29bb diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/index.html b/owasp-top10-2021-apps/a5/insecure-file-upload/app/index.html new file mode 100644 index 000000000..3e316bb8f --- /dev/null +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/index.html @@ -0,0 +1,11 @@ + + + + + + Sec Dev Labs - 2025 + + + + + \ No newline at end of file diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css new file mode 100644 index 000000000..e69de29bb diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/upload.php b/owasp-top10-2021-apps/a5/insecure-file-upload/app/upload.php new file mode 100644 index 000000000..e69de29bb From df33d92535b1256eb66e35404908c0b58c66f072 Mon Sep 17 00:00:00 2001 From: Edmar-Sousa Date: Sun, 5 Oct 2025 14:06:34 -0300 Subject: [PATCH 2/8] refact: change structure --- .../a5/insecure-file-upload/app/{ => public}/index.html | 0 .../a5/insecure-file-upload/app/{ => src}/upload.php | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename owasp-top10-2021-apps/a5/insecure-file-upload/app/{ => public}/index.html (100%) rename owasp-top10-2021-apps/a5/insecure-file-upload/app/{ => src}/upload.php (100%) diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/index.html b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html similarity index 100% rename from owasp-top10-2021-apps/a5/insecure-file-upload/app/index.html rename to owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/upload.php b/owasp-top10-2021-apps/a5/insecure-file-upload/app/src/upload.php similarity index 100% rename from owasp-top10-2021-apps/a5/insecure-file-upload/app/upload.php rename to owasp-top10-2021-apps/a5/insecure-file-upload/app/src/upload.php From 7dd53f4e26017c469a34968f2609b839c719cdb0 Mon Sep 17 00:00:00 2001 From: Edmar-Sousa Date: Sun, 5 Oct 2025 15:01:05 -0300 Subject: [PATCH 3/8] refact: config infra with docker compose and docker --- .../a5/insecure-file-upload/app/public/.htaccess | 12 ++++++++++++ .../a5/insecure-file-upload/app/public/css/main.css | 6 ++++++ .../a5/insecure-file-upload/app/public/index.html | 4 +++- .../a5/insecure-file-upload/app/public/upload.php | 3 +++ .../a5/insecure-file-upload/app/src/upload.php | 0 .../a5/insecure-file-upload/deployments/Dockerfile | 10 ++++++++++ .../a5/insecure-file-upload/deployments/apache.conf | 11 +++++++++++ .../deployments/docker-compose.yml | 11 +++++++++++ 8 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/app/public/.htaccess create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/app/public/upload.php delete mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/app/src/upload.php create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/deployments/Dockerfile create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/deployments/apache.conf create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/deployments/docker-compose.yml diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/.htaccess b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/.htaccess new file mode 100644 index 000000000..03fb5c1d8 --- /dev/null +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/.htaccess @@ -0,0 +1,12 @@ +DirectoryIndex index.php index.html + + + RewriteEngine On + RewriteBase / + + RewriteRule ^upload$ upload.php [L] + + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + + diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css index e69de29bb..1b915e8b8 100644 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css @@ -0,0 +1,6 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html index 3e316bb8f..c8a8d830a 100644 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html @@ -4,8 +4,10 @@ Sec Dev Labs - 2025 + + - + \ No newline at end of file diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/upload.php b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/upload.php new file mode 100644 index 000000000..c81e848f2 --- /dev/null +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/upload.php @@ -0,0 +1,3 @@ + + DocumentRoot /var/www/html/public + + + AllowOverride All + Require all granted + + + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + \ No newline at end of file diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/deployments/docker-compose.yml b/owasp-top10-2021-apps/a5/insecure-file-upload/deployments/docker-compose.yml new file mode 100644 index 000000000..73e522fa9 --- /dev/null +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/deployments/docker-compose.yml @@ -0,0 +1,11 @@ +services: + php-insecure-file-upload: + build: + context: .. + dockerfile: ./deployments/Dockerfile + + ports: + - "8080:80" + + volumes: + - ../app/public:/var/www/html/public From 4d5e2fc677b035ae3a2f801edca8b1b89db68e7a Mon Sep 17 00:00:00 2001 From: Edmar-Sousa Date: Sun, 5 Oct 2025 16:08:41 -0300 Subject: [PATCH 4/8] feat: front-end of the application --- .../app/public/css/main.css | 161 ++++++++++++++++++ .../app/public/index.html | 68 ++++++++ 2 files changed, 229 insertions(+) diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css index 1b915e8b8..04b3901a6 100644 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css @@ -1,6 +1,167 @@ +@import url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100..900;1,100..900&display=swap'); + * { margin: 0; padding: 0; box-sizing: border-box; } + +html, :root { + + --background-color: #F3F4FF; + --white-color: #fff; + + --purple-400: #4D44B5; + + --gray-300: #dadada; + --gray-400: #313131; + + --blue-900: #303972; + +} + + +.app { + width: 100vw; + min-height: 100vh; + + display: flex; + align-items: center; + justify-content: center; + + padding: 30px; + + background-color: var(--background-color); +} + +.container-uploads { + width: 100%; + max-width: 600px; + + padding: 20px; + border-radius: 20px; + + box-shadow: 0 0 10px var(--gray-300); + + display: flex; + flex-direction: column; + gap: 50px; + + background-color: var(--white-color); +} + +.upload-section { + flex: 1; +} + +@media screen and (min-width: 1024px) { + .container-uploads { + flex-direction: row; + } +} + +.hidden { + display: none; +} + +.title-form { + margin-bottom: 50px; + + color: var(--blue-900); + font-size: 18px; + font-family: Roboto, Arial; +} + +.files-uploaded { + list-style-type: none; + + display: flex; + flex-direction: column; + gap: 15px; +} + +.file-item { + display: flex; + align-items: center; + gap: 20px; + + font-family: Roboto, Arial; +} + +.file-item svg { + width: 40px; + height: 40px; +} + +.file-item div { + flex: 1; +} + +.file-item .file-title { + font-weight: bold; +} + +.file-item .file-size { + font-weight: normal; + font-size: 12px; + + color: var(--gray-400); +} + +.upload-area { + width: 100%; + min-height: 150px; + + border-radius: 16px; + padding: 20px; + border: 2px dashed var(--purple-400); + + display: flex; + flex-direction: column; + align-items: center; + + gap: 20px; + + font-family: Roboto, Arial; + text-align: center; +} + +.upload-area svg { + width: 50px; + height: 50px; +} + +.file-header { + width: 100%; + + display: flex; + align-items: center; + justify-content: space-between; +} + +.view-image svg { + width: 20px; + height: 20px; +} + +.button-container { + margin-top: 20px; +} + +.button-submit { + display: block; + margin: auto; + + width: 150px; + height: 40px; + + border: none; + border-radius: 10px; + + font-family: Roboto, Arial; + font-weight: bold; + + color: var(--white-color); + background-color: var(--purple-400); +} diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html index c8a8d830a..eeeaceaff 100644 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html @@ -9,5 +9,73 @@ +
+
+
+
+ + + + +
+ +
+
+
+ +
+

Arquivos Processados:

+ +
    + +
+
+
+
+ \ No newline at end of file From 9b897c8cea54bde5d8917e406aa7aaeea15799c3 Mon Sep 17 00:00:00 2001 From: Edmar-Sousa Date: Sun, 5 Oct 2025 18:00:22 -0300 Subject: [PATCH 5/8] feat: finished front-end of the application --- .../insecure-file-upload/app/public/.htaccess | 2 - .../app/public/css/main.css | 54 ++++++- .../app/public/index.html | 81 ---------- .../insecure-file-upload/app/public/index.php | 143 ++++++++++++++++++ .../app/public/upload.php | 55 ++++++- .../deployments/Dockerfile | 4 +- .../deployments/docker-compose.yml | 4 +- 7 files changed, 251 insertions(+), 92 deletions(-) delete mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.php diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/.htaccess b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/.htaccess index 03fb5c1d8..c4caa5b68 100644 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/.htaccess +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/.htaccess @@ -3,8 +3,6 @@ DirectoryIndex index.php index.html RewriteEngine On RewriteBase / - - RewriteRule ^upload$ upload.php [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css index 04b3901a6..2c61c7e0e 100644 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/css/main.css @@ -14,6 +14,12 @@ html, :root { --purple-400: #4D44B5; + --red-400: #d82424; + --red-900: #830606; + + --green-400: #57d824; + --green-900: #108306; + --gray-300: #dadada; --gray-400: #313131; @@ -35,6 +41,33 @@ html, :root { background-color: var(--background-color); } +.alert { + width: 100%; + + display: flex; + align-items: center; + gap: 10px; + + padding: 10px; + margin-bottom: 15px; + + font-family: Roboto, Arial; + font-weight: 600; + + border-radius: 10px; + border: 3px solid ; +} + +.alert.error { + background-color: var(--red-400); + border-color: var(--red-900); +} + +.alert.success { + background-color: var(--green-400); + border-color: var(--green-900); +} + .container-uploads { width: 100%; max-width: 600px; @@ -43,10 +76,6 @@ html, :root { border-radius: 20px; box-shadow: 0 0 10px var(--gray-300); - - display: flex; - flex-direction: column; - gap: 50px; background-color: var(--white-color); } @@ -55,8 +84,14 @@ html, :root { flex: 1; } +.sections-container { + display: flex; + flex-direction: column; + gap: 50px; +} + @media screen and (min-width: 1024px) { - .container-uploads { + .sections-container { flex-direction: row; } } @@ -165,3 +200,12 @@ html, :root { color: var(--white-color); background-color: var(--purple-400); } + +.empty-uploads { + display: flex; + align-items: center; + gap: 10px; + + font-family: Roboto, Arial; + color: var(--gray-400); +} diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html deleted file mode 100644 index eeeaceaff..000000000 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.html +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - Sec Dev Labs - 2025 - - - - - -
-
-
-
- - - - -
- -
-
-
- -
-

Arquivos Processados:

- -
    - -
-
-
-
- - - \ No newline at end of file diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.php b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.php new file mode 100644 index 000000000..3efa6dbf4 --- /dev/null +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/index.php @@ -0,0 +1,143 @@ + number_format($fileSize, 2) . ' KB', + 'name' => $file, + 'link' => '/uploads/' . $file, + ]; + +} + +?> + + + + + + + + Sec Dev Labs - 2025 + + + + + + +
+
+ + +
+ + + + + + + +
+ + +
+
+
+ + + + +
+ +
+
+
+ +
+

Arquivos Processados:

+ +
    + +
  • + + + + + + +

    Nanhum arquivo encontrado

    +
  • + + + $file): ?> +
  • + + + + + + + +
    +
    +

    + + + + + + + +
    + +

    +
    +
  • + + + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/upload.php b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/upload.php index c81e848f2..313432dd2 100644 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/upload.php +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/public/upload.php @@ -1,3 +1,56 @@ 'error', + 'content' => 'O arquivo não contem a extensão .png', + ]; + + header('Location: index.php'); + die(); +} + +$uploadFolder = __DIR__ . '/uploads/'; + +if (!is_dir($uploadFolder)) { + $_SESSION['message'] = [ + 'type' => 'error', + 'content' => 'Não foi possivel salvar o arquivo no disco', + ]; + + header('Location: index.php'); + die(); +} + +$uploadFileDestination = $uploadFolder . $fileUploadName; + + +if (!copy($fileUploadPath, $uploadFileDestination)) { + $_SESSION['message'] = [ + 'type' => 'error', + 'content' => 'Não foi possivel salvar o arquivo no disco', + ]; + + header('Location: index.php'); + die(); +} + +$_SESSION['message'] = [ + 'type' => 'success', + 'content' => 'Upload da imagem feito com sucesso!', +]; + +header('Location: index.php'); +die(); diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/deployments/Dockerfile b/owasp-top10-2021-apps/a5/insecure-file-upload/deployments/Dockerfile index 10a9721b3..2b3b1b42f 100644 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/deployments/Dockerfile +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/deployments/Dockerfile @@ -3,8 +3,10 @@ FROM php:8.2-apache RUN a2enmod rewrite COPY app/public /var/www/html/public - COPY deployments/apache.conf /etc/apache2/sites-available/000-default.conf +RUN mkdir -p /var/www/html/public/uploads +RUN chmod 775 /var/www/html/public/uploads + RUN chown -R www-data:www-data /var/www/html diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/deployments/docker-compose.yml b/owasp-top10-2021-apps/a5/insecure-file-upload/deployments/docker-compose.yml index 73e522fa9..b18943de3 100644 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/deployments/docker-compose.yml +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/deployments/docker-compose.yml @@ -7,5 +7,5 @@ services: ports: - "8080:80" - volumes: - - ../app/public:/var/www/html/public + # volumes: + # - ../app/public:/var/www/html/public From 886d882ac0364a83a82bee356fcf75bd58f62f50 Mon Sep 17 00:00:00 2001 From: Edmar-Sousa Date: Sun, 5 Oct 2025 18:06:26 -0300 Subject: [PATCH 6/8] feat: banner app --- .../a5/insecure-file-upload/images/img1.png | Bin 0 -> 33221 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/images/img1.png diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/images/img1.png b/owasp-top10-2021-apps/a5/insecure-file-upload/images/img1.png new file mode 100644 index 0000000000000000000000000000000000000000..19fde96d9595ae091d1a1903b3aa2a89c4362e43 GIT binary patch literal 33221 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�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 literal 0 HcmV?d00001 From c679711bc4d6269f5ad50b96a6c9e5bc0d7ab256 Mon Sep 17 00:00:00 2001 From: Edmar-Sousa Date: Sun, 5 Oct 2025 18:55:45 -0300 Subject: [PATCH 7/8] feat: add readme of project --- .../a5/insecure-file-upload/README.md | 124 ++++++++++++++++++ .../a5/insecure-file-upload/app/hello.png.php | 2 + .../a5/insecure-file-upload/images/img2.png | Bin 0 -> 45206 bytes .../a5/insecure-file-upload/images/img3.png | Bin 0 -> 17686 bytes .../a5/insecure-file-upload/images/img4.png | Bin 0 -> 61325 bytes 5 files changed, 126 insertions(+) create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/app/hello.png.php create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/images/img2.png create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/images/img3.png create mode 100644 owasp-top10-2021-apps/a5/insecure-file-upload/images/img4.png diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/README.md b/owasp-top10-2021-apps/a5/insecure-file-upload/README.md index e69de29bb..8d4248fe7 100644 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/README.md +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/README.md @@ -0,0 +1,124 @@ + + +# INSECURE FILE UPLOAD + +

+ +

+ +Insecure File Upload is a web laboratory written in PHP, with weak file upload validations. +A simple app that uploads files to the server’s public folder and displays a list of saved +files that can be viewed. + +This laboratory aims to demonstrate code execution on the server, a security flaw that +falls under A5 — Security Misconfiguration and A3 — Injection in the OWASP classification. + +## Index + +- [Definition](#definition) +- [Setup](#setup) +- [Attack narrative](#attack-narrative) +- [Objectives](#secure-this-app) +- [Solutions](#pr-solutions) +- [Contributing](#contributing) + +## What is Unrestricted File Upload? + +Unrestricted File Upload is a class of vulnerability that occurs when a web application accepts +and stores files from users without performing adequate validation, sanitization, or safe handling. +When file uploads are not properly checked (for type, content, name, storage location, and execution +permissions), an attacker can upload a crafted file that the server later interprets or executes — +for example, a PHP file disguised as an image. This can lead to remote code execution (RCE), local +file inclusion, information disclosure, or other severe compromises. + +## Setup + +To start this intentionally **insecure application**, you will need [Docker][docker install] and [Docker Compose][docker compose install]. After forking [secDevLabs](https://github.com/globocom/secDevLabs), you must type the following commands to start: + +```sh +cd secDevLabs/owasp-top10-2021-apps/a5/insecure-file-upload +``` + +```sh +make install +``` + +Then simply visit [http://localhost:8080][app] + +## Get to know the app :camera_flash: + +To properly understand how this application works, you can follow these simple steps: + +- Access the URL in your browser +- Click the Select Image button +- Choose a PNG image +- Click the Upload button +- Then the file list will update, and you can view the image by clicking the link icon + +## Attack narrative + +Now that you know the purpose of this app, what could possibly go wrong? The following section +describes how an attacker could identify and eventually find sensitive information about the app +or it's users. We encourage you to follow these steps and try to reproduce them on your own to +better understand the attack vector! 😜 + +### 👀 + +Upon accessing the page the attacker will see the following interface. They will then try to find a way to break the application. +A common flaw in applications is the lack of proper validation of user-submitted data. This allows an attacker to take advantage of it. + +

+ +

+ +### 🔥 + +The attacker then decides to see how the application works and, meanwhile, will try to think of a security +vulnerability during the process. When they select an image and click **Upload**, the file list will refresh +with the new file, as shown in the image below. + +

+ +

+ +Ok! Everything went well. In the file listing, when inspecting the page source code, the attacker notices that the image keeps its original name and was saved in the `/uploads` folder on the server. + +

+ +

+ +Ok! At this point the attacker gets an idea: "what if I upload a file named `hello.png.php`?" + +```sh +# hello.png.php + + +

+ +## Secure this app + +How would you migitate this vulnerability? After your changes, an attacker should not be able to: + +- Upload a file with an extension other than an image +- You will not be able to execute the code by accessing `/uploads/` + +## PR solutions + +- Issue still unresolved + + + +## 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! 🎉 + +[secDevLabs]: https://github.com/globocom/secDevLabs +[ExploitDB]: https://www.exploit-db.com/ diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/app/hello.png.php b/owasp-top10-2021-apps/a5/insecure-file-upload/app/hello.png.php new file mode 100644 index 000000000..33da5b24f --- /dev/null +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/app/hello.png.php @@ -0,0 +1,2 @@ +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 dq49JM;1627*4 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

e6JUzE16B5@c9y59-7WghH| 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 JC(r-+zX0pC!1MqB literal 0 HcmV?d00001 diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/images/img3.png b/owasp-top10-2021-apps/a5/insecure-file-upload/images/img3.png new file mode 100644 index 0000000000000000000000000000000000000000..40e98a462453dd549887dc2da9286e52d200ac32 GIT binary patch literal 17686 zcmaI81yo#Nvn@yrm*DR1?iSqL-QC^Y9fCUq4*^1u#vK|bxVyW%&B=f7n>(}KTaU%! z2uJ(-s%qD+T^*$;FM$Ay0}BBGfgmL*stf_~F%DRlfQAJA8VmU~0*lWs!cwZxz>hDq zX(X_X?JB0}s^Vbo>S5$;24P|EU}r|}V&ZIOX76I@;ClY4Qvf)K{@+0&&SplgRu1+= zs#bPp5Gro=L`>{N3MQ^ZEKDryL`)n!Y|K3D97Kw8MD$Fo8Q7Mq5D-KVQldhto;fG0 z9)@UUZx5IEceYaJ?Mb0*-~Yl8ha!Gdrl+E6tb69?A6fOffA(Ij^e!{tp9s#OiY|wa zBx?6Su@;sjYQLA`$gb)XRObvQ%MPUSzHfUQGB?k&5MXWPz0S1ATa-Y-Ot+Ny`dR4T zuWq9LImCahhMo&P-Xebc8u~8KAZRaQ}RpumG|yM$0v>i1GprFX-CJ~gx)z(=sD7Q z7gy=}3*~Ukoe_r{r5LOI8}1{ez?=F!ztNGMse(?l@S(Vy*e0l@`mGNsTSQS5Qs4vg z=Wv9gjw3vX$qsuycKYu`Na$6$>S^(?<{nC{5HVAqn%zvl(ln=RJvpRFuCehYiXDD9 zp|*Y;SaxnEezW!$bby9pX!vW@sHcXH;}O8}=S+wsiHXgG_|%Tw)vXb+#TR%d`wTBe z#Hx^|h9@!Ib!y#@Y4ft677m4VE`pdCQ4vr6HIY@GeT7HyGV460+UQS--w{W zI}CY=h0hq$MZ!kzy?<}*wvLrmRp$|wjP%6S#C$-{6#2x~F{CGyx@( zE!MMO072c5VZFZ+Cw#(B&COjc) zOv{l>c|)G<+Yb4SogBod!4(^932e-wsIoRkz{6tPf~`6lEV>8ZgT;}J%-^H7$(HAf zff%G#U8HX|D%|RoUrZ!WVN($UbGQh_#XSpDhPc~M#U`H%-h~Gwq<2_gq%%X+By5

H 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 literal 0 HcmV?d00001 diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/images/img4.png b/owasp-top10-2021-apps/a5/insecure-file-upload/images/img4.png new file mode 100644 index 0000000000000000000000000000000000000000..6d4d819fa3dde474b80cbad2fbd768c37ae955e2 GIT binary patch literal 61325 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 KBJtSyYySg+-5AXP literal 0 HcmV?d00001 From 73cb8d2ba434d27b9c6665bad960fb5149f48504 Mon Sep 17 00:00:00 2001 From: Edmar-Sousa Date: Sun, 5 Oct 2025 19:02:36 -0300 Subject: [PATCH 8/8] feat: add makefile --- .../a5/insecure-file-upload/Makefile | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/owasp-top10-2021-apps/a5/insecure-file-upload/Makefile b/owasp-top10-2021-apps/a5/insecure-file-upload/Makefile index e69de29bb..f69501466 100644 --- a/owasp-top10-2021-apps/a5/insecure-file-upload/Makefile +++ b/owasp-top10-2021-apps/a5/insecure-file-upload/Makefile @@ -0,0 +1,37 @@ +.SILENT: +.DEFAULT_GOAL := help + +COLOR_RESET = \033[0m +COLOR_COMMAND = \033[36m +COLOR_YELLOW = \033[33m +COLOR_GREEN = \033[32m +COLOR_RED = \033[31m + +PROJECT := INSECURE FILE UPLOAD +PORT := 8080 + +## Installs a development environment +install: compose + +## Composes project using docker-compose +compose: compose-down + docker-compose -f deployments/docker-compose.yml up -d --build --force-recreate + +## Down project using docker-compose +compose-down: + docker-compose -f deployments/docker-compose.yml down + + +## Prints help message +help: + printf "\n${COLOR_YELLOW}${PROJECT}\n------\n${COLOR_RESET}" + awk '/^[a-zA-Z\-\_0-9\.%]+:/ { \ + helpMessage = match(lastLine, /^## (.*)/); \ + if (helpMessage) { \ + helpCommand = substr($$1, 0, index($$1, ":")); \ + helpMessage = substr(lastLine, RSTART + 3, RLENGTH); \ + printf "${COLOR_COMMAND}$$ make %s${COLOR_RESET} %s\n", helpCommand, helpMessage; \ + } \ + } \ + { lastLine = $$0 }' $(MAKEFILE_LIST) | sort + printf "\n" \ No newline at end of file