Like usually, I was working on a new fresh target. My goal wasn't to hack it right away — I first wanted to understand every function, every button, every hidden feature. Who could invite whom. What free users saw versus premium ones.

I clicked around for a while. Profile settings, billing page, team dashboard.

None

One feature caught my eye : Invite Member to Team .

None

I clicked the button.

A popup appeared :

"Only Premium users can add members to their team."

None

Fair enough. I almost moved on.

But something felt off. The popup was clean, fast, no page reload. That meant the restriction was likely front‑end only.

What I checked next

I opened the browser's developer tools. Network tab.

Clicked the "Invite Member" button again.

Nothing in the network log. Just a JavaScript popup. No request to the server.That confirmed my suspicion: the check was client‑side.

So I asked myself : what if I go directly to the invite page?

The bypass

I typed this into the address bar :

/team/invite

Not /user/team – just /team/invite.

None

The page loaded.

No popup. No "Premium required". Just a full invitation form.

I entered an email address. Clicked "Send Invite".

The invitation was sent :

None

Why this happened

The developer made two mistakes :

  1. Front‑end validation only — The popup was just a JavaScript alert. It blocked the button, but the endpoint itself had no protection.

2. No server‑side tier check — When I called /team/invite, the backend never verified if my account had premium access.

None

Impact

  • Free users can invite team members without paying .
  • Business logic bypass — potential revenue loss .
  • All because one endpoint trusted the client to behave .

Key takeaway for you :

Never trust front‑end restrictions .

A grayed‑out button, a popup, a disabled field — none of these are security controls. They're UI hints .

Always check :

  • Is the endpoint accessible directly?
  • Does the server re‑validate permissions?
  • Can I bypass the UI by crafting my own request?

Now go test those "blocked" features. You might be surprised what you find.