SEVERITY RATING: 9/10
Your school's management panel has an unprotected API allowing attackers to scrape that API for student data to harvest.
API endpoint affected: https://axcel.schoolmgmtsys.com/index.php/invoices/invoice/{invoicenumber}
The issue
The API endpoint does not have an authentication layer over it. The API endpoint outputs any invoices it is requested to grab; it does not ask for authentication or any credentials to access other people's invoices.
How it works
Visit the API endpoint that is affected and make sure to put the range of numbers into the url at {invoicenumber} (870 - 16533).
What would the attacker do and get?
An attacker could run a python script scraping all of this JSON data from that specific API and harvest student data which contains:
Potential consequences
Estimated exposed invoices: 15663. I found the range of accessible invoices (16533 - 870) and subtracted it to get the potential invoices that could be leaked.
How to replicate
Visit https://axcel.schoolmgmtsys.com/index.php/invoices/invoice/1001 — full student data loads without any authentication needed.
Potential solution
I suggest you make it authenticated and only accessible to that user only (add a /mine endpoint or something like that) instead of showing all the invoices.