mobile-ssl-pinning-bypass
Mobile SSL pinning bypass playbook. Use when intercepting HTTPS traffic from mobile applications that implement certificate pinning, public key pinning, or SPKI hash pinning on Android and iOS, including React Native, Flutter, and Xamarin frameworks.
By yaklang · 2,993 installs
npx skills add yaklang/hack-skills --skill mobile-ssl-pinning-bypass
Source repository · Upstream listing
SKILL: Mobile SSL Pinning Bypass — Expert Attack Playbook
AI LOAD INSTRUCTION : Expert SSL pinning bypass techniques for mobile platforms. Covers Android and iOS bypass methods (Frida, Objection, Xposed, SSL Kill Switch), framework specific bypasses (Flutter, React Native, Xamarin), and troubleshooting non standard pinning implementations. Base models miss framework specific hook points and multi layer pinning configurations.
0. RELATED ROUTING
Before going deep, consider loading:
[android pentesting tricks](../android pentesting tricks/SKILL.md) for broader Android testing beyond SSL bypass
[ios pentesting tricks](../ios pentesting tricks/SKILL.md) for broader iOS testing beyond SSL bypass
[api sec](../api sec/SKILL.md) once traffic is intercepted for API level testing
1. SSL PINNING TYPES
Pinning Type What Is Pinned Resilience Common In
Certificate pinning Exact leaf certificate (DER/PEM) Low (breaks on cert rotation) Legacy apps
Public key pinning Subject Public Key Info Medium (survives cert renewal if key unchanged) Modern apps
SPKI hash pinning SHA 256 of SPKI Medium (same as public key) OkHttp, AFNetworking
CA pinning Intermediate or root CA cert High (any cert from that CA works) Enterprise apps
Multi pin (backup pins) Primary + backup pins High (fallback pins) HPKP aware apps
How Pinning Works
2. ANDROID BYPASS METHODS
2.1 Frida Universal SSL Bypass
2.2 Objection (One Command)
2.3 Network Security Config (Debug Override)
Workflow: decompile APK → add/modify config → repackage → re sign → install.
2.4 Xposed / LSPosed Modules
Module Method Scope Root Required
JustTrustMe Hooks TrustManager + OkHttp Per app Yes (Xposed)
SSLUnpinning Hooks certificate validation Per app Yes (LSPosed)
TrustMeAlready Global TrustManager bypass System wide Yes (LSPosed)
2.5 Magisk + System CA Installation
2.6 Manual Decompile → Patch → Repackage
3. iOS BYPASS METHODS
3.1 Frida (SecTrust Hooks)
3.2 Objection (One Command)
3.3 SSL Kill Switch 2 (Jailbreak Tweak)
3.4 Library Specific Hooks
Library iOS Hook Point Frida Approach
AFNetworking AFSecurityPolicy.evaluateServerTrust:forDomain: Return YES
Alamofire ServerTrustManager.evaluate( :forHost:) Skip evaluation
TrustKit TSKPinningValidator verifyPublicKeyPin: Return success
NSURLSession URLSession:didReceiveChallenge:completionHandler: Call completionHandler with .useCredential
3.5 Manual Binary Patch
4. FRAMEWORK SPECIFIC BYPASSES
4.1 Flutter
Flutter uses Dart's dart:io library with BoringSSL underneath. Standard Frida hooks on Java/ObjC layers don't work.
reflutter tool (recommended for Flutter apps):
4.2 React Native
React Native uses platform networking: OkHttp on Android, NSURLSession on iOS.
Platform Networking Stack Bypass Method
Android OkHttp3 Standard OkHttp CertificatePinner hook
iOS NSURLSession Standard SecTrust hooks
Android (Hermes) Same OkHttp Same hooks, but Hermes JIT may need additional handling
4.3 Xamarin
5. CERTIFICATE TRANSPARENCY & HPKP
Technology Status Impact on Testing
Certificate Transparency (CT) Active, enforced by browsers Mobile apps rarely enforce CT; not a bypass obstacle
HPKP (HTTP Public Key Pinning) Deprecated (2018) Legacy apps may still check; remove header from proxy response
Expect CT header Deprecated (2024) Minimal impact on mobile testing
CT in mobile apps Rare Only Google apps enforce via custom CT checks
6. TROUBLESHOOTING
6.1 Common Failures
Symptom Cause Fix
Bypass script loaded but traffic still fails Multiple pinning layers Hook ALL layers: TrustManager + OkHttp + custom checks
"Client certificate required" Mutual TLS (mTLS) Extract client cert from app bundle/keychain, import into proxy
Connection works but no HTTP traffic Non HTTP protocol (MQTT, gRPC, WebSocket) Use Wireshark or protocol specific proxy
App crashes after bypass Anti tampering detects hooks Bypass integrity checks first, then SSL
Proxy CA not trusted Android 7+ user CA restrictions Install CA as system cert (Magisk module)
Flutter app ignores hooks BoringSSL not hooked at native layer Use reflutter or native BoringSSL hooks
Certificate chain validation timeout OCSP stapling mismatch Disable OCSP checks or mock OCSP responder
6.2 Diagnostic Steps
7. SSL PINNING BYPASS DECISION TREE
8. PROXY SETUP QUICK REFERENCE
Proxy Tool Best For SSL Bypass Integration
Burp Suite Full HTTP analysis Import CA to device
mitmproxy Scripted interception mitmproxy set confdir=~/.mitmproxy
Charles Proxy macOS native, easy setup Built in CA installation
Proxyman macOS/iOS native Direct iOS device support
HTTP Toolkit Quick Android setup Automated CA + Frida bypass