Terrarum::异世界丨居正博客

Recent content on Terrarum::异世界丨居正博客

马上订阅 Terrarum::异世界丨居正博客 RSS 更新: https://blog.skyju.cc/index.xml

逆向「青桔骑行」Android App,爬虫抓取全市单车和停车点数据

2022年9月6日 21:10
Featured image of post 逆向「青桔骑行」Android App,爬虫抓取全市单车和停车点数据

由于数据分析的需要,计划抓取「青桔骑行」共享单车手机 App 的单车和停车点位置信息。

抓包

青桔骑行 App 中有一个「附近单车和停车点」的功能,使用 Burp 抓包如下:

尝试删除多余的 HTTP Header 部分,最终判断以下数据是关键:

一是请求 query string 部分:

1
/gateway?api=hm.fa.homeBikeRelated&apiVersion=1.0.0&appKey=fab20e5de8824a3fb238dd5491e05097&appVersion=3.6.12&lang=zh-CN&mobileType=2112123AG&osType=2&osVersion=12&timestamp=1662464686642&token=805_0nhsooZGcPVV5GzWnV_LBDjogh-OFAUL1-HfQJEkzLltxEAMheFe_pgQHjkajcjUuXvwIR_JGPBiI0G9b7ANfCdTFG3RIozplBszKJfUjdkoHz2j7y17KIYxV0rG7BQvrxhvFBjvVGRqG-u-Z8tMNz6p1Tiok9vf_f_joEJSXMYX5VtPTx-S8U3hXZsUPkZi_DzZX0rXIwAA__8%3D&ttid=bh_app&userId=299067488939991&userRole=1&sign=b20f0f5f7aecedac411649d8481d5657

其中,appKeytokenuserId等数据推测是用于鉴权,每个请求均无太大变化。而sign参数可能是经过某种哈希算法产生的字符串,每个请求均不一样,且同一个 sign 过一两分钟后就会过期无法继续使用。另外timestamp为当前毫秒级时间戳,应该与后端校验和 sign 关联。

二是请求的 body 部分:

1
{"bizType":"1","cityId"...

剩余内容已隐藏

查看完整文章以阅读更多