The challenge
What did the client need?
A technology company asked ioSENTRIX to test its web application, its backend APIs and the desktop agent its staff install.
Engagement details
- Client
- Technology company
- Product
- Web platform with a desktop agent for staff
- Scope
- Web application, backend APIs and the desktop agent
- Engagement
- A multi-week engagement
- Verified
- All findings closed; retested by ioSENTRIX
- Tested by
- ioSENTRIX application and thick-client testers
Our approach
How did ioSENTRIX approach it?
Desktop agents fall between web and endpoint testing, so neither a web scanner nor an endpoint tool looks at the local connection between them. Finding this took testing the agent, the browser and the APIs together.
Also found: a hard-coded database password in the agent, server-side request forgery, missing cookie flags, a password-change endpoint open to brute force, an outdated library and weak TLS ciphers.
What we found
What did ioSENTRIX find?
Any website could reach the desktop agent, and one stolen token could reach data across the platform.
CriticalFinding 1
Any website could control the desktop agent
The agent ran a local WebSocket server with no encryption, authentication or origin check. Any web page open in the user’s browser could connect and call sensitive agent functions and even make the machine scan the internal network.
Business impact. A malicious website could use the agent, and its reach into the internal network, on any staff machine with no user interaction.
HighFinding 2
A token in memory beat device registration
The agent kept its sign-in token in plain text in memory, readable with standard tools and no admin rights. The token worked from any machine, defeating device registration, and missing ownership checks on the APIs let it open other accounts’ records and customer details.
Business impact. One compromised workstation could expose data across the entire platform.
Two paths from a single staff machine to platform-wide exposure
Path 1 · malicious website · Critical
- 1Website visitedby a staff member
- 2Agent reachedno authentication
- 3Functions callednetwork scanned
Path 2 · token theft · High
- 1Token readfrom agent memory
- 2No device checktoken works anywhere
- 3IDs changedother accounts’ data
Outcome: Exposure (internal network and platform-wide data)
The impact
What changed as a result?
We found that any website a user visited could control the agent through an unprotected local connection, and that a token read from memory bypassed device registration and opened data across the whole platform. The client closed every finding, and ioSENTRIX retested the fixes.
10+
findings across web, API and desktop
1
Critical: any website could drive the agent
2
attack chains, one reaching platform-wide data
How many findings, and how severe?
10+ findings in total, including 1 Critical and 2 High.
- Critical 1
- High 2
- Medium
- Low
- Info
What changed after the test?
- Agent connection. Encrypted, authenticated and origin-checked.
- Tokens. Protected in memory with platform encryption and cleared after use.
- APIs. Ownership checked on every object, from the session, not the request.
- Hygiene. Hard-coded credentials removed, rate limits added, libraries upgraded.
✓ Verification: All closed by the client; retested by ioSENTRIX.