Welcome to the community vote for the Top 10 Web Hacking Techniques of 2024.

Please review the nominations and rank the 10 entries you think contribute the most to the field. Rank 1 is the highest ranking, and you must rank at least 3. For further information, please refer to last year's results.

Entries marked with a * feature multiple independent writeups using a single core technique.

Closing time: 01 February 2025 00:00:00 (UTC)

Research
Back to the (Clip)board with Microsoft Whiteboard and Excalidraw in Meta (CVE-2023-26140)

Exploiting the Clipboard API to inject XSS payloads through poisoned clipboard data in collaborative whiteboard applications.


Listen to the whispers: web timing attacks that actually work

Making HTTP/2 timing attacks feasible and effective across diverse web environments by addressing network and server noise through novel techniques like single-packet sync and exploiting scoped SSRF opportunities.


Break the Wall from Bottom: Automated Discovery of Protocol-Level Evasion Vulnerabilities in Web Application Firewalls

Automated discovery of protocol-level evasion vulnerabilities in WAFs using a novel testing methodology that exploits parsing discrepancies between WAF and web applications.


Secret Web Hacking Knowledge: CTF Authors Hate These Simple Tricks

CTF-focused techniques


Unveiling TE.0 HTTP Request Smuggling: Discovering a Critical Vulnerability in Thousands of Google Cloud Websites

A novel HTTP Request Smuggling vector affecting Google Cloud-hosted websites.


[EN] Multi-sandwich attack with MongoDB Object ID or the scenario for real-time monitoring of web application invitations: a new use case for the sandwich attack

Multi-sandwich attack exploiting MongoDB Object ID's predictable counter to monitor and intercept tokens in real-time.


Undefined-oriented Programming: Detecting and Chaining Prototype Pollution Gadgets in Node.js Template Engines for Malicious Consequences

Detecting and chaining indirect JavaScript prototype pollution gadgets using undefined properties for complex attack vectors like ACE and RCE.


Hijacking OAUTH flows via Cookie Tossing

Hijacking OAUTH flows via Cookie Tossing for Account Takeovers


A Race to the Bottom - Database Transactions Undermining Your AppSec

Detailed analysis of patterns that enable race condition attacks on database transactions


ChatGPT Account Takeover - Wildcard Web Cache Deception

Exploiting path traversal confusion in CDN and web server URL parsing to cache sensitive API endpoints for auth token theft.


User info extraction abusing placeholder injection in Zendesk

User info extraction using placeholder injection via subject-to-description sanitization bypass in Zendesk.


Exploiting the Unexploitable Insights from the Kibana Bug Bounty

New primitives and gadgets that enable the achievement of RCE from Prototype Pollutions previously deemed unexploitable


Unveiling the Prototype Pollution Gadgets Finder

Automated exploitation of server-side prototype pollution using gadget identification.


DoubleClickjacking: A New Era of UI Redressing

DoubleClickjacking exploits the timing gap between mousedown and onclick events to bypass clickjacking protections and hijack user actions.


Universal Code Execution by Chaining Messages in Browser Extensions

Chaining messaging APIs in browser extensions to bypass Same Origin Policy and trigger native application vulnerabilities for universal code execution.


MSSQL Identified as Vulnerable to Emoji String Exploitation

Exploiting Unicode collation logic discrepancies in MSSQL to treat a goblin emoji as an empty string, enabling brute-force attacks.


Insecurity through Censorship: Vulnerabilities Caused by The Great Firewall

Exploiting China's DNS poisoning for subdomain takeover via Fastly or XSS via vulnerable cPanel installations.


CVE-2024-4367 - Arbitrary JavaScript execution in PDF.js

Arbitrary JavaScript execution through manipulated FontMatrix in PDF.js font rendering.


MongoDB NoSQL Injection with Aggregation Pipelines

Accessing other collections via NoSQL injection in MongoDB aggregation pipelines using $lookup or $unionWith operators.


World of SELECT-only PostgreSQL Injections

Offline manipulation of PostgreSQL filenodes for privilege escalation and RCE.


Gudifu: Guided Differential Fuzzing for HTTP Request Parsing Discrepancies

Gudifu uses guided differential fuzzing to discover HTTP request parsing discrepancies that can lead to new attack vectors such as HTTP request smuggling and cache poisoning.


Supply Chain Attacks: A New Era

Bypassing Lavamoat's policy file sandboxing through crafted multiline source map comments and evading SnowJS realm isolation via the deprecated document.execCommand function.


Joomla: PHP Bug Introduces Multiple XSS Vulnerabilities

Exploiting inconsistencies in PHP mbstring functions to bypass Joomla's input sanitization leading to XSS vulnerabilities.


-- DO NOT VOTE FOR THIS ENTRY --


Efficient Detection of Java Deserialization Gadget Chains via Bottom-up Gadget Search and Dataflow-aided Payload Construction

Using a bottom-up approach to more efficiently detect Java deserialization gadget chains and leveraging data flow dependencies for payload generation.


Remote Code Execution with Spring Properties

Leveraging Spring Boot's logging configuration properties to achieve remote code execution through Logback's JoranConfigurator.


Ruby-SAML / GitLab Authentication Bypass (CVE-2024-45409)

Exploiting XPath vulnerabilities to bypass SAML signature validation in Ruby-SAML.


Bypassing WAFs with the phantom $Version cookie

Bypassing WAFs using legacy support in cookie parsers through the $Version attribute and quoted-string encoding.


Why Code Security Matters - Even in Hardened Environments

Exploiting an arbitrary file write vulnerability in a Node.js application to achieve remote code execution by writing to pipe file descriptors exposed via procfs.


Introducing lightyear: a new way to dump PHP files

Automated high-speed exploitation with PHP filter chains


Chaining Three Bugs to Access All Your ServiceNow Data

Bypassing ServiceNow's template injection mitigations via sanitized style tag content for code execution.


JNDI Injection Remote Code Execution via Path Manipulation in MemoryUserDatabaseFactory

JNDI injection to manipulate the pathname in MemoryUserDatabaseFactory for remote code execution via crafted XML and directory creation using BeanFactory method invocation.


Breaking Down Multipart Parsers: File upload validation bypass

Techniques to bypass multipart/form-data parsers by exploiting discrepancies in parameter handling, boundary recognition, and content validation, including duplicated parameters, omission of necessary delimiters, and alternate encoding sequences.


Next.js and cache poisoning: a quest for the black hole

Exploiting internal headers in Next.js to control HTTP status codes and cache error pages.


POST to XSS: Leveraging Pseudo Protocols to Gain JavaScript Evaluation in SSO Flows

Exploiting the javascript: pseudo-protocol with auto-submitting forms in OAuth 2.0 Form Post Response Mode and SAML POST-Binding to achieve XSS.


Wormable XSS www.bing.com. XSS on www.bing.com context via Maps…

Wormable XSS on Bing using KML file and mixed-case JavaScript to bypass blacklist.


Anyone can Access Deleted and Private Repository Data on GitHub

Cross Fork Object Reference (CFOR) vulnerability enables unauthorized access to sensitive data in deleted and private GitHub repositories using commit hashes.


OAuth Non-Happy Path to ATO

Using multiple response_type values in Google OAuth to capture both id_token and authorization code in the URL fragment for account takeover.


Go Go XSS Gadgets: Chaining a DOM Clobbering Exploit in the Wild

Chaining DOM Clobbering with postMessage and CSP bypasses to escalate XSS.


Response Filter Denial of Service (RFDoS): shut down a website by triggering WAF rule

DoS technique exploiting overly inclusive WAF rules to block legitimate content delivery.


Exploring the DOMPurify library: Bypasses and Fixes

Mutation XSS by leveraging node flattening, stack of open elements, and namespace confusion to bypass DOMPurify.


Delinea Protocol Handler - Remote Code Execution via Update Process (CVE-2024-12908)

Exploiting sslauncher URL handler to achieve Remote Code Execution via MSI transform abuse.


Half Measures and Full Compromise: Exploiting Microsoft Exchange PowerShell Remoting

Chain of Arbitrary File Write, Arbitrary File Read, and Local DLL Loading for RCE on Exchange.


Unsecure time-based secret and Sandwich Attack

Practical exploitation of time-based secrets


SQL Injection Isn't Dead Smuggling Queries at the Protocol Level

Protocol-level SQL injection attacks via database wire protocol smuggling.


Using YouTube to steal your files Ʊ

Chaining multiple open redirect vulnerabilities in YouTube and Google Docs to perform a clickjacking attack granting editor access to Google Drive files.


Gotta cache 'em all: bending the rules of web cache exploitation

Novel techniques exploiting URL parsing discrepancies to achieve arbitrary web cache poisoning and deception.


How Zendesk intentionally left a backdoor in hundreds of Fortune 500 companies

Exploiting Zendesk's lack of email spoofing safeguards to hijack ticket threads and gain unauthorized access to Slack accounts using OAuth.


CORS vulnerabilities: Weaponizing permissive CORS configurations

Reflected arbitrary origins and alternate domain/subdomain trust in CORS configurations can permit unauthorized data exfiltration.


Abusing Intended Feature And Bypassing Facial Recognition.pptx

Bypassing facial recognition by exploiting AI's inability to distinguish between live human faces and deepfake images.


http-garden: Differential fuzzing REPL for HTTP implementations.

Platform for finding novel HTTP request smuggling vectors.


plORMbing your Django ORM

Exploiting relational filtering in Django ORM to leak sensitive data through many-to-many relationship and permission models.


Crashing servers with digits

Exploiting floating-point numbers with excessive digits to cause server DoS.


Source Code Disclosure in ASP.NET apps

Using .NET cookieless sessions to obtain source code.


From Arbitrary File Write to RCE in Restricted Rails apps

Abusing Bootsnap's cache manipulation to execute arbitrary code in restricted Rails environments.


WorstFit: Unveiling Hidden Transformers in Windows ANSI!

Exploiting Windows Best-Fit character conversion for attacks like Path Traversal, Argument Injection, and RCE across various applications.


Exploiting Client-Side Path Traversal to Perform Cross-Site Request Forgery

Exploiting Client-Side Path Traversal for CSRF by chaining GET and POST actions (CSPT2CSRF).


Class Pollution in Ruby: A Deep Dive into Exploiting Recursive Merges

Recursive merge technique in Ruby to achieve class pollution for privilege escalation and RCE.


Splitting the email atom: exploiting parsers to bypass access controls

Exploiting email parsing discrepancies using encoded words and unicode overflows for access control bypass and potential RCE in web applications.


The Ruby on Rails _json Juggling Attack

The _json juggling attack manipulates JSON parameters to bypass authorization in Ruby on Rails by exploiting the handling of _json keys.


Bench Press: Leaking Text Nodes with CSS

Leaking text node content by using CSS animations to measure character heights and exfiltrating data via image requests.


Ruby 3.4 Universal RCE Deserialization Gadget Chain

Developing a universal RCE deserialization gadget chain for Ruby 3.4 that leverages RubyGems autoloading, uses 'rake' and 'make' commands for execution, and suppresses exceptions using an UncaughtThrowError object.


Cross Window Forgery: A New Class of Web Attack

Uing browser navigation and keystrokes to execute actions on different websites via URL fragments.


plORMbing your Prisma ORM with Time-based Attacks

Using time-based attacks on Prisma ORM to leak sensitive data by crafting queries that exploit relational filtering to cause significant execution delays.


Exploiting Number Parsers in JavaScript

Exploiting discrepancies in JavaScript number parsers for DoS via parameter pollution.


Devfile file write vulnerability in GitLab

Exploiting YAML parser differentials and path traversal in tar file extraction to achieve arbitrary file write in GitLab.


Lost in Translation - WAF Bypasses By Abusing Data Manipulation Processes

Abusing edge-side includes and Unicode manipulation to bypass WAF.


Teaching the Old .NET Remoting New Exploitation Tricks

Bypassing .NET Remoting security by leveraging XAML parsing to perform deserialization attacks that create privileged objects like WebClient for remote code execution despite TypeFilterLevel.Low and CAS restrictions.


Bidding Like a Billionaire - Stealing NFTs With 4-Char CSTIs

Exploiting Vue.js CSTI through ENS name truncation to achieve XSS and manipulate NFT bids.


Exploring Javascript events & Bypassing WAFs via character normalization

Exploring Javascript events & Bypassing WAFs via character normalization


XSS using dirty Content Type in cloud era

XSS through manipulation of Content-Type headers.


Confusion Attacks: Exploiting Hidden Semantic Ambiguity in Apache HTTP Server!

Exploiting architectural flaws in Apache HTTP Server's module interactions to achieve insecure path access, predictable handler manipulation, and authentication bypass.


Another vision for SSRF

Using SSRF to capture session cookies by directing requests to a controlled server.


Authorization bypass due to cache misconfiguration

Authorization bypass due to short-term caching vulnerability.


Zoom Session Takeover - Cookie Tossing Payloads, OAuth Dirty Dancing, Browser Permissions Hijacking, and WAF abuse

Cookie tossing to escalate XSS vulnerabilities, OAuth Dirty Dancing for session takeover, and leveraging XSS for browser permission hijacking and DoS through WAF Frame-up techniques.


Hacking Millions of Modems (and Investigating Who Hacked My Modem)

Unauthorized access to ISP-managed TR-069 APIs via authorization bypass, leading to full device takeover.


Old new email attacks

Exploiting inconsistent parsing of email headers across services for email spoofing and SMTP injection.


Beyond the Limit: Expanding single-packet race condition with a first sequence sync for breaking the 65,535 byte limit

Expanding single-packet attack's capabilities by utilizing IP fragmentation and TCP sequence number reordering to exploit limit-overrun vulnerabilities.


CVE-2023-5480: Chrome new XSS Vector

Exploiting Service Worker registration in JIT-installed workers for XSS via manipulated payment manifests in Chrome.


How an obscure PHP footgun led to RCE in Craft CMS

Abusing the register_argc_argv PHP configuration to manipulate Craft CMS path handling and achieve Remote Code Execution via the FTP wrapper in Twig templates.


Encoding Differentials: Why Charset Matters

Exploiting ISO-2022-JP encoding to bypass sanitization and inject JavaScript when charset information is missing.


Parse Me, Baby, One More Time: Bypassing HTML Sanitizer via Parsing Differentials

Bypassing HTML sanitizers using parsing differentials to exploit mutation-based XSS vulnerabilities.


Iconv, set the charset to RCE: Exploiting the glibc to hack the PHP engine

Exploiting a buffer overflow in glibc's iconv function to achieve remote code execution in PHP applications, such as Roundcube, by manipulating session variables or leveraging deserialization vulnerabilities.


Dancer in the Dark: Synthesizing and Evaluating Polyglots for Blind Cross-Site Scripting

Synthesizing polyglot payloads for detecting blind XSS across multiple injection contexts without feedback channels.


HTTP/2 CONTINUATION Flood: Technical Details

HTTP/2 CONTINUATION Flood attack enables denial of service by exhausting server resources with an unending stream of headers lacking an END_HEADERS flag.


Note: some additional voting data is recorded on submission to prevent fraud.