京东创作者平台内外图 旋转验证码 分析

声明:
本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

前言

弄了wxhook抓包后休息了几天学习一下内外图这种旋转验证码、市面上大部分都试过了基本是训练不了京东这种的不知道什么原因,让ai帮我手搓了一个。训练4轮。成功率识别很高。

逆向过程

url = "getImgVerifyCodeSessionId"
data = {
    "functionId": "",
    "appid": "dr-platform",
    "client": "pc",
    "loginType": "3",
    "body": "{}"
}
response = session.post(url, headers=headers, data=data, cookies=cookies)
data = response.json()
# print(data)
result = data['result']
sessionId = result['sessionId']
url = "/api/fp"
cp = execjs.compile(open('run.js', 'r', encoding='utf-8').read())
data = cp.call('getFp', sessionId)
response = session.post(url, headers=headers, data=data)
print(response.text)
data = response.json()
st = data['st']
fp = data['fp']
url = "api/check"
data = cp.call('getBg', st, sessionId)
response = session.post(url, headers=headers, data=data)
data = response.json()
print(data)
img = data['img']
b1 = json.loads(img)['b1']
b2 = json.loads(img)['b2']
base_b1 = b1.replace('data:image/png;base64,', '').replace('data:image/jpg;base64,', '')
base_b2 = b2.replace('data:image/png;base64,', '').replace('data:image/jpg;base64,', '')
print(base_b2)
with open(f'./bg.png', 'wb') as fp:
    fp.write(base64.b64decode(base_b2))
with open(f'./fg.png', 'wb') as fp:
    fp.write(base64.b64decode(base_b1))
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
model = EnhancedRotationModel().to(device)
model.load_state_dict(torch.load("best_rotation_model.pth", map_location=device))
image_path = f'./fg.png'
ts = time.time()
test_image_path = image_path 
predicted_angle = predict_single_image(test_image_path, model, device=device)
result = cp.call('verify', st, sessionId, img, predicted_angle)
data = result['data']
trace = result['trace']
url = "/api/check"
response = session.post(url, headers=headers, data=data)
data = response.json()
print(data)
if data.get('vt') and data.get('code') == 0:
    vt = data.get('vt')
    st = data.get('st')

结果

总结

  1.出于安全考虑,本章未提供完整流程,调试环节省略较多,只提供大致思路,具体细节要你自己还原,相信你也能调试出来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wx a15018601872

wx a15018601872

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值