如何通过Burp Suite识别Android模拟器中请求的发起方?
以下是几个实用方法,帮你快速定位请求发起者:
通过端口映射关联应用包名
Burp的HTTP历史里,每个请求的"Client IP"列(右键列名可勾选显示)会显示模拟器的IP(一般是10.0.2.15),同时能看到请求的源端口。接着在电脑上执行adb shell netstat -tulpn,这个命令会列出模拟器内所有网络连接,包含进程名(即应用包名)和对应的端口。把Burp里的源端口和命令输出里的端口对应,就能直接找到发起请求的应用。用Burp过滤器精准筛选目标应用流量
先获取目标应用的包名:执行adb shell dumpsys window | grep mCurrentFocus,当前前台运行的目标应用包名会显示在结果里。打开Burp的Filter面板,在"Request attributes"里勾选"Client IP or port",输入刚才通过netstat查到的目标应用对应端口,就能只显示该应用的请求,剩下的就是其他应用或系统发起的。模拟器本地工具辅助验证
给模拟器装个NetGuard(无需root),它能实时展示每个应用的出站请求记录,包括域名、请求时间。Burp抓到陌生请求后,去NetGuard里找同时间的记录,直接就能看到发起应用的名称。如果模拟器已root,还可以用tcpdump抓包:adb shell tcpdump -i any -n port 80 or port 443 -w /sdcard/traffic.pcap,导出pcap文件用Wireshark打开,通过tcp.srcport过滤后,结合netstat结果关联应用。临时限制其他应用网络权限
进模拟器的「设置-应用-应用管理」,把非目标应用的蜂窝网络、WLAN权限全部禁用,只留目标应用和系统必要权限。这时Burp里抓到的请求要么是目标应用的,要么是系统发起的,对比就能快速区分。测试完记得把权限恢复。
内容的提问来源于stack exchange,提问作者Stefan Klaus

