前言:一直玩贴吧,有一天突发奇想,自己手动发帖子多麻烦啊,有没有可能通过技术去实现呢,说干就干,虽然咱是搞技术的呢。
第一步,去豌豆荚网站下载某吧app,手机和电脑连接一起,使用adb shell install apk安装好软件。
第二步,我们使用Charles抓包,结果如下:
很明显这就是我们要找的发帖接口,干他。
第三步,有逆向经验的一眼就知道这有一个签名校验,没有经验也没关系,你是用Python request 或者postman构建请求,一个个参数去试试,你也能确定要破解的参数就是 sign。请求代码如下:
import requests
cookies = {
'ka': 'open',
}
headers = {
'cuid': 'baidutiebaapp44905d58-58c2-49c9-add1-22714b4b9939',
'client_logid': '1649748898345',
'client_user_token': '1455498416',
'Host': 'c.tieba.baidu.com',
'cuid_galaxy2': '84861916E8C6BC80BC42F42B9C96827D|VOFELOESK',
'User-Agent': 'bdtb for Android 11.0.0.0',
}
# data = {
# 'BDUSS': '9-a2laNkNoMEpxdVRHNGo0cExISjlyZ3JGZnpBNU91QS1aajFneGxmN3F1WHhpRVFBQUFBJCQAAAAAAAAAAAEAAACwJMFWuNy43LXEzt672gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOosVWLqLFVicG',
# '_client_id': 'wappc_1649749074157_912',
# '_client_type': '2',
# '_client_version': '11.0.0.0',
# '_phone_imei': '000000000000000',
# 'anonymous': '1',
# 'authsid': 'null',
# 'call_from': '2',
# 'can_no_forum': '0',
# 'content': '\u60F3\u627E\u4E00\u8D77\u5B66\u4E60\u4EA4\u6D41\u7684\u670B\u53CB',
# 'cuid': 'baidutiebaapp44905d58-58c2-49c9-add1-22714b4b9939',
# 'cuid_galaxy2': '84861916E8C6BC80BC42F42B9C96827D|VOFELOESK',
# 'cuid_gid': '',
# 'entrance_type': '1',
# 'fid': '4152157',
# 'from': '1014517l',
# 'is_feedback': '0',
# 'is_hide': '1',
# 'is_link_thread': '0',
# 'is_ntitle': '1',
# 'is_repost_to_dynamic': '0',
# 'kw': 'python3',
# 'model': 'Pixel XL',
# 'name_show': '\u6760\u6760\u7684\u65E0\u6094',
# 'net_type': '1',
# 'new_vcode': '1',
# 'reply_uid': 'null',
# 'sign': 'FCBF3523E756CAA5E4FF3D9B1F00F0DB',
# 'stErrorNums': '1',
# 'stMethod': '1',
# 'stMode': '1',
# 'stSize': '898',
# 'stTime': '281',
# 'stTimesNum': '1',
# 'st_type': 'notitle',
# 'stoken': '7730c997d4369bbd259bcc4fa04560a178bdaeaafe789455678a1ff333f77c14',
# 'takephoto_num': '0',
# 'tbs': '3d67514b096754011649749896',
# 'timestamp': '1649750038491',
# 'title': '',
# 'vcode_tag': '12',
# 'z_id': 'loqzvJ8IIqkJMyA2w_41IBZeDhmk7VPo5RbNR9AkX_oBZ8zVOXdjocZ_UqkSVx70DlbXQ174fmXToyNYpajtiJg'
# }
response = requests.post('http://c.tieba.baidu.com/c/c/thread/add', headers=headers, cookies=cookies, data=data)
print(response.text)
print('发帖后的状态:{}'.format(response.json()['msg']))
第四步,下面我们就是hook,找到加密的java 方法,不过看sign的值我们就知道很明显就是MD5加密啊,结果如下:
既然算法也知道了,我们直接拼接就行了就可以把算法给完全还原出来了,结果如下:
bdtb