Soham7-dev/AspGoat

Hard Reset functionality for AspGoat

Ouverte

#102 ouverte le 9 oct. 2025

 (3 commentaires) (0 réaction) (0 personne assignée)JavaScript (92 forks)auto 404
enhancementhelp wantedquestiontechnical debt

Métriques du dépôt

Stars
 (106 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

Description

Discussed in https://github.com/Soham7-dev/AspGoat/discussions/78

Originally posted by Soham7-dev September 25, 2025

🚨 Help Wanted: Implement a Hard Reset Feature for AspGoat

Context: AspGoat’s Unrestricted File Upload / File Overwrite lab lets learners deface the actual homepage as part of the challenge.
While that’s intentional, it means the application can be left in a broken state.
Currently, we simply display a warning and ask users to manually redeploy the container or clone the repo to restore the app.

Goal:
Create a one-click “Hard Reset” capability that restores the application to its original state.


Requirements & Ideas

  • Reset Scope

    • Restore the entire wwwroot (or equivalent) directory to a clean snapshot.
    • Re-seed the SQLite database (users, comments, seeded labs, etc.).
    • Ensure uploaded/overwritten files are removed or replaced with pristine copies.
  • Implementation Thoughts

    • Container-level approach (e.g., Docker volume snapshot, ephemeral overlay).
    • Application-level endpoint (/admin/reset) that:
      • Drops and recreates the DB schema.
      • Copies a baseline of static assets from a protected location.
    • Cross-platform: should work both in local dev and containerized environments.
  • Security Considerations

    • Restricted to authorized roles (e.g., Admin or in dev mode only).
    • Prevent abuse—avoid becoming an unintended DoS vector.

Tech Stack

  • Backend: ASP.NET Core 8 (MVC + Razor)
  • Database: SQLite (seeded via EF Core)
  • Deployment: Docker (multi-stage build)

What We’re Looking For

  • .NET / DevOps / Security engineers who can:
    • Propose a clean architecture for snapshot/restore.
    • Implement and document the solution.
    • Provide automated tests to verify reset integrity.

💡 How to Contribute

This feature will make AspGoat more learner-friendly while showcasing a real-world secure recovery pattern.

Recognition: Major contributors will be highlighted in the README “Hall of Fame” and future release notes.

Guide contributeur