From 58691521f2ecc7173510a994c487fe19d2a6fae3 Mon Sep 17 00:00:00 2001 From: eliasgierlinger Date: Tue, 10 Oct 2023 12:43:33 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9D=20refactor(like-service,=20docs):?= =?UTF-8?q?=20Document=20like-service,=20refactor=20env=20variables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + chart/templates/like-service.yaml | 4 +- chart/values.yaml | 2 +- docs/images/unguard-architecture.fig | Bin 71855 -> 72485 bytes docs/images/unguard-architecture.svg | 95 +++++------ .../exploits/sql-injection/README.md | 3 +- src/frontend/static/thumb_up.png | 3 - src/like-service/.env | 8 +- src/like-service/Dockerfile | 2 +- src/like-service/README.md | 147 ++++++++++-------- .../app/Console/Commands/CreateDatabase.php | 6 +- .../app/Http/Controllers/LikeController.php | 8 +- src/like-service/config/app.php | 4 +- src/like-service/config/database.php | 8 +- src/like-service/public/index.php | 2 +- 15 files changed, 158 insertions(+), 135 deletions(-) delete mode 100644 src/frontend/static/thumb_up.png diff --git a/README.md b/README.md index 89828cfe..859a020c 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ Unguard is composed of eight microservices written in different languages that t | [proxy-service](./src/proxy-service) | Java Spring | unguard-proxy | Serves REST API for proxying requests from frontend (vulnerable to SSRF; no sanitization on the entered URL). | | [profile-service](./src/profile-service) | Java Spring | default | Serves REST API for updating biography information in a H2 database; vulnerable to SQL injection attacks | | [membership-service](./src/membership-service) | .NET 7 | default | Serves REST API for updating user memberships in a MariaDB; vulnerable to SQL injection attacks | +| [like-service](./src/like-service) | PHP | default | Serves REST API for liking and unliking posts using MariaDB; vulnerable to an SQL injection attack for removing other users' likes | | [user-auth-service](./src/user-auth-service) | Node.js Express | default | Serves REST API for authenticating users with JWT tokens (vulnerable to JWT key confusion). | | [status-service](./src/status-service) | Go | unguard-status | Serves REST API for Kubernetes deployments health, as well as a user and user role list (vulnerable to SQL injection) | | jaeger | | default | The [Jaeger](https://www.jaegertracing.io/) stack for distributed tracing. | diff --git a/chart/templates/like-service.yaml b/chart/templates/like-service.yaml index d2ccf535..22227aab 100644 --- a/chart/templates/like-service.yaml +++ b/chart/templates/like-service.yaml @@ -70,8 +70,8 @@ spec: - name: JAEGER_SERVICE_NAME value: {{quote (printf "unguard-%s" .Values.likeService.name) }} {{if .Values.tracing.enabled}} - - name: JAEGER_AGENT_HOST - value: {{ quote (printf "%s-%s" .Values.jaeger.name .Values.likeService.deployment.container.env.JAEGER_AGENT_HOST) }} + - name: JAEGER_COLLECTOR_HOST + value: {{ quote (printf "%s-%s" .Values.jaeger.name .Values.likeService.deployment.container.env.JAEGER_COLLECTOR_HOST) }} - name: JAEGER_PORT value: {{ quote .Values.likeService.deployment.container.env.JAEGER_PORT }} - name: SERVICE_NAME diff --git a/chart/values.yaml b/chart/values.yaml index 641880dd..674091d8 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -404,7 +404,7 @@ likeService: ports: containerPort: 8000 env: - JAEGER_AGENT_HOST: collector # PHP OpenTelemetry sends data to jaeger-collector instead of jaeger-agent + JAEGER_COLLECTOR_HOST: collector # PHP OpenTelemetry sends data to jaeger-collector instead of jaeger-agent JAEGER_DISABLED: true JAEGER_PORT: 4318 SERVICE_NAME: unguard-like-service diff --git a/docs/images/unguard-architecture.fig b/docs/images/unguard-architecture.fig index 068d8b4351b78bb638b8cddb5c459463d0db873b..e2a23c1cab8ac665064ace35a7506bc2fd486a20 100644 GIT binary patch literal 72485 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 Bk>&sZ literal 71855 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 z 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 V+&*e-WfU*~>u*l61FhFvg}A(MgA(tNE#TZ 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 + - + - - + + @@ -17,19 +17,20 @@ - - - - - - - + + + + + + + + - + @@ -37,6 +38,12 @@ + + + + + + @@ -52,20 +59,20 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + @@ -80,10 +87,10 @@ - - - - + + + + @@ -92,21 +99,21 @@ - - - - - - - - - - - - + + + + + + + + + + + + - + @@ -117,7 +124,7 @@ - + diff --git a/exploit-toolkit/exploits/sql-injection/README.md b/exploit-toolkit/exploits/sql-injection/README.md index ac5410ce..f78f3074 100644 --- a/exploit-toolkit/exploits/sql-injection/README.md +++ b/exploit-toolkit/exploits/sql-injection/README.md @@ -1,5 +1,6 @@ # SQL injection -Unguard has two SQL injection vulnerabilities: +Unguard has three SQL injection vulnerabilities: * [One in the Java `profile-service`](./SQLI-PROFILE-SERVICE-H2.md), which is exploitable through the user biography and allows you to access the h2 database. * [One in the Golang `status-service`](./SQLI-STATUS-SERVICE-MARIADB.md), which is exploitable through the search bar on the Users page and allows you to access the MariaDB database. +* [One in the PHP `like-service`](./SQLI-LIKE-SERVICE-REMOVE-LIKE.md), which allows you to remove another user's like on a given post if you send the right parameters. diff --git a/src/frontend/static/thumb_up.png b/src/frontend/static/thumb_up.png deleted file mode 100644 index 2d45b2b2..00000000 --- a/src/frontend/static/thumb_up.png +++ /dev/null @@ -1,3 +0,0 @@ -[ZoneTransfer] -ZoneId=3 -HostUrl=about:internet diff --git a/src/like-service/.env b/src/like-service/.env index 6acd3c4f..0957fa46 100644 --- a/src/like-service/.env +++ b/src/like-service/.env @@ -1,4 +1,4 @@ -APP_NAME=unguard-like-service +APP_NAME="${SERVICE_NAME}" APP_ENV=local APP_KEY= APP_DEBUG=true @@ -7,8 +7,8 @@ APP_URL=http://localhost LOG_CHANNEL=stderr DB_CONNECTION=mysql -DB_HOST=unguard-mariadb -DB_PORT=3306 +DB_HOST="${UNGUARD_MARIADB_SERVICE_HOST}" +DB_PORT="${UNGUARD_MARIADB_SERVICE_PORT_MYSQL}" DB_DATABASE=likeDb DB_USERNAME=root DB_PASSWORD= @@ -44,5 +44,3 @@ PUSHER_APP_CLUSTER=mt1 MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}" MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}" - -UNGUARD_USER_AUTH_SERVICE_ADDRESS=unguard-user-auth-service diff --git a/src/like-service/Dockerfile b/src/like-service/Dockerfile index b3234536..c4ed0c09 100644 --- a/src/like-service/Dockerfile +++ b/src/like-service/Dockerfile @@ -15,7 +15,7 @@ COPY . /var/www ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/ RUN chmod +x /usr/local/bin/install-php-extensions && \ - install-php-extensions opentelemetry + install-php-extensions opentelemetry-1.0.0RC1 #This is faster https://github.com/composer/composer/issues/8205#issuecomment-507256979 RUN php /usr/bin/composer config --global repos.packagist composer https://packagist.org diff --git a/src/like-service/README.md b/src/like-service/README.md index f3decb12..4af1f131 100644 --- a/src/like-service/README.md +++ b/src/like-service/README.md @@ -1,61 +1,86 @@ -

- -

-Build Status -Total Downloads -Latest Stable Version -License -

- -## About Laravel - -Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experience to be truly fulfilling. Laravel takes the pain out of development by easing common tasks used in many web projects, such as: - -- [Simple, fast routing engine](https://laravel.com/docs/routing). -- [Powerful dependency injection container](https://laravel.com/docs/container). -- Multiple back-ends for [session](https://laravel.com/docs/session) and [cache](https://laravel.com/docs/cache) storage. -- Expressive, intuitive [database ORM](https://laravel.com/docs/eloquent). -- Database agnostic [schema migrations](https://laravel.com/docs/migrations). -- [Robust background job processing](https://laravel.com/docs/queues). -- [Real-time event broadcasting](https://laravel.com/docs/broadcasting). - -Laravel is accessible, powerful, and provides tools required for large, robust applications. - -## Learning Laravel - -Laravel has the most extensive and thorough [documentation](https://laravel.com/docs) and video tutorial library of all modern web application frameworks, making it a breeze to get started with the framework. - -If you don't feel like reading, [Laracasts](https://laracasts.com) can help. Laracasts contains over 1500 video tutorials on a range of topics including Laravel, modern PHP, unit testing, and JavaScript. Boost your skills by digging into our comprehensive video library. - -## Laravel Sponsors - -We would like to extend our thanks to the following sponsors for funding Laravel development. If you are interested in becoming a sponsor, please visit the Laravel [Patreon page](https://patreon.com/taylorotwell). - -### Premium Partners - -- **[Vehikl](https://vehikl.com/)** -- **[Tighten Co.](https://tighten.co)** -- **[Kirschbaum Development Group](https://kirschbaumdevelopment.com)** -- **[64 Robots](https://64robots.com)** -- **[Cubet Techno Labs](https://cubettech.com)** -- **[Cyber-Duck](https://cyber-duck.co.uk)** -- **[Many](https://www.many.co.uk)** -- **[Webdock, Fast VPS Hosting](https://www.webdock.io/en)** -- **[DevSquad](https://devsquad.com)** -- **[OP.GG](https://op.gg)** - -## Contributing - -Thank you for considering contributing to the Laravel framework! The contribution guide can be found in the [Laravel documentation](https://laravel.com/docs/contributions). - -## Code of Conduct - -In order to ensure that the Laravel community is welcoming to all, please review and abide by the [Code of Conduct](https://laravel.com/docs/contributions#code-of-conduct). - -## Security Vulnerabilities - -If you discover a security vulnerability within Laravel, please send an e-mail to Taylor Otwell via [taylor@laravel.com](mailto:taylor@laravel.com). All security vulnerabilities will be promptly addressed. - -## License - -The Laravel framework is open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT). +# Like Service + +Provides REST endpoints for retrieving and updating like counts for posts in MariaDB: +* `POST like-service/like-service/like-delete` + ``` + Request body: + { + "postId": 123 + } + ``` +* `POST like-service/like-service/like-post` + ``` + Request body: + { + "postId": 123 + } + ``` +* `GET like-service/like-service/like-count/{postId}` + ``` + Response: + { + "likeCount": 123, + "userLiked": true + } + `````` +* `GET like-service/like-service/like-count?postIds=1&postIds=2&postIds=3&postIds=4...` + ``` + Response: + { + "likeCounts": [ + {"postId": 1, "likeCount": 123}, + {"postId": 2, "likeCount": 456}, + {"postId": 3, "likeCount": 789}, + {"postId": 4, "likeCount": 135}, + ... + ], + "likedPosts": [ + {"postId": 1}, + {"postId": 3}, + ... + ] + } + ``` +All the endpoints require that a JWT cookie be sent for authentication with the the `user-auth-service`. This cookie is obtained by logging in and links the requests to a user ID. + +# How to run locally +The Like Service can either be run using `skaffold dev` (see [DEV-GUIDE](../../docs/DEV-GUIDE.md)), or it can be run locally, provided that you have the following requirements installed. + +## Requirements +* PHP 8.0 with `opentelemetry` and MySQL (`mysqli`, `pdo`, `pdo_mysql`) extensions installed +* Composer +* MariaDB instance (see [user-auth-service README](../user-auth-service/README.md) for setting it up) + +## Environment Variables +The following environment variables need to be set: + +| Name | Example Value | Description | +|---------------------------|-----------------------------------|-------------------------------------------------------------| +| SERVICE_NAME | unguard-like-service | Name of the service | +| API_PATH | /like-service | Api entrypoint path | +| SERVER_PORT | 8000 | The port that the server will run on | +| USER_AUTH_SERVICE_ADDRESS | unguard-user-auth-service-service | Change to hostname/IP of user-auth-service instance | +| DB_HOST | localhost | Address of MariaDB instance | +| DB_PORT | 3306 | Port of MariaDB instance | +| DB_DATABASE | likeDb | Database to create and use on the MariaDB instance | +| DB_USERNAME | root | Username of the MariaDB user | +| MARIADB_PASSWORD | | Password of the MariaDB user | +| JAEGER_DISABLED | true | Set to 'false' if you have a Jaeger instance running | +| JAEGER_COLLECTOR_HOST | collector | Change to hostname/IP of your Jaeger collector | +| JAEGER_PORT | 4318 | The jaeger collector port for HTTP OTLP traffic | +| JAEGER_SERVICE_NAME | unguard-like-service | Name that will be used for the service in the Jaeger traces | + +## Setup +Install the required packages: +``` +composer install +``` +Create the database and create tables: +``` +php artisan make:database +php artisan migrate:fresh +``` +Run Laravel: +``` +php artisan serve +``` diff --git a/src/like-service/app/Console/Commands/CreateDatabase.php b/src/like-service/app/Console/Commands/CreateDatabase.php index a4804ed1..cd92d74a 100644 --- a/src/like-service/app/Console/Commands/CreateDatabase.php +++ b/src/like-service/app/Console/Commands/CreateDatabase.php @@ -55,9 +55,9 @@ public function __construct() */ public function handle() { - $host = getenv('UNGUARD_MARIADB_SERVICE_HOST', false); - $port = getenv('UNGUARD_MARIADB_SERVICE_PORT_MYSQL', false); - $rootuser = 'root'; + $host = getenv('DB_HOST', false); + $port = getenv('DB_PORT', false); + $rootuser = getenv('DB_USERNAME', false); $password = getenv('MARIADB_PASSWORD', false); $address = $host . ":" . $port; $dbName = getenv('DB_DATABASE', false); diff --git a/src/like-service/app/Http/Controllers/LikeController.php b/src/like-service/app/Http/Controllers/LikeController.php index b45092f9..4e8427f3 100644 --- a/src/like-service/app/Http/Controllers/LikeController.php +++ b/src/like-service/app/Http/Controllers/LikeController.php @@ -44,9 +44,7 @@ static function doLike($request) 'userId' => $userId, 'postId' => $postId ]); - return response()->json([ - 'message' => 'Authorized' - ], 200); + return response()->make(); } static function getLikeCountAndState($request, $postId) @@ -119,9 +117,7 @@ static function removeLike($request) $query->setBindings($bindings)->delete(); - return response()->json([ - 'userId' => $userId, - ], 200); + return response()->make(); } static function validateToken($user_token) diff --git a/src/like-service/config/app.php b/src/like-service/config/app.php index c19018a9..5167c566 100644 --- a/src/like-service/config/app.php +++ b/src/like-service/config/app.php @@ -29,10 +29,10 @@ | */ - 'name' => env('APP_NAME', 'Laravel'), + 'name' => env('SERVICE_NAME', 'unguard-like-service'), 'auth_service_url' => 'http://' . - getenv('UNGUARD_USER_AUTH_SERVICE_ADDRESS') . + getenv('USER_AUTH_SERVICE_ADDRESS') . '/auth/isValid/', /* diff --git a/src/like-service/config/database.php b/src/like-service/config/database.php index 5fa7da71..e41d716f 100644 --- a/src/like-service/config/database.php +++ b/src/like-service/config/database.php @@ -52,13 +52,11 @@ 'connections' => [ 'mysql' => [ 'driver' => 'mysql', - 'url' => env('DATABASE_URL'), - 'host' => env('UNGUARD_MARIADB_SERVICE_HOST', '127.0.0.1'), - 'port' => env('UNGUARD_MARIADB_SERVICE_PORT_MYSQL', '3306'), - 'database' => env('DB_DATABASE', 'forge'), + 'host' => env('DB_HOST', '127.0.0.1'), + 'port' => env('DB_PORT', '3306'), + 'database' => env('DB_DATABASE', 'likeDb'), 'username' => env('DB_USERNAME', 'root'), 'password' => env('MARIADB_PASSWORD', ''), - 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', diff --git a/src/like-service/public/index.php b/src/like-service/public/index.php index 5f1331ff..7c12e0d4 100644 --- a/src/like-service/public/index.php +++ b/src/like-service/public/index.php @@ -78,7 +78,7 @@ if (strtolower(getenv('JAEGER_DISABLED', false)) === "false") { Globals::registerInitializer(function (Configurator $configurator) { $propagator = JaegerPropagator::getInstance(); - $transport = (new OtlpHttpTransportFactory())->create('http://' . getenv('JAEGER_AGENT_HOST', false) . ':' . getenv('JAEGER_PORT', false) . '/v1/traces', ContentTypes::JSON); + $transport = (new OtlpHttpTransportFactory())->create('http://' . getenv('JAEGER_COLLECTOR_HOST', false) . ':' . getenv('JAEGER_PORT', false) . '/v1/traces', ContentTypes::JSON); $exporter = new SpanExporter($transport); $resource = ResourceInfo::create(Attributes::create([