Intercepting mobile traffic with Burp Suite: A researcher's guide

23 July 2026

By Yasser Ali, Meta Bug Bounty

Intercepting mobile traffic with Burp Suite

Introduction

Mobile security research has historically been frustrating. Between SSL pinning, certificate headaches and opaque network stacks, many researchers have avoided mobile testing altogether. In our latest researcher survey, streamlining mobile traffic interception was the no. 1 requested improvement.

With the new Whitehat settings feature (SSL pinning bypass toggle), setting up a mobile security research environment is now dramatically simpler than it used to be. This post walks you through setting up Burp Suite – a popular web security testing tool used to intercept and analyse HTTP/HTTPS traffic – to intercept traffic from Meta's mobile apps, Facebook, Instagram, Messenger and Threads.

Whether you're a seasoned mobile researcher or someone who has avoided mobile testing because the setup felt daunting, this guide is for you.

What you'll need (prerequisites)

  • Burp Suite (Community or Pro edition)
  • A test device/emulator (Android or iOS) on the same Wi-Fi network as your machine
  • A Meta app installed (Facebook, Instagram, Messenger or Threads)
  • A Bug Bounty-enrolled account (see enrolment instructions below)
  • About 15 minutes of setup time

Understanding the Basics

What is traffic interception?

Mobile security and privacy researchers intercept network traffic from apps and devices to understand what data is being sent, to whom, and under what conditions, especially when the app's behavior isn't fully observable from the UI or logs. This foundational step in mobile security research has historically been cumbersome.

What is a proxy and why do we need one?

A proxy sits between your mobile device and the Internet, allowing you to see, modify and replay every HTTP/HTTPS request that the app makes. For security testing, this visibility is essential.

Why SSL pinning blocked researchers

SSL pinning is a security measure that prevents man-in-the-middle interception by hardcoding which certificates an app trusts. While great for user security, it made legitimate research extremely difficult. Researchers previously had to use Frida scripts or rely on unstable workarounds.

What changed: Whitehat Settings

Meta's Whitehat settings now let you toggle SSL pinning bypass directly inside the app. Just flip a switch and start intercepting.

Setting up Burp Suite as your proxy

Configure Burp to listen on all interfaces
  • Open Burp Suite
  • Go to Proxy > Options (or Proxy > Proxy Settings in newer versions)
  • Add a new listener on your machine's local IP address (not just 127.0.0.1), using port 8080
  • Check "All interfaces" or specify your local IP

Your phone needs to reach Burp over the network, so binding to localhost alone will not work.

Find your machine's IP address

macOS:

ifconfig | grep "inet " | grep -v 127.0.0.1

Windows:

ipconfig

Linux:

ip addr show | grep "inet "

Make sure that both your computer and phone are connected to the same Wi-Fi network.

Configuring Your Mobile Device

You can follow the instructions in https://portswigger.net/burp/documentation/desktop/mobile

Android setup
  • Open Settings > Wi-Fi
  • Long-press (or tap the gear icon) on your connected network
  • Select Advanced or Proxy settings
  • Set proxy to Manual
  • Enter your machine's IP as the hostname and your chosen port (must match Burp's listener port)
  • Save

Alternatively, you can set the proxy via ADB:

adb shell settings put global http_proxy <your-machine-ip>:<your-machine-port>

Installing Burp's CA certificate:

  • Open your browser on the phone and navigate to http://burp/
  • Download the certificate file
  • Go to Settings > Security > Install a certificate > CA certificate
  • Select the downloaded file

Note on Android 7+: User-installed CA certificates are not trusted by apps by default on Android 7 and above. This is exactly where Whitehat settings comes in, as it bypasses this restriction for Meta apps.

iOS setup
  • Open Settings > Wi-Fi
  • Tap the (i) icon next to your connected network
  • Scroll down to Configure proxy > Manual
  • Enter your machine's IP as the server and your chosen port (must match Burp's listener port)
  • Save

Installing Burp's CA certificate:

  • Open Safari and navigate to http://burp/
  • A profile download prompt will appear. Tap Allow
  • Go to Settings > General > VPN and device management
  • Find and install the downloaded profile
  • Go to Settings > General > About > Certificate Trust Settings
  • Toggle full trust for the Burp certificate

Enabling Whitehat Settings

This is the feature that makes everything click. Instead of fighting SSL pinning, you simply ask the app to let you through.

How to enable it:
  • Log in to your researcher account on bugbounty.meta.com
  • From the Settings section, enable the "Mobile settings" options
  • Open the Meta app (Facebook, Instagram, Messenger or Threads)
  • Navigate to Settings > Bug Bounty or Settings > Whitehat settings
  • Toggle SSL Pinning Bypass to ON
  • You may need to force close the app for changes to take effect
Enabling mobile settings in the Bug Bounty researcher account
Whitehat Settings screen in the Meta app
SSL pinning bypass toggle in the Meta app
Whitehat Settings step
Whitehat Settings step
Whitehat Settings step
Whitehat Settings step
Requirements:
  • Your account must be enrolled in Meta's Bug Bounty programme
  • The feature is gated, so both the app-level gate and the account-level enrolment must be active
Supported apps:
  • Android: Facebook, Messenger, Instagram, Threads. Status: Live now
  • iOS: Facebook, Instagram. Status: Live now

Verifying your setup

Time to confirm everything works:

  • Log in to the account on the app
  • Perform some actions (scroll your feed, open a profile, send a message)
  • Switch to Burp Suite on your computer
  • Open the HTTP history tab under Proxy
  • You should see HTTPS requests flowing from the app
Troubleshooting checklist
If nothing appears in Burp:
  • Is the proxy configured correctly on your device? (Check IP and port)
  • Is Burp listening on the correct interface? (Not just 127.0.0.1)
  • Is Whitehat Settings toggled ON in the app and the researcher account settings?
  • Are both devices on the same Wi-Fi network?
  • Is a firewall blocking the listening port on your machine?
  • Did you force-close the app after enabling the bypass?

Part 2: Effective mobile research techniques

  • Scope your traffic: Use Burp's scope feature to filter only Meta domains (*.facebook.com, *.instagram.com, *.cdninstagram.com etc.)
  • Save your projects: Don't lose captured traffic between sessions. Save your Burp project regularly.
  • Use Repeater: Found an interesting request? Send it to Repeater to modify and replay it.
  • Automate: Once interception works, you can plug in fuzzing scripts, AI-assisted testing tools or custom Burp extensions.
  • Interesting attack surface: Pay attention to deep links, Bloks endpoints and GraphQL calls. These often contain the most interesting functionality.
Gzip encoding auto-decompression

If you notice that the HTTP request/response body looks like garbled binary data (like the screenshot below), that is gzip compression.

Gzip-compressed request body appearing as garbled binary data in Burp

Burp offers auto-decompression so you don't have to do it manually each time. Navigate to your proxy settings and tick the "Unpack compressed requests/responses".

Enabling unpack compressed requests/responses in Burp proxy settings
GraphQL requests

When dealing with HTTP requests that you want to modify, they usually appear in application/x-www-form-urlencoded format.

A GraphQL request shown in application/x-www-form-urlencoded format

It is much easier to just convert the encoding by right-clicking in the repeater tab, then change the body encoding to multipart which makes it easier to view and modify.

Changing the body encoding to multipart in Burp Repeater

Alternatively, use the Inspector by selecting the full encoded text instead of trying to modify it manually.

Using the Burp Inspector to edit encoded request text

The most important parts of any GraphQL request are the doc_id (or client_doc_id) and the variables. Without them, the server cannot determine what action the user is trying to perform. Every operation has a unique doc_id, so changing it will call a completely different action. The variables contain the parameters for that action, like user IDs, content references and input values.

The doc_id and variables in a GraphQL request

What's in scope for mobile bounties

With the improved mobile testing setup, here are vulnerability classes that now qualify for bounties:
  • Deep link redirect abuse (external and internal redirects)
  • Mobile CSRF (cross-site request forgery via mobile-specific flows)
  • Bloks component abuse (manipulation of client-side rendering logic)
  • Standard web vulnerabilities accessible through mobile endpoints
  • Authentication/session issues unique to mobile implementations

Refer to the most up-to-date payout guidelines on bugbounty.meta.com for the latest qualifying vulnerabilities and reward ranges.

Conclusion

With Whitehat settings and a basic Burp Suite setup, mobile security research on Meta apps is now genuinely accessible. What used to take hours of reverse engineering and fragile tooling now takes about 15 minutes of straightforward configuration. If you have been avoiding mobile research because the barrier to entry felt too high, now is the time to give it a shot. And if you are already comfortable with mobile testing, the new pinning bypass should make your workflow significantly smoother.

Found something interesting? Submit it through our Bug Bounty programme . We are excited to see what you find.

Happy hunting!