声明:
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
有相关问题请第一时间头像私信联系我删除博客!
分析
主要就是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 = 90
for inx in range(16):
c = inx % 8 * 40
u = height_half if inx > 7 else 0
box = (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)
}
结果




















