正在写一个批量申诉百度贴吧账号的脚本,遇到这个加密参数,希望各位大神不吝赐教,谢谢!
提供三个被封的测试账号:我晓遮芜严陕芋、躺宪谋、阎录狂沥午伊猿,密码全部是:kuli401
登陆百度贴吧: https://tieba.baidu.com/ 依次打开:右上角更多 > 服务中心 > 系统处理记录 > 解除并神功护体 > 开始申请,填写解封理由,开始抓包,最后点击“提交申请”会出验证码,抓包数据如下(下面的代码是完成打码之后的 Post 数据,自动打码我已经搞定了。):
headers = {
'Host': 'tieba.baidu.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0',
'Accept': 'application/json, text/javascript, */*; q=0.01',
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate',
'Referer': 'http://tieba.baidu.com/pmc/membermanual?msgid=7080795',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'X-Requested-With': 'XMLHttpRequest',
'Content-Length': '2063',
'Connection': 'keep-alive',
}
cookies = {
'fixed_bar': '1',
'TIEBAUID': '62025b4b9be62651ed1db931',
'TIEBA_USERTYPE': '8d7ee1d441d6674c22ee3835',
'STOKEN': '4124e1aad3e37a55c9b057c157f341924ad6ced0751863546e97c920ae9bdaad',
'FP_LASTTIME': '1501588052684',
'BAIDUID': '76062A7E654C67F4EFB9BC548D354648:FG=1',
'FP_UID': 'd0d9ad33b8d7eb4e99b9bb12714aa740',
'BDUSS': 'VNUktPRmt4bXVobTctRkI2VWxkSVJwaHhidmxGU0ZsdWlFdFBjYWxpVk45NmRaSUFBQUFBJCQAAAAAAAAAAAEAAADSElSsztLP~tXazt~Rz8nC0~MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1qgFlNaoBZTG',
}
payload = {
'msgid': '7080795',
'pid': '0',
'tid': '0',
'tbs': 'null',
'content': '您好!我的这个账号为什么被封了?麻烦您给解封,谢谢了!',
'captcha_vcode_str': vcode_md5,
'captcha_input_str': vcode,
'bsk[data]': 'omzVouOACqkNljzDbdOB_af501e9 ……………………………………………………非常长的一段'
}
http = requests.post('http://tieba.baidu.com/pmc/commitmanual', headers=headers, cookies=cookies, data=payload)
目前的问题是不加入 bsk[data]参数,返回错误代码:210009 系统错误,所以必须搞定这个参数。
自己水平有限,只能在这个页面找到加密 JS 文件: https://fex.bdstatic.com/bsk/??dknsaZmLdyKfEeIVbKxn_dcc70f7.js,omzVouOACqkNljzDbdOB_af501e9.js
然后该怎么办?希望各位大神帮忙解决,或者提供一个思路,我还需要学习哪些知识才能解决这个问题?麻烦指点一二,谢谢!
1
ctsed 2017-08-05 15:25:31 +08:00 via Android
哟,批量解封,贴吧机器人刷广告的?
|
2
codeface 2017-08-05 15:47:16 +08:00
pyexecjs
|
3
ctsed 2017-08-05 16:16:23 +08:00
刷完广告还要把人工客服系统艹一遍,真是不要碧莲
|
4
FanWall 2017-08-05 16:25:24 +08:00
代码混淆,学一点 js 吧
|
5
md5 2017-08-05 16:35:53 +08:00 via Android
贴吧黄图哥?
|
6
bigtrace 2017-08-23 05:23:39 +08:00
楼上说的不对,这个不是 js 混淆,而是用 js 对参数进行加密。
我通过加 breakpoint 发现,只要加载了你说的那个 js 之后,在 console 里面 你可以查看_BSK object 的结构,里面的 function a(){} 用来算出 bsk。 从当前页面得到 tbs 参数(假设为 ea8e71a7b73bbc181503433430 )后,在 console 里面输入 t={} a={IN:{tbs: "ea8e71a7b73bbc181503433430"} , OUT: t} _BSK.a("omzVouOACqkNljzDbdOB", a) t.data 这里的 t.data 便是你想要的_BSK JVwFUmcLBmUQOX99TW4YA0hdZWVqFEIHC3xWCmdYd3JrEjIOQCAoFAZYAjYoWxoDLgpzFg5iGn18KQgNdgMGB2cGAn1bbEcAUldpdTYXVw0eORVTIBlkJGASak1VPCoeAVoyOURZRTo9WjZaGXgRZyVeOg0kRU1dIFVQMAUpKxAXRWl1LhdXDR58UhZ2AXVkZQJpQxEldV9PETg5SXh5S2UKL...8ckMRLHVfTxNvZ1UaGlx4GXMWDWMafX4KExYgHQZYd1cJf1B1RABGRStleB9VQ0w4AgpnVHJyaxA2Dl86IVFXRmx1Xg9nBjNBM1gffw1pbl5JNCxfQEQyBhMRNWxAHltcZQAzS0MDBW0fEHEcZhEhQDwKZCwmNhxHcmJXGgRafwh3fzYEdQtyXg0KLlQEbCAWWDBIbDVYGAgoMnUQTRkOY1QWdwxoYWAAcDxSLyUPHBxoZFMDGV9rBH1ETXICZzgfDRAgHQZcd1cJfS8ZOnxIS2cgaQdPF1gsC1UgSA== 不同时刻即使带入相同 tbs,解出来的_BSK 也会变,不过对于发帖并没有影响。只要带入其中一个值就可以,便可以成功发帖。 具体百度是如何进行 js 加密的,得从以下代码找出逻辑。 http://www.jianshu.com/p/61fe2c7ac0b6 代码放在我的一个帖子里面, 你也可以通过打断点,在 chrome 里的 source 中找到相应文件。 |