实战分析43XX的HTTPS协议

387 阅读3分钟

1、抓包分析协议数据

第一次抓包: POST mapi.4399api.net/user/box/an… HTTP/1.1 Content-Length: 179 Content-Type: application/x-www-form-urlencoded Host: mapi.4399api.net Connection: Keep-Alive User-Agent: 4399GameCenter/4.7.0.26(android;oppo R11 Plus;5.1.1;720x1280;WIFI;1322.352;a4399) Accept-Encoding: gzip mauth: mareacode: 999999 mauthcode: SM-DEVICEID: 201905041309028d5a7f8497361da6970ae4648182 781501ebe495ed6c69f4 m-id: 00%3A81%3Af0%3A3a%3A81%3Ae1 a-id: 90af9d75bb5711af e-id: 865166020506633 mdeviceId: 865166020506633 pauth: s-id: 460006017714263 mudid: 1094ghmbkrL3FHgyrMy0ca6d4 dateline=1557294373&deviceIdentifier=865166020506633&info=1& model=oppo+R11+Plus&password=ytHJhV3wqmTLqeV%2BzhXB%2BA%3D%3D& sign=8d86292d44242171706dbb86878c5fef&username=1908920848 第二次抓包: POST mapi.4399api.net/user/box/an… HTTP/1.1 Content-Length: 179 Content-Type: application/x-www-form-urlencoded Host: mapi.4399api.net Connection: Keep-Alive User-Agent: 4399GameCenter/4.7.0.26(android;oppo R11 Plus;5.1.1;720x1280;WIFI;1322.352;a4399) Accept-Encoding: gzip mauth: mareacode: 999999 mauthcode: SM-DEVICEID: 201905041309028d5a7f8497361da6970ae464818278 1501ebe495ed6c69f4 m-id: 00%3A81%3Af0%3A3a%3A81%3Ae1 a-id: 90af9d75bb5711af e-id: 865166020506633 mdeviceId: 865166020506633 pauth: s-id: 460006017714263 mudid: 1094ghmbkrL3FHgyrMy0ca6d4 dateline=1557294488&deviceIdentifier=865166020506633&info=1& model=oppo+R11+Plus&password=ytHJhV3wqmTLqeV%2BzhXB%2BA%3D%3D& sign=17098977627437634f0e58674edcafc3&username=1908920848

2、直接搜索网址

除了”sign”这个字段,其他字段都找到了。”sign”字段就在当前类的附近,通过com.m4399.gamecenter.plugin.main.f.ay.ae类的基类(com.m4399.gamecenter.plugin.main.f.c)发现一个非常可疑的类(com.m4399.framework.providers.SignDataProvider),点击进去发现该类有一个方法(buildRequestParams)正是计算”sign”字段的值。

3、Android Studio+smalidea插件动态调试smali代码

调试模启动式 adb shell am start -D -n com.m4399.gamecenter/.controllers.splash.SplashActivity

端口转发 adb forward tcp:8700 jdwp:2561 出现这个错误说明8700端口被占用 error: cannot bind listener: cannot bind to 127.0.0.1:8700: 通 常每个套接字地址(协议/网络地址/端口)只允许使用一次。 (10048)

解决办法 netstat -nao | findstr "8700" 根据PID找到该进程,结束进程 打开任务管理器—>查看—>选项列(S)—>勾选 PID,确定—>进程按钮栏

小结(回顾)

1、抓包分析43XX的登录协议,两次抓包,对比哪些字段发生了变化,重点分析变化字段。

2、通过搜索网址定位到关键点,进行上下层回溯,找到相关字段拼接的位置。

3、动态调试43XX的登录逻辑,分析登录协议拼接流程。

感兴趣的小伙伴可以关注公众号“宸道移动安全团队”或者加群:876526335