声明:
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
有相关问题请第一时间头像私信联系我删除博客!
分析
主要就是blackbox他是由5个循环每个循环去检测指纹环境,jsdom是过不了的我拿之前补227的代码直接跑了环境刚好全部齐了就不分析补环境部分。先初始化一下关键环境。
window._fmOpt={"display": "popup","partner": "kujia","appName": "kujia_web","fmb": true,"initialTime": 1724396614695,"token": "kujia-1724396615484-4b0b702373864","v": "","sdkVersion": "3.9.2","closeIcon": 0,"closeMask": 0,"bind": false,"blackBoxType": 1 }
先拿到token然后拿9个指纹值去生成blackbox。前两个就大致思路这样。
图片还原网上有源码我这就引出一下别人的的代码地址:同盾底图还原_同盾验证码逆向底图还原-CSDN博客
def fy(img, bgImageSplitSequence, img_new):ut = []for i in bgImageSplitSequence:ut.append(int(i, 16))image = Image.open(img)s = Image.new("RGBA", (320, 180))height_half = 90for inx in range(16):c = inx % 8 * 40u = height_half if inx > 7 else 0box = (c, u, c + 40, u + 90)l_ = image.crop(box=(c, u, c + 40, u + 90))box2 = (ut[inx] % 8 * 40, 90 if ut[inx] > 7 else 0)s.paste(l_, box=(ut[inx] % 8 * 40, 90 if ut[inx] > 7 else 0))s.save(img_new)
最后扣代码验证就行了。
function verify(data,x,trace,useTime,sessionId){ slideY=data['sliderY'] userAnswer=Math.round(x / 1) + window.QQ00QO('|10|') + new Date().getTime() mouseInfo=window.QQQO0O(0,0,trace, slideY) requestType=3 validateCodeObj=JSON.stringify(data) data={requestType: requestType,validateCodeObj: validateCodeObj,userAnswer: userAnswer,mouseInfo: mouseInfo,sensorInfo: undefined,usedTime: useTime } console.log(data) blackBox=window.Q000QO(token) return window.Q00Q0o("",data,undefined,blackBox) }