DEF CON 29 - James Kettle - HTTP2: The Sequel is Always Worse

preview_player
Показать описание
HTTP/2 is easily mistaken for a transport-layer protocol that can be swapped in with zero security implications for the website behind it. Two years ago, I presented HTTP Desync Attacks and kicked off a wave of request smuggling, but HTTP/2 escaped serious analysis. In this presentation, I'll take you beyond the frontiers of existing HTTP/2 research, to unearth horrifying implementation flaws and subtle RFC oversights.

I'll show you how these flaws enable HTTP/2-exclusive desync attacks, with case studies targeting high-profile websites powered by servers ranging from Amazon's Application Load Balancer to WAFs, CDNs, and bespoke stacks by big tech. I'll demonstrate critical impact by hijacking thick clients, poisoning caches, and stealing plaintext passwords to net multiple max-bounties.

After that, I'll unveil novel techniques and tooling to crack open a widespread but overlooked request smuggling variant affecting both HTTP/1 and HTTP/2 that is typically mistaken for a false positive.

Finally, I'll drop multiple exploit-primitives that resurrect a largely-forgotten class of vulnerability, and use HTTP/2 to expose fresh application-layer attack surface.

I'll leave you with an open-source scanner, a custom, open-source HTTP/2 stack, and free interactive labs so you can hone your new skills on live systems.

REFERENCES:
This research is built on my previous work on this topic:
This presentation by defparam has good explanations of response queue poisoning and self-desync attacks:
I had a partial research collision with Emil Lerner. His work provides an alternative perspective on certain techniques:
Рекомендации по теме
Комментарии
Автор

For presentations like this, is the reason why I love DEFCON.

SourceCodeDeleted
Автор

What a research, now lets get some Bounty out of it

vipinbihari
Автор

always a great presentation from james, respect! 💯

_CryptoCat
Автор

“After that motivating start” love it haha

AlexandreCassagne
Автор

This was some interesting stuff.

If the front-end doesn't read back more than 1 request from the back-end, and you keep sending data, won't it eventually clog up the buffers?
Then this might be a DoS vector too...

blinking_dodo
Автор

The sequel is always worse
T2: hold my beer

jonathansoko
Автор

wondering if upgrading nginx reverse proxy to http2 was just a terrible decision

CU.SpaceCowboy
Автор

Watched the whole thing and I hadn't even heard of http2 before

sillybuttons
Автор

Too bad you got a dislike from me, talk louder than a mouse next time plz.

dag