某站主页指纹校验加密参数逆向
最近几天某字母站主页视频爬取时需要加上dm_cover_img_str参数,如果没有此参数带cookie和userAgent访问则报风控失败错误:{"code":-352,"message":"风控校验失败","ttl":1,"data":{"v_voucher":"voucher_72b9d213-5adb-42f2-b1f4-eeexxxxxxxxxx"}}
原先这个网站还是挺好爬的,通过搜索url中w_rid参数可以较快定位到dm_cover_img_str加密就在https://s1.hdslb.com/bfs/static/jinkela/space/9.space.311b7ba068d7fce9374add553079f1d9c94dcfb3.js格式化后50107行附近:
s.webglVendorAndRenderer = B(s.webglVendorAndRenderer)
注意它会将原参数改写掉,原参数是浏览器指纹相关内容,我电脑上为:ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0xx)), SwiftShader driver)Google Inc. (Google)
B函数扣出为:
B = function(t) {
var e = (new TextEncoder).encode(t).buffer
, n = new Uint8Array(e)
, r = btoa(String.fromCharCode.apply(null, n));
return r.substring(0, r.length - 2)
}
其中btoa为windows函数,nodejs中没有,后面我会补上,所以简单将2个函数合并即可模拟得到dm_cover_img_str参数:
B = function(t) {
var e = (new TextEncoder).encode(t).buffer
, n = new Uint8Array(e)
, r = btoa(String.fromCharCode.apply(null, n));
return r.substring(0, r.length - 2);
};
var btoa=function (str) {
var s = new Buffer.from(str).toString('base64');
return s;
};
var webglVendor="ANGLE (Google, Vulkan 1.3.0 (SwiftShader Device (Subzero) (0x0000C0XX)), SwiftShader driver)Google Inc. (Google)";
var dm_cover_img_str=B(webglVendor);
console.log(dm_cover_img_str);
第一次发帖,也比较简单,估计伸手党比较多,直接给答案了。 外酥内嫩 发表于 2023-11-28 09:33
只获取了这一个参数吗,挺有意思的
其它参数w_rid,wts和以前一样,网上也有相关算法了,别的参数可以不要,网站的原URL是:https://api.xxxxxxx.com/x/space/wbi/arc/search?mid=275908810&pn=1&ps=25&index=1&order=pubdate&order_avoided=true&platform=web&web_location=1550101&dm_img_list=[]&dm_img_str=V2ViR0wgMS4wIChPcGVuR0wgRVMgMi4wIENocm9taXVtKQ&dm_cover_img_str=QU5HTEUgKEdvb2dsZSwgVnVsa2FuIDEuMy4wIChTd2lmdFNoYWRlciBEZXZpY2UgKFN1Ynplcm8pICgweDAwMDBDMERFKSksIFN3aWZ0U2hhZGVyIGRyaXZlcilHb29nbGUgSW5jLiAoR29vZ2xlKQ&w_rid=3cd99ff3a09e3c6d2d737c087be9631d&wts=1701136562,其实也就一个dm_img_str,和这个算法是同一个,就在上面,可以不要,加上的话自己再跟下参数就可以了。
详细的说明可以参考:
【2023-11-26】分析 A+1 站的获取 UP 视频投稿接口变动
https://www.52pojie.cn/thread-1862056-1-1.html
(出处: 吾爱破解论坛)
论坛的伸手党确实是很多的,这个没办法,但是我觉得可以简单记录一下过程,
不仅作为教程,也做一个记录,如果帮到他人的话就最好了,不然当一个简单的逆向记录也是很好的 感谢分享,哈哈哈哈伸手党来了 看不懂。。。 感觉有些网站的指纹还结合了鼠标运动,鼠标没动就会校验失败。 纯js不好整 伸手伸手 只获取了这一个参数吗,挺有意思的 本帖最后由 linix 于 2023-11-28 10:57 编辑
其它2个参数加密算法与以前一样,照以前网上算法即可。
加上cookie,别的就没什么了,可以成功获取数据:
也不知道能不能发这种图片,如有敏感我就删掉 linix 发表于 2023-11-28 10:24
其它参数w_rid,wts和以前一样,网上也有相关算法了,别的参数可以不要,网站的原URL是:https://api.xxxx ...
这样子啊,那也就是说其他参数也有,这个参数强制校验了 感觉这个东西没太必要,匿名模式下ua,dm_img_str,dm_cover_img_str这三个东西是固定的,用的WebGL和GPU,但是那个值提取又有点玄学,所以结论就是直接用它给的base64就好
页:
[1]
2