How We Hacked Guatemala's Largest E-Commerce Platform (And Fixed It)

Juan Pablo Mora 6 min read

How We Hacked Guatemala's Largest E-Commerce Platform (And Fixed It)

TLDR: I found critical security vulnerabilities in guatemaladigital.com, Guatemala's largest online retailer, while casually browsing their site. A 25-minute look turned into a full external audit. Every company running custom software, integrations, or in-house code has the same exposure. Here is what a security foundation actually looks like.


I Was Just Browsing

I was not looking for a vulnerability. I was on guatemaladigital.com, one of the largest e-commerce platforms in Central America, with operations in Guatemala, El Salvador, Honduras, and Costa Rica, checking something routine.

A purchase lookup caught my attention. It let anyone search for orders by entering a first and last name. Any name. For any customer. That design decision alone was worth poking at.

When my search returned a result, a second request fired in the background carrying a customer ID and several other parameters. I opened the network inspector. Twenty-five minutes later, I had a full database dump.


What I Found

The platform ran on custom PHP with some sections recently migrated to Next.js. Multiple endpoints were injectable through error-based, blind, and union-based SQL injection. None of them had rate limiting. I made hundreds of sequential requests without a single block or challenge.

The database held roughly 10 years of records:

  • Full customer names, addresses, and purchase history
  • Payment method data
  • Plaintext, unhashed passwords
  • Shareholder payout records

The exposure went further than the database. Stored inside were:

  • Slack API tokens used for internal alerts, valid and exposed with no access control
  • S3 bucket URLs allowing unauthenticated file uploads
  • PDF scans of company documents: founder identification, company patents, and legal filings

None of it was encrypted. All of it was reachable through direct, public URLs sitting in the database.


The Disclosure

I reached out to CEO Mario Porres (linkedin.com/in/mariorenegt) on LinkedIn. His national ID scan was one of the files I had recovered.

It took two full days to get a meaningful response. The first reply came from a low-hierarchy IT contact. It was only after I sent the CEO his own ID document that the conversation moved directly to him and picked up speed.

That two-day window matters. A confirmed external breach notification sat unacknowledged for 48 hours, not from bad faith, but because no escalation path existed for an inbound security report.


The Remediation

We worked directly with guatemaladigital.com's internal software team to scope and fix the vulnerabilities. The engagement covered:

  • Parameterized query enforcement across all injectable endpoints
  • Rate limiting and request anomaly detection on sensitive API paths
  • Password re-hashing and forced credential resets
  • S3 bucket access policy corrections
  • Slack token rotation and proper secrets management
  • A full API attack surface review with additional recommendations

PHP, Custom Code, and Where Breaches Actually Come From

GuatemalaDigital's platform was built in PHP, with Next.js layered on top for newer sections. That combination is common across Central America and across most of the web.

PHP powers roughly 77% of all websites with a known server-side language. It also accounts for a disproportionate share of SQL injection incidents in breach reports year after year, including in Verizon's DBIR and HackerOne's annual findings. The reason is not that PHP is inherently broken. The reason is that PHP's permissive defaults, combined with years of tutorials that taught raw string interpolation in SQL queries as standard practice, produced a massive body of legacy code where input validation was never built in.

Adding a modern JavaScript frontend on top does not change what the API layer behind it does. A Next.js UI making requests to unsanitized PHP endpoints has the same exposure as a 2008 PHP page. The attack surface is identical.


Off-the-Shelf Is Not the Problem. Bad Integrations Are.

WordPress, Odoo, Shopify, Magento: these platforms have dedicated security teams, CVE programs, rapid patch cycles, and years of hardening. A vanilla WordPress install in 2026 is not where most breaches start.

Breaches start in the custom PHP module someone wrote to sync orders to an internal system. In the lookup endpoint bolted on six months after launch to answer a business requirement. In the integration script that queries the database directly because "it just needed to work" and was usually written by someone who is no longer at the company, which is exactly the single point of failure problem that makes in-house development risky for non-tech companies.

Security is a chain. A single unsanitized parameter breaks everything behind it, regardless of how solid the base platform was.

We rebuilt Attentti's platform specifically because their WordPress-plus-custom-integrations stack had grown into the same kind of untraceable, unauditable codebase. The vulnerabilities were not in WordPress. They were in everything added on top.

This is the pattern we see across the region. A company starts on a reputable platform, grows, adds custom functionality under deadline pressure, never audits what was added, and ends up with a ten-year-old customer database walking out the door in 25 minutes.


The Context in Guatemala

Guatemala is not operating in a low-threat environment. In the first half of 2025, the country faced over 214 million attempted cyberattacks (Fortinet 2025 Global Threat Report). Ransomware hit the Ministry of Finance and the Ministry of Education. A US-Guatemala joint security review in April 2025 identified APT-15, a Chinese state-linked threat group, active inside Guatemalan government systems. Credentials from over 30 Guatemalan state institutions were found for sale in cybercrime markets the same year.

Private companies holding large volumes of customer data sit inside this same threat landscape. A platform the size of guatemaladigital.com, with 2.79 million monthly visits and customer records spanning a decade, is an attractive target regardless of whether the attacker is a nation-state or a freelance SQL injection script.


The Legal Exposure

Guatemala does not yet have a comprehensive data protection law. Cybersecurity Bill 6347 was introduced in mid-2025. That gap does not eliminate liability. It shifts it to civil exposure, commercial damages, and the reputational cost of a breach becoming public without any formal remediation narrative attached to it.

El Salvador and Honduras are watching the legislative trajectory in Guatemala closely. Companies operating across Central America should be building compliance posture now, before the frameworks arrive and retroactive requirements become the problem. Companies evaluating what a proper software partner looks like should be asking about security posture before they ask about timeline.


What a Security Foundation Looks Like

Every vulnerability found at guatemaladigital.com is preventable at the architecture level, before a single line of custom code ships. The fixes are not exotic.

Parameterized queries as a non-negotiable default: the kind baked into Django's ORM at the framework level, not bolted on after the fact. Secrets management so tokens, keys, and credentials never enter the database. Access control enforced at the API layer on every endpoint. Rate limiting and anomaly detection before requests reach persistence. Dependency and static analysis on every deploy.

This is the baseline we build into every project at Nimble from day one, not as a compliance checklist but as a prerequisite for shipping.


Responsible Disclosure

This article is published with the knowledge and cooperation of guatemaladigital.com. All vulnerabilities have been patched. No customer data was retained, shared, or used beyond demonstrating the vulnerability to the company. The disclosure followed responsible disclosure principles throughout.