Briarcliff Foundation

Briarcliff Foundation has accepted humanities and historical-preservation proposals through the same Fluxx-style portal since 2018. The withdraw-application control was added late in development — and shares plumbing with the committee's own review tooling.

Room Description

Briarcliff Foundation — figure 1

https://dashboard.webverselabs-pro.com/challenges/rubber-stamp

Scenario

Briarcliff Foundation has accepted humanities and historical-preservation proposals through the same Fluxx-style applicant portal since 2018. The withdraw-application control was added late in development to spare the committee from clearing dead applications, and it shares plumbing with the committee's own review tooling.

Objective

An applicant portal for a small humanities-focused grantmaking foundation. The applicant has a button to manage their own submission — and the endpoint behind it is a little too obliging.

Initial Analysis

We have a grant application page where we can register our own profile to start applying for grants, or well, sending proposals at least.

Briarcliff Foundation — figure 2

We have several endpoints available to us through the navigation menu:

        <nav class="nav" aria-label="Primary">
            <a class="nav-link active" href="/">Home</a>
            <a class="nav-link " href="/programs">Programs</a>
            <a class="nav-link " href="/about">About</a>
            <a class="nav-link " href="/apply">Apply</a>
            
                <span class="nav-cta">
                    <a class="btn btn-ghost btn-sm" href="/login">Sign in</a>
                    <a class="btn btn-primary btn-sm" href="/register">Create account</a>
                </span>
            
        </nav>

But first and foremost, let's register ourselves an account, based on the challenge description we can already tell that we would need to have access to apply for a grant or send a proposal, and if you head over to /apply unauthenticated, you get sent over to /login.

Briarcliff Foundation — figure 3

Nothing suspicious is being sent during registration.

Briarcliff Foundation — figure 4

Finding the bug

Once registered we are redirected to "My applications", where we currently have 0, so nothing pre-filled.

Briarcliff Foundation — figure 5

Since there are two buttons pointing towards submitting our proposal, both pointing towards /apply let's do that.

Briarcliff Foundation — figure 6

There are field requirements on the frontend that you have to abide by, just showing the form with fluff text, and on the backend the same fields get sent:

Briarcliff Foundation — figure 7

Once the application form is submitted we can see our own application since we get redirected automatically:

Briarcliff Foundation — figure 8
Briarcliff Foundation — figure 9

Alrighty, so we see that the slug for our application is: BCF-2026-0148, let's try to open an application with a smaller number to see if we can access older ones, assuming there are 148 completed ones for the 2026 year.

Briarcliff Foundation — figure 10

You could also check 0001 and random numbers, but that isn't the point of the challenge, just saying in a real engagement if you wanted to, you could just fuzz from 0001 to 9999 to find any hits.

The part we are interested in is the "Withdraw application" segment.

Briarcliff Foundation — figure 11

Exploitation

Let's try to withdraw our application and see what happens.

Briarcliff Foundation — figure 12

We get a popup for confirmation, let's click OK.

Briarcliff Foundation — figure 13

And the status of our application goes from "Pending Review" to "Withdrawn".

To do this, we send a POST request to the API.

Briarcliff Foundation — figure 14
{"decision":"withdraw","comment":""}

Hmm, so we control the decision type maybe? How about we send this request to the Repeater and send an invalid decision and see what happens.

Briarcliff Foundation — figure 15

Okay great! We have the allowed decision types now, logically we should try approve to get our grant approved.

Briarcliff Foundation — figure 16

We don't have anything indicating that it didn't work, let's open our application now.

Briarcliff Foundation — figure 17

And that's all she wrote.