README.md

February 25, 2026 Β· View on GitHub

Dojo-101

License: GNU GPL v3 GitHub last commit .NET Docker Github Sponsors

Warning

This repository and its tools are provided "as is" without warranty of any kind, either express or implied, including but not limited to, any warranties of merchantability, fitness for a particular purpose, and non-infringement. The authors shall not be liable for any claims, damages, or other liabilities arising from, out of, or in connection with the use of this tool. The user is solely responsible for ensuring their use of this tool complies with all applicable laws and regulations. The authors disclaim any liability for illegal or unethical use.

🎱 Attack Surface

flowchart TD
    A{**.NET REST API**}
    A --> B[SQL DB]
    A --> C[File System]
    A --> D[Host services]
    A --> F[GraphQL]
    A --> G[App Services]
    A --> H[Memory]

    B --> I(*Identities*)
    C --> J(*Logs*)
    C --> K(*Secrets*)
    D --> L(*DNS*)
    F --> M(*Sensitive Data*)
    G --> O(*Serialized Data*)
    G --> R(*Business Logic*)
    G --> U(*Updates*)
    H --> P(*Variables and functions*)

🏒 Business Value

Business WorkflowRelevant OWASP ASVS Chapters
Personal Data ManagementV1 Architecture, Design and Threat Modeling, V5 Validation, Sanitization and Encoding
Employee ManagementV2 Authentication, V9 Cryptography
Client ManagementV4 Access Control, V6 Stored Data
Banking data ManagementV7 Cryptography at Rest, V10 Malicious Code
Contracts and Documents ManagementV13 File and Resources, V5 Validation, Sanitization and Encoding
Identities and Secrets ManagementV2 Authentication, V9 Cryptography
Administrative TasksV4 Access Control, V17 Business Logic
Log ManagementV19 Logging and Monitoring
Service BehaviorV14 API and Web Service Security, V17 Business Logic

🐞 Vulnerabilities

MITRE ReferenceDescriptionDifficulty
CWE-22Path TraversalMedium
CWE-78OS Command InjectionMedium
CWE-79Cross-site ScriptingMedium
CWE-89SQL InjectionEasy
CWE-94Code InjectionHard
CWE-91XML InjectionHard
CWE-98Remote File InclusionHard
CWE-184Incomplete List of Disallowed InputsMedium
CWE-200Exposure of Sensitive Information to an Unauthorized ActorMedium
CWE-209Generation of Error Message Containing Sensitive InformationEasy
CWE-213Exposure of Sensitive Information Due to Incompatible PoliciesEasy
CWE-284Improper Access ControlMedium
CWE-287Improper AuthenticationMedium
CWE-319Cleartext Transmission of Sensitive InformationEasy
CWE-326Inadequate Encryption StrengthEasy
CWE-434Unrestricted Upload of File with Dangerous TypeHard
CWE-502Deserialization of Untrusted DataHard
CWE-506Embedded Malicious CodeHard
CWE-521Weak Password RequirementsEasy
CWE-532Insertion of Sensitive Information into Log FileEasy
CWE 639Insecure Direct Object ReferenceMedium
CWE-611XML External Entity ReferenceHard
CWE-787Out-of-bounds WriteEasy
CWE-798Use of Hard-coded CredentialsEasy
CWE-829Local File InclusionEasy
CWE-840Business Logic ErrorEasy
CWE-912BackdoorHard
CWE-918Server-Side Request ForgeryMedium
CWE-1270Generation of Incorrect Security TokensMedium

Note


logs are SIEM ready for Blue Team training.

πŸ”‘ Hint & Write Up

  • Try reading Dojo-101, this project contains all you need to hack this app.

  • Become a sponsor and get access to the full methodology and complete write-up.

⬇️ Download

git clone https://github.com/Aif4thah/VulnerableLightApp.git
cd .\VulnerableLightApp\

πŸ”§πŸ”₯ Build and Run

You can use Dotnet or Docker

Dotnet

Check .csproj file to get the current dotnet version and install .NET SDK

dotnet run [--url=<url>]

Docker

docker build -t vulnerablelightapp .
docker run -p 3000:3000 vulnerablelightapp 

first request

Default : 127.0.0.1:3000

curl -k https://127.0.0.1:3000

πŸ› οΈ Debug

Dotnet install on Linux

Ubuntu / Debian exemple

wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
dpkg -i packages-microsoft-prod.deb
apt update && apt install -y dotnet-sdk-8.0 dotnet-runtime-8.0

Dotnet Framework

Verify you use the intended .NET Framework

where dotnet
dotnet --version
dotnet --list-sdks

Certificates

To trust the certificate on windows / mac

dotnet dev-certs https --trust

To generate your cert from Linux :

#!/bin/bash
openssl req -x509 -newkey rsa:4096 -keyout /app/key.pem -out /app/cert.pem -days 365 -nodes -subj "/CN=localhost"
openssl pkcs12 -export -out /app/cert.pfx -inkey /app/key.pem -in /app/cert.pem -passout pass:mypassword
export ASPNETCORE_Kestrel__Certificates__Default__Path=/app/cert.pfx
export ASPNETCORE_Kestrel__Certificates__Default__Password=mypassword

Dependancies

dependancies have to be dowloaded from standard sources

dotnet nuget add source "https://api.nuget.org/v3/index.json" --name "Microsoft"

πŸ’œ CrΓ©dits