// CASE STUDY

Beyond Checklists: How I Harvested Millions of Customer Records in 14 Days

Adnan Ahmad · · API Security Research

How methodical analysis, relentless persistence, and pattern recognition led to uncovering a critical authentication bypass vulnerability affecting a major telecommunications provider. Exposing millions of customer records across 300+ API endpoints.

Executive Summary

Your security team worked for months implementing OAuth2, JWT tokens, multi-factor authentication, and API gateways. They followed every checklist, passed every compliance audit, and confidently deployed what they believed was a fortress protecting millions of customer records.

It took me two weeks to break it all.

Not through some zero-day exploit or sophisticated malware. Not through social engineering or stolen credentials. I broke it by reading JavaScript. Half a million lines of client-side code that your development team inadvertently turned into a complete blueprint of your backend infrastructure. Every endpoint. Every authentication flow. Every assumption your architects made about security.

This is the story of how methodical analysis, relentless persistence, and pattern recognition (skills that transcend any security certification or penetration testing checklist) led to uncovering a critical authentication bypass vulnerability affecting a major telecommunications provider. A vulnerability that exposed sensitive customer information across hundreds of API endpoints. A flaw so fundamental that it challenged the entire architectural security model of a multi-billion dollar organization.

The engagement demonstrated a harsh truth: your infrastructure is breakable. Not because your security team is incompetent, but because skilled attackers operate in dimensions that compliance checklists don't cover.

This is not a story about finding a bug. This is a story about dismantling architectural assumptions, piece by piece, until the entire security model collapses. And it all started with a simple question: "If I can see this JavaScript, what else can I see?"

The Challenge: Modern Applications, Complex Attack Surfaces

Contemporary web applications have evolved significantly over the past decade. The shift from server-side rendering to client-side JavaScript frameworks has fundamentally altered security paradigms. While this architecture offers improved user experiences and development velocity, it introduces unique security challenges.

The Modern Application Stack

Heavy client-side JavaScript execution (~300,000+ lines per module)

RESTful API backends with microservice architectures

Complex authentication flows involving JWT tokens and DPoP (Demonstrating Proof-of-Possession)

CDN-distributed static assets

This complexity creates both opportunities and challenges for security researchers. The question becomes: how do you effectively audit such a massive codebase when traditional penetration testing methodologies may fall short?

Methodology: Systematic Enumeration and Analysis

Phase 1: Client-Side Reconnaissance

The initial approach focused on comprehensive client-side analysis. Modern applications leak significant architectural information through their JavaScript bundles. By examining these resources systematically, I developed a complete picture of the backend infrastructure.

Technical Approach

Analyzed multiple JavaScript modules totaling approximately 500,000 lines of code

Catalogued every API endpoint reference, authentication flow, and data structure

Identified patterns in URL construction and parameter handling

Documented authentication mechanisms (OAuth2, JWT, DPoP signatures)

🔍 KEY DISCOVERY

A CloudFront distribution index inadvertently exposed references to internal endpoints. Functionality designed for customer service agents, not end users.

Phase 2: Intercepting the Redirect

When attempting to access these internal endpoints directly, the application would immediately redirect to a 404 page. However, the redirect itself revealed the critical flaw.

Technical Implementation

During the brief moment before redirection, the server delivered complete JavaScript bundles containing:

180+ additional API endpoint definitions

Function implementations for customer service operations

Parameter structures for billing, account management, and customer support operations

Crucially: No client-side authentication validation logic

This discovery raised a fundamental question: if authentication wasn't validated client-side, where was it enforced?

Phase 3: Authentication Architecture Analysis

Modern APIs typically implement defense-in-depth authentication:

LAYER 1

Client-side token validation

LAYER 2

API gateway authentication

LAYER 3

Backend service authorization

LAYER 4

Resource-level access controls

⚠️ THE VULNERABILITY

Through systematic testing, I discovered that while the application implemented sophisticated authentication mechanisms for legitimate user flows, certain endpoints relied solely on frontend access controls. The backend services assumed that any request reaching them had already been authenticated.

Authentication Bypass Technique

Step 1: Obtain Guest Token
- Available to any visitor to the public website
- No authentication required
- Provides basic API access credentials

Step 2: Construct Proper Request Structure
- Include all required headers from JavaScript analysis
- Generate valid DPoP signatures (client-side proof of possession)
- Structure payloads according to discovered API schemas

Step 3: Direct Backend Access
- Bypass frontend authentication by calling APIs directly
- Use guest credentials with properly formatted requests
- Access privileged endpoints designed for authenticated users

Phase 4: Exploitation and Impact Demonstration

Account Enumeration

The first breakthrough came with a billing endpoint requiring only a single parameter: account number. This numeric identifier followed a predictable pattern, enabling systematic enumeration.

Example Request Pattern

POST to billing endpoint
Payload: {"accountNumber":"NNNNNNNNN"}

Success indicators:
- Unique response sizes for valid accounts
- Return of associated phone numbers and identifiers
- Billing history data

Chaining Vulnerabilities

Once valid account numbers were identified, they could be used to access additional endpoints:

Account Number →  Details Endpoint → Full Customer Profile
Including:
- Complete name and address
- Phone number (MSISDN)
- SIM card numbers
- Service plan details
- Emergency contact information

Scalability

The vulnerability was fully automatable. I developed a proof-of-concept harvester that could:

Enumerate valid account numbers (thousands per hour)

Extract complete customer profiles

Access billing history and payment methods

Retrieve call detail records

Modify account settings (proven in controlled testing)

Technical Deep Dive: Why This Worked

The Architectural Flaw

The root cause wasn't a simple coding error. It was an architectural assumption.

Flawed Security Model

Frontend → [Authentication Gate] → API Gateway → Backend Services
                                         ↓
                                   [Assumed Authenticated]

The backend services operated under the assumption that the API gateway had already validated authentication. However, the gateway itself only enforced authentication for specific request patterns, not comprehensive endpoint-level authorization.

The Guest Token Paradox

Guest tokens exist to allow anonymous users limited functionality (browsing products, checking service availability). However, these tokens had sufficient privileges to:

Generate valid DPoP signatures

Pass API gateway authentication checks

Access backend services that didn't independently verify authorization

Header Manipulation and Fingerprinting Evasion

The application used extensive header-based fingerprinting:

Custom activity identifiers

Channel identification

Application context headers

Interaction tracking

The Bypass

By extracting all header patterns from the JavaScript code and replicating them exactly, requests appeared legitimate to backend validation logic:

Required Headers (30+ extracted from code):
- Authorization: Bearer [guest_token]
- X-Authorization: [DPoP_signature]
- ActivityId: [generated_timestamp_identifier]
- ChannelId: CHANNEL1
- ApplicationId: HACKED
- SenderId: ADANANSECURITY
- [Additional context headers...]

Impact Assessment: The Scope of Exposure

Data Categories Accessible

Personally Identifiable Information

  • Full names
  • Complete residential addresses
  • Emergency contact details
  • Phone numbers

Account Information

  • Service plan details
  • Account tenure and status
  • SIM card identifiers
  • Device information (IMEI numbers)

Financial Data

  • Billing history (6+ months)
  • Payment methods
  • Recurring charges
  • Account balances

Communication Records

  • Call detail records (CDRs)
  • Data usage logs
  • SMS/MMS patterns
  • Roaming information

Scale and Automation Potential

📊 CONSERVATIVE ESTIMATES

Request Rate: 5 requests per second (avoiding detection)

Accounts Per Hour: ~18,000

Data Extraction: Complete profile extraction per account

An attacker could harvest hundreds of thousands of customer records within days, operating well below threshold limits that might trigger security monitoring.

Write Operations: Proving P1 Severity

Reading customer data is severe. Modifying it escalates the risk significantly. Through controlled testing on designated test accounts, I demonstrated write capabilities:

Confirmed Write Operations

OPERATION 1

Account Blocking

Successfully blocked SIM card functionality

OPERATION 2

Service Enrollment

Enrolled accounts in government assistance programs

OPERATION 3

Profile Modifications

Changed account preferences and settings

OPERATION 4

Notification Management

Altered customer notification preferences

Potential Impacts Not Tested (Ethical Boundaries)

⚠️ UNTESTED CAPABILITIES

• Billing address modifications

• Payment method updates

• Service plan changes

• Account deactivation

The ability to modify accounts at scale could enable fraud, service disruption, or sophisticated social engineering attacks.

The AI-Powered Discovery Accelerator

To maximize efficiency in endpoint discovery and payload optimization, I developed an AI-assisted fuzzing tool using Claude 3.7 Sonnet. This tool automated the process of:

Intelligent Payload Generation

STEP 1

Analyze error responses for missing fields

STEP 2

Infer required data structures from error messages

STEP 3

Generate valid payloads iteratively

STEP 4

Learn from successful requests

Example: Enrollment Endpoint

Initial Attempt:
Payload: {"accountNumber": "1337"}
Error: NullPointerException accessing PersonalDetails.secretField

AI Analysis:
"The error indicates PersonalDetails object is null. 
Need to include PersonalDetails with secretField field."

Second Attempt:
Payload: {
  "accountNumber": "1337",
  "PersonalDetails": {
    "secretField": "12345"
  }
}
Result: Success in 2 iterations

💡 EFFICIENCY GAIN

This methodology reduced payload discovery time from hours to minutes, costing less than $0.01 per endpoint analysis. It changes the time required for blind testing a single endpoint, from 45-60 minutes per endpoint, down to 1 seconds per attempt. This alone will cause attacks to 1000-fold over the next 12 months.

Remediation Journey: From Discovery to Resolution

Initial Resistance

The disclosure process revealed challenges in vulnerability validation:

DAY 1

Initial submission with 3 customer examples

DAY 2-3

Triage team claimed data shown was "researcher's own"

CHALLENGE

Proving ownership of data for customers in a different country with no service access

Escalation Through Evidence

Response Strategy

STEP 1

Provided step-by-step reproduction instructions

STEP 2

Created automated harvester (limited to 25 accounts)

STEP 3

Demonstrated account enumeration methodology

STEP 4

Submitted complete HTTP request/response pairs

STEP 5

Recorded video proof-of-concept

Validation and Acceptance

✅ RESOLUTION

• Vulnerability confirmed by security team

• Classified as P2 (Read Access) initially

• Escalated to P1 after demonstrating write capabilities

• Program-wide scope changes implemented

Infrastructure Response

Organizational Actions

300+ vulnerable endpoints removed from bug bounty scope

API architecture comprehensive review initiated

Authentication model redesigned

Monitoring and detection capabilities enhanced

Key Lessons for Enterprise Security

1. Defense in Depth Requires Verification at Every Layer

❌ ANTI-PATTERN

Assuming upstream authentication gates guarantee downstream security

✅ BEST PRACTICE

Every service should independently verify authorization for its resources

2. Client-Side Code is Public Code

⚠️ REALITY CHECK

JavaScript bundles reveal:

• Complete API architecture

• Authentication flows

• Business logic

• Parameter structures

• Error handling patterns

🛡️ MITIGATION

Assume all client-side code is available to attackers. Design accordingly.

3. Guest Tokens Need Strict Scoping

❌ PROBLEM

Overly permissive guest credentials

✅ SOLUTION

Principle of least privilege for anonymous access

Whitelist specific endpoints for guest access

Implement strict parameter validation

Monitor unusual usage patterns

4. Predictable Identifiers Enable Enumeration

❌ WEAKNESS

Sequential numeric account identifiers

✅ IMPROVEMENT

Use non-sequential UUIDs or implement rate limiting per identifier space

5. Error Messages Should Never Leak Architecture

Example from This Case:

"java.lang.NullPointerException - Cannot invoke 
'PersonalDetails.getSecretField()' 
because the return value is null at 
come.test.some.utility.business.SecretFieldEnrollment : mapEvent : 141"

⚠️ THIS SINGLE ERROR MESSAGE REVEALED

• Java implementation

• Class structure

• Method names

• Business logic flow

• Exact line numbers

✅ BEST PRACTICE

Generic error messages externally, detailed logging internally. Do not send full exceptions back to the user.

Technical Skillset Applied

This engagement demonstrated the intersection of multiple security disciplines:

Application Security

  • JavaScript reverse engineering
  • API architecture analysis
  • Authentication bypass techniques
  • Session management exploitation

Automation & Tooling

  • Custom Python tooling development
  • AI-assisted fuzzing
  • Automated enumeration frameworks
  • Proof-of-concept creation

Network Analysis

  • HTTP traffic interception
  • Header analysis and replication
  • CDN architecture understanding
  • Proxy configuration and management

Cryptographic Understanding

  • JWT token structure
  • DPoP implementation
  • Public key infrastructure
  • Signature generation and validation

Results and Impact

📊 QUANTIFIABLE OUTCOMES

Vulnerability Severity

P1 - Critical

Affected Endpoints

300+ identified / Full architecture

Potential Customer Impact

Millions of records

Time to Discovery

~2 weeks of dedicated analysis

Remediation

Complete API architecture overhaul

Industry Impact

This finding highlighted systemic issues in modern API design:

Reliance on frontend security controls

Insufficient backend authorization validation

Complexity-induced security gaps

Need for comprehensive API security testing

Reflections on Responsible Disclosure

Ethical Boundaries Maintained

Throughout this engagement, I maintained strict ethical standards:

NO DATA EXFILTRATION

Customer data accessed was minimal and for proof only

LIMITED TESTING SCOPE

Stopped enumeration at validation threshold

NO PUBLIC DISCLOSURE

Waited for complete remediation

CONTROLLED WRITE TESTING

Only on explicitly authorized test accounts

The Disclosure Challenge

This case highlighted a common challenge in bug bounty programs: validation friction. When researchers discover vulnerabilities requiring significant technical context to reproduce, clear communication becomes critical.

Lessons Learned

Invest time in clear, step-by-step reproduction guides

Provide multiple evidence formats (written, video, code)

Be patient with security teams who may not have immediate context

Create automated tools to simplify validation

Conclusion: Beyond Checklists, Beyond Certifications, Beyond Assumptions

Let me tell you something about time that most security teams don't understand: time is irrelevant to a skilled attacker.

Your blue team works 9-to-5. They need coffee breaks, lunch breaks, team meetings, sprint planning sessions. They follow their incident response playbooks, run their quarterly penetration tests, and check boxes on compliance frameworks. They clock out. They have work-life balance. They sleep soundly believing that the time investment required to breach your systems acts as a natural deterrent.

I don't have work-life balance when I'm locked onto a target. I have obsession.

Once I sit down and decide you're my target, it doesn't matter who you are, how big you are, or how sophisticated your defenses appear. I hammer the keyboard for 18 to 20 hours straight. One meal a day. Four hours of sleep, and even then, my subconscious is processing, connecting patterns, formulating the next ten attack vectors I'll try the moment I wake up.

Your team sleeps eight hours, works eight hours, has eight hours for everything else. I sleep four hours and spend the other twenty attacking. That's a 5:1 time advantage before we even discuss skill differential. This two-week engagement? That's nothing. I've spent months on targets when the reward justified it. And the reward isn't always money. Sometimes it's data, sometimes it's proof of concept, sometimes it's simply the satisfaction of breaking what others deemed unbreakable.

The fundamental asymmetry: Your security team needs to get everything right. I only need to find one thing wrong. And I have unlimited time, unlimited motivation, and unlimited resources dedicated to finding that one thing.

This case took two weeks of focused analysis. 500,000 lines of JavaScript code manually reviewed, 300+ API endpoints catalogued, authentication flows reverse-engineered, and architectural assumptions systematically dismantled. To your security team, this might seem like an enormous time investment. To me? It's a Tuesday. The reward (access to millions of customer records, the ability to modify account data at scale, and a case study demonstrating fundamental API security failures) made every hour worthwhile.

Why Your Checklist-Based Security Fails

Security certifications teach you to check for SQL injection, validate input, implement HTTPS, and follow OWASP guidelines. That's fine for stopping script kiddies. But skilled attackers don't follow attack trees or vulnerability databases. We break problems down to core principles:

How does authentication actually work here? Not according to the documentation, but in reality, in the code, at runtime.

What assumptions did the architects make? Every assumption is a potential vulnerability.

Where is trust inherited instead of verified? These are the architectural weak points.

What do error messages reveal? Every exception is information leakage.

How can I make the system give me what I want? Not through exploitation, but through understanding the system better than those who built it.

These thought processes happen on the fly, in parallel, constantly. It's not a checklist. It's a mindset. And this mindset, developed over years of breaking systems, sees vulnerabilities that compliance frameworks never anticipated.

The Real Problem: Infrastructure Security as an Artform

In 2025, it's trivially easy to "vibe code" something together. AI assistants write functional code. Frameworks handle authentication. Cloud providers manage infrastructure. Your development team can ship features faster than ever.

But shipping fast is not shipping secure.

Security-minded architecture is an artform. It requires understanding not just how systems work, but how they fail. Not just following best practices, but understanding why those practices exist and when they're insufficient. Not just implementing authentication, but considering every possible way that authentication could be bypassed.

Your $500 security certification taught you to look for known vulnerabilities. It didn't teach you to think like an attacker who has analyzed thousands of applications, internalized architectural patterns, and can spot the subtle misconfigurations that compound into critical breaches.

The Brutal Mathematics of Offensive vs. Defensive Security

Let's be clear about something: you cannot win this game through defensive measures alone.

Your security team is finite. You have budgets, headcount limits, priorities that compete with feature development. You need to secure everything, all the time, perfectly.

I only need to find one way in. And I have time, motivation, and expertise that your compliance checklist never accounted for. When I encounter a security barrier, I don't stop. I analyze it, understand it, and either bypass it or find another route. The attack only stops when I've exhausted my options or achieved my objective.

If your blue team stops me, it doesn't mean your security works. It means I haven't found the vulnerability yet. But I will keep looking, because skilled attackers don't quit. We iterate, we learn, we adapt. Every failed attempt teaches us something about your defenses. Every error message, every timeout, every unexpected behavior is data.

What Actually Works: Real Security Auditing

This engagement exposed 300+ vulnerable endpoints. Your internal security team didn't find them. Your compliance audits didn't catch them. Your automated scanners missed them entirely.

Why? Because they were looking for known patterns, not architectural flaws. They were checking boxes, not challenging assumptions.

Real security auditing requires

Architectural Review Beyond Implementation: Understanding not just what your code does, but what your architects assumed would never happen.

Adversarial Thinking: Approaching your infrastructure with the mindset of someone who has broken hundreds of similar systems.

Time and Expertise: Spending weeks analyzing single attack surfaces that automated tools scan in minutes, finding the subtle logical flaws that compose into critical vulnerabilities.

Comprehensive Testing: Not just checking if authentication exists, but testing if it can be bypassed. Not just validating input, but finding the endpoints that don't validate. Not just following the happy path, but exploring every edge case and error condition.

Real-World Attack Simulation: Not theoretical "what if" scenarios, but actual proof-of-concept exploitation demonstrating complete compromise.

The Uncomfortable Truth

Your infrastructure is breakable. I don't care who you are, how much you've invested in security, or how many certifications your team holds.

The reason is simple: skilled attackers have so much to throw at your infrastructure that goes beyond what your blue team's checklist checked for.

You get hacked not because your security team is incompetent, but because they're playing a different game. They're defending against known attacks. I'm inventing new ones. They're following best practices from 2023. I'm exploiting architectural assumptions made in 2020. They're checking compliance boxes. I'm reading every line of JavaScript your developers thought was "just frontend code."

The time delta? Irrelevant. Whether it takes me two weeks or two months doesn't matter when the reward is access to millions of customer records or a five-figure bounty. I'm not constrained by sprint planning or quarterly objectives. I continue until I break through.

What You Can Do About It

Stop relying on checklists. Stop thinking your $500 certification makes you secure. Stop believing that compliance equals security.

Hire someone who actually breaks systems for a living. Someone who has spent years in the offensive trenches, who thinks in attack graphs instead of compliance frameworks, who can analyze your architecture and find the flaws before malicious actors do.

You get a report that actually addresses real problems. Not theoretical vulnerabilities from a scanner. Not checkbox compliance items. Real, exploitable flaws demonstrated with working proof-of-concept code. Architectural weaknesses that could compromise your entire customer database. The vulnerabilities that your blue team missed because they weren't looking for them. Because their training never covered them, their tools can't detect them, and their checklists don't include them.

The Choice

You can continue playing defense with the same approaches that allowed this telecommunications provider to expose millions of customer records. You can trust that your existing security measures are sufficient, despite having no way to verify that assumption.

Or you can acknowledge the uncomfortable truth: offensive security expertise finds vulnerabilities that defensive security posture misses. Every time. Without exception.

This case study proves it. Two weeks. 300+ vulnerable endpoints. Complete authentication bypass. Full read/write access to customer data. All of it invisible to internal security teams, compliance audits, and automated scanners.

The question isn't whether your infrastructure has similar vulnerabilities. The question is: do you want to find them before someone else does?

Your next breach is already in progress. Somewhere, someone is reading your JavaScript, analyzing your API responses, cataloguing your endpoints, and testing your assumptions. The only question is whether they're doing it on behalf of your security, or against it.


About Security Assessment

This engagement represents what actual security research looks like. Not automated scanning, not checkbox compliance, but deep technical analysis by someone who understands how systems break because they've broken thousands of them.

If you want your infrastructure tested by someone who thinks like an attacker, not someone who follows a checklist, you know where to find me.

Because your compliance report says you're secure. But I can prove you're not. Contact me, sign the waiver and let me make your blueteam sweat. More importantly, I can help you find and fix the vulnerabilities before they are exploited.


Adnan Ahmad. Independent security researcher specializing in architectural security analysis, API security research, and adversarial security assessment. Available for comprehensive infrastructure audits that go beyond what your blue team's checklist covers.