Finally, with
@hw16, we managed to bypass the
@Cloudflare mTLS protection after around 5 days of work. I'd like to share a few golden tips for bug bounty hunters who might face something similar in the future. But first, here's a quick summary:
The target was a banking app with multiple security layers:
• Heavy Frida detection mechanisms
• Strong root detection
• Google SafetyNet/Play Integrity checks
• Runtime hooking detection
• APK tampering protection (crashed immediately if repackaged/modified)
At first,
@fridadotre was detected and crashed the app on my device but strangely worked on another device even though both had the same Android version, root method, Frida server version, and architecture. After investigation, we discovered the app had anti-hooking detection that triggered when using aggressive Frida hooks on sensitive KeyStore operations.
The Solution:
We wrote a minimal Frida script that:
1. Passively monitored certificate operations without modifying behavior
2. Intercepted KeyManagerFactory.init() - the exact moment when mTLS certificates are loaded
3. Extracted the X.509 client certificate and RSA private key (4096-bit)
4. Encoded them using Android's Base64 encoder
5. Formatted as PEM files ready for use
Found the mTLS certificate with a unique UUID-based alias in the Android KeyStore. The certificate was being dynamically loaded during the SSL handshake initialization
Extracted Files:
• client_cert.pem → Client certificate (valid for 2 years)
• client_key.pem → RSA private key (PKCS#8 format)
We then created a PKCS#12 bundle using OpenSSL to combine the certificate and key into a single file, which could be imported into various tools and browsers for testing or
@Burp_Suite
Key Takeaway:
When facing anti-tampering mechanisms, be surgical hook only what you need, when you need it. Aggressive hooking triggers detection; passive monitoring flies under the radar.
This was an awesome challenge and my first time encountering such strong ssl Pinning defenses
Attached some image from the mobile api and frida output the certificates
#bugbountytips #frida #Magisk #mtls
Did
@Cloudflare just defeat
@Burp_Suite and
@CaidoIO?
Cloudflare protection is becoming very common. This is the third app I’ve seen using it. Changing the user agent doesn’t help, and Burp TLS-fingerprint bypass plugin didn’t work. The app blocks any request when it detects traffic interception
My target mobile app might be using a dynamic certificate based on my friend analysis. Back in Nov 2024, I tested a web app with Burp, but it blocked all traffic. Switching to Caido worked, maybe its signatures weren’t detected at the time.
Can anyone share insights?
thanks
#BugBounty