BreakingWAF: Widespread WAF Bypass Impacts Nearly 40% of Fortune 100 companies (www.zafran.io)
from kid@sh.itjust.works to cybersecurity@sh.itjust.works on 04 Dec 00:16
https://sh.itjust.works/post/28985358

#cybersecurity

threaded - newest

Shadow@lemmy.ca on 04 Dec 00:59 collapse

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.

lemmyng@lemmy.ca on 04 Dec 02:10 next collapse

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.

fastfinge@rblind.com on 04 Dec 02:20 collapse

The tech blog is much better: www.zafran.io/…/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.

Shadow@lemmy.ca on 04 Dec 02:26 collapse

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.

fastfinge@rblind.com on 04 Dec 02:32 collapse

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.