Thick Client Testing

How any website could take control of a company’s desktop agent

Client
Technology company
Service
Web, API and desktop agent penetration testing
Engagement
Multi-week engagement
Verified
All findings closed; retested by ioSENTRIX
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
  1. 1Website visitedby a staff member
  2. 2Agent reachedno authentication
  3. 3Functions callednetwork scanned
Path 2 · token theft · High
  1. 1Token readfrom agent memory
  2. 2No device checktoken works anywhere
  3. 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.

Key insight

A token copied from memory walked straight around device registration.

Lessons

Lessons for product teams

01

A local server is a public server

Any website can reach localhost unless you authenticate and check origin.

02

Device binding needs protected tokens

If a token can be copied, the device check can be skipped.

03

Check ownership on every object

The ID in a request is the user’s claim, not proof (OWASP API1).

  1. Severity rated on a five-level likelihood and impact matrix based on NIST SP 800-30 Rev. 1.
  2. OWASP API Security Top 10 (2023): API1 Broken Object Level Authorization, API5 Broken Function Level Authorization. Cited as alignment guidance.
Next step

Shipping a desktop agent or companion app? See a sample thick-client test report or book a strategy session.

Service
Thick client and desktop application testing
Explore the service

Details in this case study are anonymised and generalised. Methods that could harm other products are withheld.

FAQ

Frequently asked questions

What did ioSENTRIX test in this case study?

A technology company asked ioSENTRIX to test its web application, its backend APIs and the desktop agent its staff install.

What was the most serious issue?

Any website could control the desktop agent. A malicious website could use the agent, and its reach into the internal network, on any staff machine with no user interaction.

How many findings were there, and how severe?

10+ findings in total, including 1 Critical and 2 High.

Were the fixes verified?

All closed by the client; retested by ioSENTRIX.

Which ioSENTRIX service does this case study cover?

Thick client and desktop application testing, delivered by the ioSENTRIX application and thick-client testers.

How to get started

Ready to strengthen your security? Fill out our quick form, and a cybersecurity expert will reach out to discuss your needs and next steps.
DecorativeDecorative