An intentionally vulnerable ASP.NET Core web application for learning and practicing Web Application Security.
---AspGoat is an intentionally vulnerable ASP.NET Core application that helps Security Engineers and Developers analyze and mitigate common web application vulnerabilities. It includes the OWASP Top 10 and beyond, providing hands-on Application Security challenges.
- π Intentionally vulnerable ASP.NET Core MVC app
- π Hands-on labs for:
- π Cross-Site Scripting (XSS)
- π Cross-Site Request Forgery (CSRF)
- π SQL Injection (SQLi)
- π XML External Entity (XXE)
- π Local File Inclusion (LFI)
- π Remote Code Execution (RCE)
- π Unrestricted File Upload
- π Information Disclosure
- π Broken Authentication
- π Server-Side Request Forgery (SSRF)
- π Insecure Direct Object Reference (IDOR)
- π Insecure Deserialization
- π Command Injection
- π Prototype Pollution
- π Cache Poisoning
- π Server Side Template Injection (SSTI)
- π‘οΈ Secure vs Insecure coding snippets
- π³ Ready-to-run Docker setup
- π€ AI / LLM Red-Teaming labs covering:
- π Prompt Injection
- π Excessive Agency
- π Insecure Output Handling
docker pull sohamburger/aspgoat:latest
docker run --rm -p 8000:8000 sohamburger/aspgoat:latest
http://localhost:8000
Download and install the .NET SDK 8.0 (LTS) from:
π .NET-Download
(The SDK includes the runtime, so this is all you need to build and run AspGoat from source.)
git clone https://github.com/Soham7-dev/AspGoat.git
cd AspGoat
dotnet restore
dotnet run
http://localhost:5073
Thanks goes to these wonderful people β¨
Made with contrib.rocks.
The default username for AspGoat is admin and the default password is admin123. The π Unrestricted File Upload Lab can break the application. A Hard Reset feature is currently under development which will reset the application (not yet released). As of now, if you break the application during exploitation of the Lab, your only option is cloning the Project again and restart the application. The Client Side JavaScript is obfuscated due to obvious cheating possibilities for Secure Coding challenges. However, there are several tools available for de-obfuscating the JavaScript code and retrieve the clean code again but that is not the core purpose of this Project.