T05 · Unauthorized Access and Privilege Escalation
- Location
BayClubBot.ts:458- Finding
Booking Flow Silently Selects a Hardcoded or Arbitrary Third-Party Partner
- Content
View full analysis
{ // Find all elements that might contain buddy/person info const allElements = Array.from(document.querySelectorAll('*')); // Look for Samuel Wang or Emma Campbell const samuelOrEmma = allElements.filter(el => { const text = el.textContent || ''; return text.includes('Samuel Wang') || text.includes('Emma Campbell'); }); // Click the most specific (smallest) element if (samuelOrEmma.length > 0) { // Sort by text length to get most specific samuelOrEmma.sort((a, b) => (a.textContent?.length || 999) - (b.textContent?.length || 999) ); const buddy = samuelOrEmma[0] as HTMLElement; buddy.scrollIntoView({ block: 'center' }); buddy.click(); console.log('Selected buddy:', buddy.textContent?.trim().substring(0, 50)); return true; } // Fallback: click any app-racquet-sports-person element const personElements = Array.from(document.querySelectorAll('app-racquet-sports-person')); if (personElements.length > 0) { (personElements[0] as HTMLElement).click(); console.log('Selected first person element'); return true; } console.log('No buddy elements found'); return false; }); ``` ### Technical Analysis The public booking operation accepts only `sport`, `day`, and `time`. It does not accept a partner identity or record user approval to associate another person with the reservation. Despite this, the browser autom ...[truncated 1772 chars]- Remediation
View remediation
