以這個登入介面為例。
登入url為
請求體為json格式的字串
發現密碼是加密後的,所以要找到密碼是怎麼加密的,一眼看上去,能大概得出是rsa加密,然後轉base64編碼(其實是抓包裡面看出來的)既然知道了是rsa加密,那就用python寫個demo來測試一下
1view code#獲取rsa公鑰
2def
getrsapublickey():
3 url = '
'4try:
5 r = requests.post(url, timeout=5)
6 res_data =r.json()
7except
exception as e:
8 res_data ={}
9 rsapublickey = res_data['
result
']['
publickey']
10return
rsapublickey
1112
13def
rsa_password(password, public_key):
14 key = '''
-----begin public key-----
15{}
16-----end public key-----
17'''
18 rsakey =rsa.importkey(key.format(public_key))
19 cipher =cipher_pkcsl_v1_5.new(rsakey)
20 cipher_text =base64.b64encode(cipher.encrypt(password.encode()))
21 res =cipher_text.decode()
22return
res23
2425
#使用者登入
26def
login(public_key, username, password):27#
使用者登入
28 url = '
'29 encrypt_password =rsa_password(password, public_key)
30 login_data =
34 res_data =post_json_headers_verify(url, login_data)
35if res_data['
status
'] != 1:
36raise exception('
登入出錯')
37else
:38 jwt_token = res_data['
result
']['
token']
39 servicesitecode = res_data['
result
']['
servicesites
'][0]['
servicesitecode']
40return jwt_token, servicesitecode
測試結果,ok,登入介面完成。
接下來就是業務需要了,公司給的任務是獲取出庫介面,那麼就用安卓模擬器模擬一下出庫操作,抓包抓介面。
出庫介面分析得出,使用者認證是採用的jwt認證,請求體是billcode,裡面填上單號即可。那麼就可以編寫python的demo來測試了
#view code出庫def
optionalpickup(billcode):
url = '
'reqdata =
res_dict =post_json_headers_verify(url, reqdata, headers)
(res_dict)
if res_dict['
status
'] == 1:
print('
出庫成功')
else
:
raise exception('
出庫失敗
')
測試結果發現出庫並沒有成功,然後經過一番排查,發現在使用者登入的時候不只是使用者登入這乙個介面,還有乙個登入站點的介面
那麼接下來就是模擬站點登入介面
#view code登入站點
defloginservicesite(servicesitecode):
url = '
'login_data =
res_dict =post_json_headers_verify(url, login_data, headers)
if res_dict['
status
'] == 1:
print('
登入站點成功')
else
:
raise exception('
登入站點失敗
')
然後測試出庫介面,發現ok,出庫成功。
極兔接任百世快遞股東 將全資控股百世快遞
techweb 程式設計客棧12月10日,企查查app顯示,近日,百世www.cppcns.com物流關聯公司杭州百世網路技術 發生工商變更,原股東何莉莉 陳微等退出股東行列,新增股東極兔速遞 www.cppcns.com,持股100 企查查信www.cppcns.com息顯示,該公司成立於2007...
安卓逆向 二
基礎位元組碼 名稱字尾 位元組碼字尾 目的暫存器 源暫存器 move wide from16 vaa,vbbb dalvik指令集中大多數指令用到了暫存器作為目的運算元或源運算元,其中 a b c d e f g h 代表乙個4位的數值,aa bb hh 代表乙個8位的數值,aaaa bbbb hh...
社招2020百世技術面試經歷
2020 一面 兩個面試官 全程無笑 1 先自我介紹,然後介紹一下自己做過的乙個最有價值的專案。我就將之前做過的乙個排水公司監控大屏專案拿出來介紹,該專案裡面採用springcloud rabbitmq redis mysql websocket和quartz等。問了websocket的一些情況,長...