Your System is Weak 🫣

MRCM Institutional Portal Vulnerability & Directory Audit

Bro πŸ˜­πŸ’€ I only had 45 minutes to do all this and somehow managed to dig through the database and understand the whole platform πŸ’€πŸ˜‚ And the security holes are HUGE πŸ˜­πŸ”“ Like bro… seriously? πŸ˜‚πŸ’€ The school needs to take this seriously because there are legal and privacy obligations too πŸ€‘πŸ“š At this point, the records are basically sitting there like πŸ‘€πŸ’€ Think bro… THINK πŸ˜­πŸ˜‚

2,004
Student Records
Classes, Admissions & Passwords
133
Faculty & Staff
Teaching & Department Profiles
18
Audit Points
Bilingual Technical Analysis
PIN: Hack For It πŸ˜‰
Zero-Trust Vault
NIC & Birth Certificate Guard
Explore Database Directory 18-Pt Technical Audit
🚫
Client-Side Auth Illusion
Hiding DOM rows with CSS or JavaScript does not protect data. All records arrive in browser memory unauthenticated.
πŸ”
Zero-Trust Identity Guard
Student Birth Certificate and NIC numbers are strictly masked until verified with cryptographic PIN Protected [Hack For It πŸ˜‰].
πŸ“œ
Bilingual Educational Review
18 comprehensive vulnerability breakdowns written in English and Sinhala with architectural remediation steps.
⚑
Zero-Server Dependency
Engineered to work reliably over HTTP servers or directly via file:/// protocol with automated file pickers.
HIGH PRIORITY DIRECTIVE • EXECUTIVE NOTICE

⚠️ School ΰΆ‘ΰΆšΰΆ§ ΰ·€ΰ·ΰΆ―ΰΆœΰΆ­ΰ·Š Note ΰΆ‘ΰΆšΰΆšΰ·Š

πŸ” Website Security ࢜ැࢱ ΰ·€ΰ·’ΰΆ­ΰΆ»ΰΆšΰ·Š ΰΆ±ΰ·™ΰ·€ΰ·™ΰΆΊΰ·’ β€” Teacher Personal Data ΰ·ƒΰ·„ PDPA Law 2022 ࢜ැࢱ ΰ·ƒΰΆΈΰ·ŠΰΆ΄ΰ·–ΰΆ»ΰ·ŠΰΆ« ΰ·€ΰ·’ΰΆœΰ·Šβ€ΰΆ»ΰ·„ΰΆΊ Popup ΰΆ‘ΰΆšΰ·™ΰΆ±ΰ·Š ΰΆšΰ·’ΰΆΊΰ·€ΰΆ±ΰ·ŠΰΆ±.

πŸ“œ Technical Audit

Developer Security Advisory • Educational Audit Notice

This demonstration highlights critical architectural flaws in the institutional portal. Authentication was handled in client memory, exposing sensitive identity records without server session verification.

Developer Note: "This security vulnerability was uncovered and documented by a developer. These vulnerabilities (leaking plain text passwords in browser memory and client-side access control) are elementary 'kids' stuff' mistakes in web architecture. The administration must urgently discard this obsolete codebase and upgrade to a brand-new, modern, server-secured institutional portal."
πŸ”΄ High Risk: Memory Leakage πŸ” PIN Protected: HACK FOR IT πŸ›‘οΈ Strict Defense Mode
Showing 0 of 0 records
↔ Swipe horizontally to view all database columns
ETHICAL CYBERSECURITY RESEARCH πŸ” PIN: Hack For It πŸ˜‰

πŸ” MRCM Web Security Review

β€œSecurity ࢭිࢺෙࢱවා ΰ·€ΰΆœΰ·š ΰΆ΄ΰ·šΰΆ±ΰ·€ΰ·β€¦ ΰΆ’ΰΆ­ΰ·Š ΰΆ‡ΰΆ­ΰ·”ΰ·…ΰΆ§ ΰΆœΰ·’ΰΆΊΰ·ΰΆΈ story ΰΆ‘ΰΆš ΰ·€ΰ·™ΰΆ±ΰ·ƒΰ·Šβ€ πŸ’€
⚠️ Disclaimer: This is an informational security-awareness review based on security-related behavior visible from the frontend. It does not claim that private databases, student records, or backend systems have been compromised.
πŸ•΅οΈ Introduction

Website ΰΆ‘ΰΆšΰΆšΰ·Š open ΰΆšΰΆ»ΰΆ―ΰ·ŠΰΆ―ΰ·’ ΰΆ…ΰΆ΄ΰ·’ΰΆ§ ΰ·ƒΰ·ΰΆΈΰ·ΰΆ±ΰ·ŠΰΆΊΰΆΊΰ·™ΰΆ±ΰ·Š ࢴේࢱ්ࢱේ login screen ΰΆ‘ΰΆšΰΆšΰ·Š. Username ΰΆ‘ΰΆšΰΆšΰ·Š ࢭිࢺෙࢱවා. Password ΰΆ‘ΰΆšΰΆšΰ·Š ࢭිࢺෙࢱවා. Login button ΰΆ‘ΰΆšΰΆšΰ·Š ࢭිࢺෙࢱවා. Maybe loading animation ΰΆ‘ΰΆšΰΆšΰ·”ΰΆ­ΰ·Š ࢭිࢺෙࢱවා. 😭

ΰΆ’ΰΆš ࢯැ්࢚࢚ාࢸ ΰ·ƒΰ·ΰΆΈΰ·ΰΆ±ΰ·ŠΰΆΊ user ΰΆšΰ·™ΰΆ±ΰ·™ΰΆšΰ·ŠΰΆ§ ΰ·„ΰ·’ΰΆ­ΰ·™ΰΆ±ΰ·ŠΰΆ± ΰΆ΄ΰ·”ΰ·…ΰ·”ΰ·€ΰΆ±ΰ·Š: β€œAdo, ࢸේ࢚ ࢱࢸ් secure website ΰΆ‘ΰΆšΰΆšΰ·Š.” πŸ”

But security engineering ΰΆ‘ΰΆšΰ·šΰΆ―ΰ·“, what the website looks like ΰ·ƒΰ·„ how the website actually enforces authorization ΰΆšΰ·’ΰΆΊΰΆ±ΰ·ŠΰΆ±ΰ·š completely different things.

ΰΆšΰ·œΰΆ§ΰ·’ΰΆ±ΰ·ŠΰΆΈ: Lock ΰΆ‘ΰΆšΰΆšΰ·Š ࢭිࢺෙࢱවා ΰΆšΰ·’ΰΆΊΰΆ½ΰ· building ΰΆ‘ΰΆš secure ΰΆšΰ·’ΰΆΊΰΆ½ΰ· automatically ΰΆšΰ·’ΰΆΊΰΆ±ΰ·ŠΰΆ± ΰΆΆΰ·‘. πŸ˜‚

ࢸේ review ΰΆ‘ΰΆšΰ·š interesting part ΰΆ‘ΰΆš ΰΆ­ΰΆΈΰΆΊΰ·’, frontend code ΰΆ‘ΰΆš ΰΆΆΰΆ½ΰΆ―ΰ·ŠΰΆ―ΰ·’ security ࢜ැࢱ හිࢭࢽා ΰΆ­ΰ·’ΰΆΊΰ·™ΰΆ± ΰΆΆΰ·€ ΰΆ΄ΰ·šΰΆ±ΰ·€ΰ·. But some of those security mechanisms are happening in places where the user's own browser is in control. And that's where things become… interesting. πŸ‘€πŸ’€

πŸ” 01. The Legendary Login Screen

Login page ΰΆ‘ΰΆš ࢯැ්࢚࢚ාࢸ first impression ΰΆ‘ΰΆš: β€œACCESS DENIED πŸš«β€

Very serious. Very professional. Very government-secret-lab vibes. 😭

But a login screen by itself isn't security. It's just a UI.

Frontend ΰΆ‘ΰΆšΰ·™ΰΆ±ΰ·Š β€œAre you authorized?” ΰ·€ΰΆœΰ·š question ΰΆ‘ΰΆšΰΆšΰ·Š ࢅහࢽා, browser ΰΆ‘ΰΆšΰ·™ΰΆ±ΰ·Š ࢽැࢢෙࢱ answer ΰΆ‘ΰΆš blindly trust ࢚ࢻࢱ architecture ΰΆ‘ΰΆšΰΆšΰ·Š ΰΆ±ΰΆΈΰ·Šβ€¦ browser ΰΆ‘ΰΆš security guard ΰΆšΰ·™ΰΆ±ΰ·™ΰΆšΰ·Š ΰΆ±ΰ·™ΰ·€ΰ·™ΰΆΊΰ·’. πŸ˜‚

Browser ΰΆ‘ΰΆš basically user࢜ේ machine ΰΆ‘ΰΆšΰ·š ΰΆ­ΰ·’ΰΆΊΰ·™ΰΆ± software ΰΆ‘ΰΆš. ΰΆ’ ࢱිසා: Frontend = presentation + client-side logic ΰ·ƒΰ·„ Backend authorization = actual enforcement boundary ΰΆšΰ·’ΰΆΊΰΆ± difference ΰΆ‘ΰΆš critical.

ΰ·ƒΰ·’ΰΆ‚ΰ·„ΰΆ½ΰ·™ΰΆ±ΰ·Š ΰΆšΰ·’ΰΆΊΰΆ±ΰ·€ΰ· ࢱࢸ්: β€œΰΆ―ΰ·œΰΆ»ΰ·š β€˜Authorized Personnel Only’ ΰΆšΰ·’ΰΆΊΰΆ½ΰ· board ΰΆ‘ΰΆšΰΆšΰ·Š ΰΆœΰ·ΰ·„ΰ·”ΰ·€ΰ· ΰΆšΰ·’ΰΆΊΰΆ½ΰ· ΰΆ‡ΰΆ­ΰ·”ΰ·…ΰ·š security guard ΰΆšΰ·™ΰΆ±ΰ·™ΰΆšΰ·Š ΰΆ‰ΰΆ±ΰ·ŠΰΆ±ΰ·€ΰ· ΰΆšΰ·’ΰΆΊΰΆ½ΰ· ΰ·„ΰ·’ΰΆ­ΰΆ±ΰ·ŠΰΆ± ࢑ࢴා.” πŸ˜­πŸ”

πŸ’€ 02. Client-Side Security: β€œTrust Me Bro”

ΰΆΈΰ·™ΰΆ­ΰΆ± ΰΆ­ΰΆΈΰΆΊΰ·’ funniest part ΰΆ‘ΰΆš. Application ΰΆ‘ΰΆšΰ·š access state ΰΆ‘ΰΆš browser-side mechanisms ΰΆ‘ΰΆšΰ·ŠΰΆš heavily connected ࢱࢸ්, website ΰΆ‘ΰΆšΰ·š security decision ΰΆ‘ΰΆšΰ·š ΰΆšΰ·œΰΆ§ΰ·ƒΰΆšΰ·Š client side ΰΆ‘ΰΆšΰΆ§ shift වෙࢱවා.

ΰΆ’ ΰΆšΰ·’ΰΆΊΰΆ±ΰ·ŠΰΆ±ΰ·š website ΰΆ‘ΰΆš essentially browser ΰΆ‘ΰΆšΰΆ§ ΰΆšΰ·’ΰΆΊΰΆ±ΰ·€ΰ·: β€œBro, ࢸේ user authorized ΰΆ― ΰΆšΰ·’ΰΆΊΰΆ½ΰ· ࢔ࢺා remember ΰΆšΰΆ»ΰΆœΰ·™ΰΆ± ΰΆ‰ΰΆ±ΰ·ŠΰΆ±.” πŸ₯Ί

Browser: β€œSure bro πŸ‘β€

Security engineering: β€œWait… WHAT?” πŸ’€

Client-side state is useful for UI behavior. But using browser-controlled state as the ultimate source of truth for authorization gives the whole thing a very questionable vibe. It's like hiring the person trying to enter the building as the security guard. πŸ˜‚πŸ”

πŸ—ƒοΈ 03. Local Storage: The Tiny Security Vaultβ„’ 😭

Modern websites love browser storage: LocalStorage, SessionStorage, Cookies, IndexedDB. Everything is useful for different purposes. But there's a huge difference between:

  • β€œRemember this UI preference.”
  • β€œThis proves this person is authorized.”

Those are NOT the same thing. If an application treats a browser-side value as the reason someone is allowed to see protected content, that's a very interesting architectural choice. Because the browser belongs to the user. Not the server. Not the school. Not the database. The user. 😭

So when the browser says β€œYep, I'm authorized,” the server shouldn't just respond β€œAh okay, welcome back sir.” 🫑 That's basically: Security by trust-me-broβ„’.

πŸ₯· 04. β€œDon't Press F12” Security & β€œRight Click Disabled”

Now we reach one of my favorite parts. The website tries to prevent things like: F12, Right click, certain keyboard shortcuts, browser inspection shortcuts. And honestly… The effort is impressive. πŸ˜‚ But the concept is hilarious when treated as a security boundary.

Because: Disabling F12 ≠ securing the application. It's like putting a sign on a safe saying: 🚫 PLEASE DON'T LOOK INSIDE and then calling it bank-grade security. 😭

Website: ❌ Right click disabled. → Browser: Okay. → Security researcher: Interesting. πŸ‘€

Right-click blocking mostly affects convenience. It doesn't create a cryptographic wall around the application. It doesn't turn JavaScript into an impenetrable fortress. It's basically the web equivalent of: β€œAne please inspect ࢚ࢻࢱ්ࢱ ࢑ࢴා πŸ₯ΊπŸ™β€ πŸ˜‚πŸ˜‚πŸ˜‚

🧠 05 & 06. JavaScript Is Not Secret & Public Secrets

One of the biggest misunderstandings in web security is thinking: β€œUsers can't see the code, so the code is secure.” Except the browser literally needs the code. If JavaScript is sent to the browser, the browser has to receive it. And if the browser can execute it… well… it's not exactly a secret anymore. 😭

Imagine writing: const secret = "very_secret_value"; and then sending that JavaScript file to every visitor. Technically: β€œIt's a secret.” Practically: β€œIt's a secret that we delivered directly to the visitor.” πŸ’€

Sinhala version: β€œΰΆ»ΰ·„ΰ·ƒΰΆšΰ·Š ΰΆšΰ·’ΰΆΊΰΆ½ΰ· browser ΰΆ‘ΰΆšΰΆ§ΰΆΈ ࢯීࢽා, browser ΰΆ‘ΰΆšΰ·™ΰΆ±ΰ·Š ΰΆ’ΰΆš ΰ·„ΰΆ‚ΰΆœΰΆœΰ·™ΰΆ± ΰΆ‰ΰΆ±ΰ·ŠΰΆ± ΰΆšΰ·’ΰΆΊΰΆ± ΰΆ‘ΰΆš ΰΆ§ΰ·’ΰΆšΰΆšΰ·Š funny ࢱේࢯ?” 😭

🎭 07 & 08. Login Screen ≠ Auth System & The β€œAuthorized” Sticker

A login page is an interface. Authentication is a security process. Authorization is a permission decision. Those three things aren't identical.

You can have a beautiful login screen with animations, loading spinners, fancy icons, SweetAlert popups, dark mode, dramatic transitions… and still have weak authorization underneath. Basically: UI: πŸ”πŸ’ŽπŸ° | Security architecture: πŸͺ‘πŸ’€

Imagine walking into a school office. Security guard: β€œAre you authorized?” → Person: β€œYes.” → Guard: β€œProof?” → Person: β€œI have this sticker: 🟒 AUTHORIZED.” → Guard: β€œOkay bro, come in.” 😭 That's roughly the kind of trust model you don't want to rely on for serious authorization decisions. Because the person carrying the sticker also controls the sticker. πŸ˜‚

🧱 09 & 10. Frontend ≠ Security Boundary & Iframe Security

Frontend code is visible to the client. Frontend state is controlled by the client. Frontend UI can be modified by the client. Frontend behavior can be observed by the client. Therefore:

β€œFrontend controls should not be confused with backend authorization.”

You can hide an element. You can show a login popup. You can display: 🚫 ACCESS DENIED. But none of those things alone prove that the underlying data is protected.

Sinhala-English version: β€œButton ΰΆ‘ΰΆš hide ࢚ࢻࢽා database ΰΆ‘ΰΆš secure ΰ·€ΰ·™ΰΆ±ΰ·ŠΰΆ±ΰ·š ΰΆ±ΰ·‘ machan.” πŸ˜­πŸ”

Also, putting something inside <iframe> doesn't suddenly transform it into: πŸ›‘οΈ Military Grade Secure Container 3000β„’. An iframe is still part of the browser environment.

🚨 11, 12 & 13. Error Handling, Hidden vs Protected & Security by CSS πŸ’€

If an authentication UI encounters an unexpected error and falls back to making the protected interface available anyway: Login system: β€œSomething went wrong.” → Application: β€œAnyway… welcome.” 😭 That makes any security reviewer slowly put down their coffee and say: β€œHmm.” β˜•πŸ‘οΈπŸ‘„πŸ‘οΈ

Hiding a dashboard with CSS (display: none;) means: β€œThe user shouldn't see this right now.” Actual authorization means: β€œThis user is not allowed to access the protected resource.”

Sinhala: β€œScreen eka hide ࢚ࢻࢽා ΰΆ­ΰ·’ΰΆΊΰ·™ΰΆ± ΰΆ‘ΰΆšΰΆΊΰ·’, data eka protect ࢚ࢻࢽා ΰΆ­ΰ·’ΰΆΊΰ·™ΰΆ± ΰΆ‘ΰΆšΰΆΊΰ·’ ΰΆ―ΰ·™ΰΆšΰΆšΰ·Š.” Basically: β€œΰΆšΰΆ©ΰ·š shutter ΰΆ‘ΰΆš ΰΆ‡ΰΆ­ΰ·”ΰ·…ΰ·™ΰΆ±ΰ·Š lock ࢚ࢻࢽා ࢱෑ… curtain ΰΆ‘ΰΆš ࢯාࢽා ΰΆ­ΰ·’ΰΆΊΰ·™ΰΆ±ΰ·ŠΰΆ±ΰ·š.” πŸ˜‚

πŸ§‘πŸ’» 14, 15 & 16. DevTools, Obfuscation & Where Is the Trust?

DevTools isn't some evil hacking machine. It's literally a standard browser feature used by developers, QA testers, and researchers. Trying to prevent inspection doesn't make an application secure.

Confusing code ≠ secure code. Hidden UI ≠ protected resource. Disabled shortcuts ≠ authorization. Browser state ≠ trusted identity.

Every authentication system eventually has to answer one question: Who decides whether this user is allowed to access the resource? If the answer is mostly: β€œThe browser decides,” that's where the architectural breakdown occurs.

πŸ•΅οΈ 17 & 18. What This Review Does NOT Claim & Overall Vibe

This review does not prove: ❌ That the database has been breached. ❌ That student records have been accessed. ❌ That private information has been leaked. ❌ That the backend is definitely vulnerable. What can be discussed is what the frontend architecture appears to expose.

🎬 Movie title: β€œMission Impossible: Please Don't Press F12”

  • Main character: πŸ” Login screen
  • Supporting character: πŸ’Ύ LocalStorage
  • Comic relief: 🚫 Right-click disabled
  • Villain: πŸ§‘πŸ’» Developer Tools
  • Ending: β€œWait… who is actually enforcing the authorization?” πŸ‘οΈπŸ‘„πŸ‘οΈ πŸ’€πŸ’€πŸ’€
πŸ‡±πŸ‡° Sinhala Translation of the Entire Situation

ΰ·ƒΰΆ»ΰΆ½ΰ·€ΰΆΈ ΰΆšΰ·’ΰ·€ΰ·Šΰ·€ΰ·œΰΆ­ΰ·Š: Website ΰΆ‘ΰΆšΰ·š security ΰΆšΰ·’ΰΆΊΰΆ½ΰ· ࢴේࢱ්ࢱ mechanisms ࢜ොࢩ්࢚ ࢭිࢺෙࢱවා. Login screen ΰΆ‘ΰΆš ࢭිࢺෙࢱවා, Access checks ࢭිࢺෙࢱවා, Browser storage ࢭිࢺෙࢱවා, DevTools block ΰΆšΰΆ»ΰΆ±ΰ·€ΰ·, Right-click block ΰΆšΰΆ»ΰΆ±ΰ·€ΰ·, Dashboard ΰΆ‘ΰΆš hide/show ΰΆšΰΆ»ΰΆ±ΰ·€ΰ·, Iframe use ΰΆšΰΆ»ΰΆ±ΰ·€ΰ·. ΰΆ’ΰΆš ࢯැ්࢚࢚ාࢸ β€œΰΆ…ΰΆ©ΰ· ࢸේ࢚ ࢱࢸ් NASA level security ΰΆ‘ΰΆšΰΆšΰ·Šβ€ ΰ·€ΰΆœΰ·š ࢴේࢱ්ࢱ ΰΆ΄ΰ·”ΰ·…ΰ·”ΰ·€ΰΆ±ΰ·Š. හැࢢැࢺි web security ΰ·€ΰΆ½ΰΆ―ΰ·“ ࢴ්ࢻශ්ࢱࢺ: β€œProtected resource ΰΆ‘ΰΆš access ࢚ࢻࢱ්ࢱ ΰΆ‡ΰΆ­ΰ·ŠΰΆ­ΰΆ§ΰΆΈ authorization ΰΆ‘ΰΆš enforce ΰ·€ΰ·™ΰΆ±ΰ·ŠΰΆ±ΰ·š ΰΆšΰ·œΰ·„ΰ·™ΰΆ―?” ΰΆšΰ·’ΰΆΊΰΆ± ΰΆ‘ΰΆš.

Page ΰΆ‘ΰΆš hide ࢚ࢻࢱ්ࢱ ΰΆ΄ΰ·”ΰ·…ΰ·”ΰ·€ΰΆ±ΰ·Š. Button ΰΆ‘ΰΆš hide ࢚ࢻࢱ්ࢱ ΰΆ΄ΰ·”ΰ·…ΰ·”ΰ·€ΰΆ±ΰ·Š. Right-click block ࢚ࢻࢱ්ࢱ ΰΆ΄ΰ·”ΰ·…ΰ·”ΰ·€ΰΆ±ΰ·Š. F12 block ࢚ࢻࢱ්ࢱ ΰΆ΄ΰ·”ΰ·…ΰ·”ΰ·€ΰΆ±ΰ·Š. Login popup ΰΆ‘ΰΆš ࢯාࢱ්ࢱ ΰΆ΄ΰ·”ΰ·…ΰ·”ΰ·€ΰΆ±ΰ·Š. හැࢢැࢺි ࢒වා security boundary ΰΆ‘ΰΆšΰΆšΰ·Š ΰΆšΰ·’ΰΆΊΰΆ½ΰ· automatically ΰΆšΰ·’ΰΆΊΰΆ±ΰ·ŠΰΆ± ΰΆΆΰ·‘. ΰΆ’ΰΆš ΰΆ­ΰΆΈΰΆΊΰ·’ ࢸේ whole review ΰΆ‘ΰΆšΰ·š main point ΰΆ‘ΰΆš. πŸ”

🏁 Final Verdict & Rating

🏰 Fort Knox on the outside • 🎨 Web app on the inside • πŸ₯Ί β€œPlease don't inspect” energy everywhere • πŸ’€ Browser being trusted a little too much

Security awareness takeaway: β€œNever confuse a security-looking interface with a security boundary. Frontend can say β€˜NO.’ Actual authorization has to mean β€˜NO.’” πŸ”

Anyone can ignore a person,
but no one can replace the value of their skills.
α
-AnymousMRCM
• Developer & Security Researcher