I feel like this doesn’t explain a lot. What makes it so trivial to find the origin? They just brush it aside as easy.
Also this really just comes back to: secure your origins folks, especially if you’re relying on edge security features. Nobody should be relying on a waf though.
The tech blog is much better: https://www.zafran.io/resources/breaking-waf-technical-analysis
It boils down to scanning all IPV4 space, and grabbing the SSL certificate returned by any webservers on port 443. If the server is incorrectly configured the fields in the SSL cert will tell you what domains it serves. And using Certificate Transparency logs to figure out what domains you want to target. I wouldn’t really call this a flaw that breaks anything. It’s just a byproduct of how SSL, IPV4, and WAFs work.
Ahh that makes more sense, especially if people aren’t using the cf origin certs. I’d expect SNI to prevent this on newer systems though, unless it’s the default cert on the ip.
From the article:
The TLS-SNI header is used by CDN servers to route requests based on the Server Name in the header. However, a typical front end server, or even a load balancer (LB), belongs to a single app or organization, and does not typically need to handle the SNI header. The easy and reasonable way to configure TLS certificates on such a server, is to either: Serve all requests with a single TLS certificate that has SANs (Subject Alternative Names) for all the domains that are used Have multiple certificates, chosen according to SNI, with one of them as the default. In both of these common cases, sending a HTTPS request directly to the IP of a front end server, without any SNI, will present us with a default server certificate. This certificate will reveal what domains are being served by this server.
So apparently the real issue is that people aren’t using SNI correctly.
This means that when a CDN service is used as a WAF, the web application it protects is open to Internet traffic, and is expected to validate that it responds only to web traffic that originates from and by the CDN service.
When this validation is lacking, backend applications can easily be directly accessed over the Internet.
So, misconfigured backends that don’t limit access to CDN sources can be fingerprinted through web scans. Seems like a big honking nothing-burger.