This blog is all about Cyber Security and IT

Friday, May 3, 2024

How to setup Vapi Machine for API testing


When you want to practise OWASP Top 10 API , then someday you need to setup this machine for practise purpose. 


I am writing this article just to help you with installation steps.

davinder@Davinders-MacBook-Air ~ % ls

Applications Personal Work

Desktop Pictures api

Documents Projects bugbounty

Downloads Public codeql

Library PycharmProjects go

Movies Sites nuclei-templates

Music Study sonarqube


First I created a folder name api and switched inside that folder

davinder@Davinders-MacBook-Air ~ % cd api 


After that I created another folder and go inside that lab folder

davinder@Davinders-MacBook-Air api % cd lab 


Now we will clone the required machine files as:

davinder@Davinders-MacBook-Air lab % git clone https://github.com/roottusk/vapi.git

Cloning into 'vapi'...

remote: Enumerating objects: 8832, done.

remote: Counting objects: 100% (804/804), done.

remote: Compressing objects: 100% (424/424), done.

remote: Total 8832 (delta 376), reused 734 (delta 340), pack-reused 8028

Receiving objects: 100% (8832/8832), 24.34 MiB | 8.47 MiB/s, done.

Resolving deltas: 100% (2441/2441), done.

Updating files: 100% (7326/7326), done.


Now we switch the vapi directory

davinder@Davinders-MacBook-Air lab % cd vapi 


Now run the following commands:

davinder@Davinders-MacBook-Air vapi % sudo docker-compose up -d

Password:


WARN[0000] The "APP_NAME" variable is not set. Defaulting to a blank string. 

WARN[0000] The "PUSHER_APP_KEY" variable is not set. Defaulting to a blank string. 

WARN[0000] The "PUSHER_APP_CLUSTER" variable is not set. Defaulting to a blank string. 

WARN[0000] /Users/davinder/api/lab/vapi/docker-compose.yml: `version` is obsolete 

[+] Running 31/31

 ✔ phpmyadmin Pulled                                                                                                                                                                                24.8s 

   ✔ faef57eae888 Pull complete                                                                                                                                                                      2.8s 

   ✔ 989a1d6c052e Pull complete                                                                                                                                                                      1.1s 

   ✔ 0705c9c2f22d Pull complete                                                                                                                                                                      4.4s 

   ✔ 621478e043ce Pull complete                                                                                                                                                                      2.1s 

   ✔ 98246dcca987 Pull complete                                                                                                                                                                      4.7s 

   ✔ bfed8c155cb6 Pull complete                                                                                                                                                                      4.6s 

   ✔ 7a7c2e908867 Pull complete                                                                                                                                                                      6.6s 

   ✔ d176994b625c Pull complete                                                                                                                                                                      6.0s 

   ✔ 2d8ace6a2716 Pull complete                                                                                                                                                                      5.6s 

   ✔ c70df516383c Pull complete                                                                                                                                                                      7.1s 

   ✔ 15e1b44fe4c7 Pull complete                                                                                                                                                                      7.1s 

   ✔ 65e50d44e95a Pull complete                                                                                                                                                                      7.6s 

   ✔ 77f68910bc0a Pull complete                                                                                                                                                                      8.0s 

   ✔ 605dd3a6e332 Pull complete                                                                                                                                                                      8.2s 

   ✔ 99ce27188f07 Pull complete                                                                                                                                                                      8.6s 

   ✔ 74d64e32c5d5 Pull complete                                                                                                                                                                      9.4s 

   ✔ ef5fc9928b9f Pull complete                                                                                                                                                                      9.4s 

   ✔ 163f3256e112 Pull complete                                                                                                                                                                      9.6s 

 ✔ db Pulled                                                                                                                                                                                        50.3s 

   ✔ c6a0976a2dbe Pull complete                                                                                                                                                                     10.9s 

   ✔ ae691a8c1b16 Pull complete                                                                                                                                                                      9.7s 

   ✔ 8fe011e50abc Pull complete                                                                                                                                                                     10.1s 

   ✔ c5c88c8fbaa8 Pull complete                                                                                                                                                                     11.0s 

   ✔ 25d028b2b1f1 Pull complete                                                                                                                                                                     11.2s 

   ✔ a2cbeb759403 Pull complete                                                                                                                                                                     11.9s 

   ✔ e8ceebeb4e87 Pull complete                                                                                                                                                                     13.5s 

   ✔ 70daaf3f7c42 Pull complete                                                                                                                                                                     12.4s 

   ✔ 01f4c19f9b85 Pull complete                                                                                                                                                                     14.9s 

   ✔ 0c347df2d48a Pull complete                                                                                                                                                                     43.5s 

   ✔ 8903dbcded2d Pull complete                                                                                                                                                                     14.6s 

[+] Building 105.2s (17/17) FINISHED                                                                                                                                                 docker:desktop-linux

 => [www internal] load build definition from Dockerfile                                                                                                                                             0.1s

 => => transferring dockerfile: 580B                                                                                                                                                                 0.0s

 => [www internal] load metadata for docker.io/library/composer:latest                                                                                                                               3.7s

 => [www internal] load metadata for docker.io/library/php:7.4-apache                                                                                                                                3.6s

 => [www auth] library/php:pull token for registry-1.docker.io                                                                                                                                       0.0s

 => [www auth] library/composer:pull token for registry-1.docker.io                                                                                                                                  0.0s

 => [www internal] load .dockerignore                                                                                                                                                                0.0s

 => => transferring context: 2B                                                                                                                                                                      0.0s

 => [www stage-0 1/8] FROM docker.io/library/php:7.4-apache@sha256:c9d7e608f73832673479770d66aacc8100011ec751d1905ff63fae3fe2e0ca6d                                                                 37.0s

 => => resolve docker.io/library/php:7.4-apache@sha256:c9d7e608f73832673479770d66aacc8100011ec751d1905ff63fae3fe2e0ca6d                                                                              0.0s

 => => sha256:c9d7e608f73832673479770d66aacc8100011ec751d1905ff63fae3fe2e0ca6d 1.86kB / 1.86kB                                                                                                       0.0s

 => => sha256:f3ac85625e767ee0ec42b5a2ef93880251cd973b86f77124c4ed39bccd2f8bf9 30.06MB / 30.06MB                                                                                                     1.3s

 => => sha256:cef99caa15fe8fdcd9b6edce648170b984bb470cb4fd7c3470a8677cbf70ccf6 3.04kB / 3.04kB                                                                                                       0.0s

 => => sha256:fe6d1ba7ae23775176ca857c2af51839443b978af2b711a771f4e8457dcef9d6 12.52kB / 12.52kB                                                                                                     0.0s

 => => sha256:52c4af7a39c39eedcaf52194d52f333a71017ffe436a4e3725ebeb10f91baccf 86.93MB / 86.93MB                                                                                                     3.8s

 => => sha256:826c69643efc7a2fa413b41d83553f587c092a532d2d6582de3caf323e79a005 226B / 226B                                                                                                           1.3s

 => => sha256:48bbb37a166bb998d4d6855dd70df915916376afc2a7eb0646a4453bbd43e8d6 19.17MB / 19.17MB                                                                                                     2.8s

 => => extracting sha256:f3ac85625e767ee0ec42b5a2ef93880251cd973b86f77124c4ed39bccd2f8bf9                                                                                                            9.2s

 => => sha256:946bbe7211684bcd10ae8486cd441fc15f18504b0795e1bbc3b0687b492b215e 269B / 269B                                                                                                           1.9s

 => => sha256:c5ba13601c856716cb7971ee60f01f0138236c05cadff15fd387bd5308610f98 475B / 475B                                                                                                           2.5s

 => => sha256:e63b292a06a12240a013c7c7fc0ccc4117d2e75937b72ec7aa64b77333157619 510B / 510B                                                                                                           3.1s

 => => sha256:ac2e4aa724ec9f16deec3d76b47c10c6416bdc26682dcbd436831f789ef66ab5 10.76MB / 10.76MB                                                                                                     4.0s

 => => sha256:60f3998c5ba63dc3318a94cdcd5edb313a1d9f325e5be9fef1e36a83db40ab1c 493B / 493B                                                                                                           3.9s

 => => sha256:988fd8f2e2a7cea48d53220bcfd81139bcdf83c3d7390a6e621f0490748a0762 10.00MB / 10.00MB                                                                                                     4.6s

 => => sha256:dc1c2b16275e20d87f9de7355eda30f5d6a84fea15e01fdac4600fa3d0f7a45a 2.46kB / 2.46kB                                                                                                       4.3s

 => => sha256:a0a2e1d76bfef0e3b37afb36c4e1ff0398f1f92988f2b1cacc63e953fd4e203d 244B / 244B                                                                                                           4.4s

 => => sha256:3a667e35f6ca703bb8fed26fbcdb5dc8c6819a82112f6c4da8dd9441e6c222c3 891B / 891B                                                                                                           4.7s

 => => extracting sha256:826c69643efc7a2fa413b41d83553f587c092a532d2d6582de3caf323e79a005                                                                                                            0.0s

 => => extracting sha256:52c4af7a39c39eedcaf52194d52f333a71017ffe436a4e3725ebeb10f91baccf                                                                                                           17.0s

 => => extracting sha256:946bbe7211684bcd10ae8486cd441fc15f18504b0795e1bbc3b0687b492b215e                                                                                                            0.0s

 => => extracting sha256:48bbb37a166bb998d4d6855dd70df915916376afc2a7eb0646a4453bbd43e8d6                                                                                                            4.2s

 => => extracting sha256:c5ba13601c856716cb7971ee60f01f0138236c05cadff15fd387bd5308610f98                                                                                                            0.0s

 => => extracting sha256:e63b292a06a12240a013c7c7fc0ccc4117d2e75937b72ec7aa64b77333157619                                                                                                            0.0s

 => => extracting sha256:ac2e4aa724ec9f16deec3d76b47c10c6416bdc26682dcbd436831f789ef66ab5                                                                                                            0.5s

 => => extracting sha256:60f3998c5ba63dc3318a94cdcd5edb313a1d9f325e5be9fef1e36a83db40ab1c                                                                                                            0.0s

 => => extracting sha256:988fd8f2e2a7cea48d53220bcfd81139bcdf83c3d7390a6e621f0490748a0762                                                                                                            1.8s

 => => extracting sha256:dc1c2b16275e20d87f9de7355eda30f5d6a84fea15e01fdac4600fa3d0f7a45a                                                                                                            0.0s

 => => extracting sha256:a0a2e1d76bfef0e3b37afb36c4e1ff0398f1f92988f2b1cacc63e953fd4e203d                                                                                                            0.0s

 => => extracting sha256:3a667e35f6ca703bb8fed26fbcdb5dc8c6819a82112f6c4da8dd9441e6c222c3                                                                                                            0.0s

 => [www internal] load build context                                                                                                                                                                4.2s

 => => transferring context: 37.89MB                                                                                                                                                                 4.1s

 => [www] FROM docker.io/library/composer:latest@sha256:ee4676ef56f97c82f11b421717386bcf9353a53bee9276c414ad80a0a4dc0e02                                                                            24.6s

 => => resolve docker.io/library/composer:latest@sha256:ee4676ef56f97c82f11b421717386bcf9353a53bee9276c414ad80a0a4dc0e02                                                                             0.0s

 => => sha256:ee4676ef56f97c82f11b421717386bcf9353a53bee9276c414ad80a0a4dc0e02 1.65kB / 1.65kB                                                                                                       0.0s

 => => sha256:f6fee97370fbde11b86c2a571f1788aefc29e29672dbb8ceeb66785dc62b5de0 11.61kB / 11.61kB                                                                                                     0.0s

 => => sha256:84daa36296e4131baa878696b156f234bdbba14d45c098d535a7977d133cc2c9 3.25kB / 3.25kB                                                                                                       0.0s

 => => sha256:af252c8885a7ef2b1e85bce006efb30a7c8fb938ae8b50557ac99f551db6347d 2.82MB / 2.82MB                                                                                                       5.2s

 => => sha256:41380dbb2574885d6efd5d44c03067af395ce0303f74e6aa7a08b639904dfb09 1.26kB / 1.26kB                                                                                                       5.3s

 => => sha256:3a0a53e1b8079d8de445a7d2739eb1b065a4df2f537d45e8ceaeeb4469bc61a2 268B / 268B                                                                                                           5.5s

 => => extracting sha256:af252c8885a7ef2b1e85bce006efb30a7c8fb938ae8b50557ac99f551db6347d                                                                                                            0.4s

 => => sha256:83a1cb08c153498a9be7caaa2185c10e49058066ae96cb5f9a71d928b5b615a5 499B / 499B                                                                                                           5.6s

 => => sha256:e047714a905aeb3085f24804f128f996f8652475104aabeccc96d46e2b5d8741 12.49MB / 12.49MB                                                                                                     6.1s

 => => sha256:a823bdce6d4900de117ddad0572b8f58c795e051543a1ffcbdf9d23626dea6e4 19.65MB / 19.65MB                                                                                                     8.6s

 => => sha256:0a5912cb7b33d5cc4c747e9c6e85606d780d02ed0db3eb60130baa080178dce3 2.45kB / 2.45kB                                                                                                       6.1s

 => => extracting sha256:41380dbb2574885d6efd5d44c03067af395ce0303f74e6aa7a08b639904dfb09                                                                                                            0.0s

 => => sha256:00793d4382f7a2149912ef9897d9923ba0894f13a9bc62438ba9dded2b9bdba1 19.11kB / 19.11kB                                                                                                     6.5s

 => => sha256:c7a2a6c176a1976be48907ffc0136b5aa7728f82e5ba4107f3627aeb9953c878 33.24MB / 33.24MB                                                                                                     7.4s

 => => extracting sha256:3a0a53e1b8079d8de445a7d2739eb1b065a4df2f537d45e8ceaeeb4469bc61a2                                                                                                            0.0s

 => => extracting sha256:e047714a905aeb3085f24804f128f996f8652475104aabeccc96d46e2b5d8741                                                                                                            0.5s

 => => sha256:12daba0c8ab18c465f6334989a062567fadd24887fe1b1b1b49494c843ec3768 263B / 263B                                                                                                           7.0s

 => => sha256:ec67af609aee28b376fa933d6b9f9dd83e49c9ea1d3cf9c985ca37771d7ab785 15.98MB / 15.98MB                                                                                                     8.1s

 => => extracting sha256:83a1cb08c153498a9be7caaa2185c10e49058066ae96cb5f9a71d928b5b615a5                                                                                                            0.0s

 => => sha256:6b2b5ac8f88d87baa1de849a80f12e9e5640dfdeaeb9f4c9c1d930ed41a6e709 418B / 418B                                                                                                           8.0s

 => => sha256:c551c33f70b76b959018ace3055ab9852ce783f34744811ef215a57d56f5ac26 124B / 124B                                                                                                           8.4s

 => => extracting sha256:a823bdce6d4900de117ddad0572b8f58c795e051543a1ffcbdf9d23626dea6e4                                                                                                            2.1s

 => => extracting sha256:0a5912cb7b33d5cc4c747e9c6e85606d780d02ed0db3eb60130baa080178dce3                                                                                                            0.0s

 => => extracting sha256:00793d4382f7a2149912ef9897d9923ba0894f13a9bc62438ba9dded2b9bdba1                                                                                                            0.0s

 => => extracting sha256:c7a2a6c176a1976be48907ffc0136b5aa7728f82e5ba4107f3627aeb9953c878                                                                                                            5.7s

 => => extracting sha256:12daba0c8ab18c465f6334989a062567fadd24887fe1b1b1b49494c843ec3768                                                                                                            0.0s

 => => extracting sha256:ec67af609aee28b376fa933d6b9f9dd83e49c9ea1d3cf9c985ca37771d7ab785                                                                                                            5.6s

 => => extracting sha256:6b2b5ac8f88d87baa1de849a80f12e9e5640dfdeaeb9f4c9c1d930ed41a6e709                                                                                                            0.0s

 => => extracting sha256:c551c33f70b76b959018ace3055ab9852ce783f34744811ef215a57d56f5ac26                                                                                                            0.0s

 => [www stage-0 2/8] RUN docker-php-ext-install mysqli pdo_mysql                                                                                                                                   35.9s

 => [www stage-0 3/8] RUN apt-get update     && apt-get install -y libzip-dev     && apt-get install -y zlib1g-dev     && rm -rf /var/lib/apt/lists/*     && docker-php-ext-install zip             21.1s

 => [www stage-0 4/8] COPY --from=composer:latest /usr/bin/composer /usr/local/bin/composer                                                                                                          0.1s

 => [www stage-0 5/8] COPY ./vapi /var/www/html/vapi                                                                                                                                                 3.6s

 => [www stage-0 6/8] RUN rm /var/www/html/vapi/.env                                                                                                                                                 0.4s

 => [www stage-0 7/8] RUN echo "flag{ssrf_e0pgt3az9zeqdd4fhatc}" > /flag.txt                                                                                                                         0.4s

 => [www stage-0 8/8] RUN php /var/www/html/vapi/artisan config:cache                                                                                                                                1.1s

 => [www] exporting to image                                                                                                                                                                         1.6s

 => => exporting layers                                                                                                                                                                              1.5s

 => => writing image sha256:c5c7f8b275de7c0a59ffd1988ba18581ef120e17f11a4aadedf002741dcb467f                                                                                                         0.0s

 => => naming to docker.io/library/vapi-www                                                                                                                                                          0.0s

[+] Running 6/5

 ✔ Network vapi_default                                                                                                                                      Created                                 0.1s 

 ✔ Volume "vapi_persistent"                                                                                                                                  Created                                 0.0s 

 ✔ Container vapi-db-1                                                                                                                                       Created                                 0.2s 

 ✔ Container vapi-phpmyadmin-1                                                                                                                               Create...                               0.2s 

 ✔ Container vapi-www-1                                                                                                                                      Created                                 0.1s 

 ! phpmyadmin The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested                                         0.0s 


 ⠋ Container vapi-db-1  Starting                                                                                                                                                                     0.0s 

Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: address already in use

davinder@Davinders-MacBook-Air vapi % sudo docker-compose up -d

WARN[0000] The "PUSHER_APP_CLUSTER" variable is not set. Defaulting to a blank string. 

WARN[0000] The "APP_NAME" variable is not set. Defaulting to a blank string. 

WARN[0000] The "PUSHER_APP_KEY" variable is not set. Defaulting to a blank string. 

WARN[0000] /Users/davinder/api/lab/vapi/docker-compose.yml: `version` is obsolete 

[+] Running 3/3

 ✔ Container vapi-db-1          Started                                    0.2s 

 ✔ Container vapi-phpmyadmin-1  Started                                    0.3s 

 ✔ Container vapi-www-1         Started                                    0.2s 

davinder@Davinders-MacBook-Air vapi % 


After successful installation. You will see something like this: