Skip to content

Add 5 community plugins (LDAP auth, dynamic flags/values, multichoice, user control)#62

Open
defojeco wants to merge 1 commit into
CTFd:masterfrom
defojeco:master
Open

Add 5 community plugins (LDAP auth, dynamic flags/values, multichoice, user control)#62
defojeco wants to merge 1 commit into
CTFd:masterfrom
defojeco:master

Conversation

@defojeco

Copy link
Copy Markdown

Summary

Adding 5 plugins built while deploying CTFd for a college diploma project:

  • ctfd-ldap-plugin — Active Directory authentication with AES-256 offline
    credential cache, login mode switcher (Domain/Local), and AD-group → team
    auto-assignment. No alternative LDAP plugin exists for CTFd.

  • ctfd-dynamic-flag — per-user/per-team computed flags (anti-sharing) via
    whitelisted hashing schemes (sha256, hmac-sha256, base64). Explicitly avoids
    exec()-based formula evaluation for security reasons (documented in the README).

  • ctfd-dynamic-values — per-participant dynamic variables (unique IP,
    port, token) embedded directly into challenge descriptions via {{name}}
    syntax, deterministically generated from user/team identity.

  • ctfd-plugin-multichoice — multiple choice challenge type (single/multi
    select), answer shuffling, and partial scoring.

  • ctfd-user-control-plugin — profile field locking (username/email/password),
    per-challenge attempt limiting, and an audit log viewable in the admin panel.

All plugins are MIT licensed, documented (English + Russian README), and
include screenshots where applicable.

Testing

Each plugin has been running in production for a college CTF deployment.
Tested on CTFd 3.7.x / 3.8.5.

Compatibility

ctfd-dynamic-flag and ctfd-dynamic-values are designed to interoperate
(flags can reference dynamic values), but each works standalone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant