声明(微信a15018601872,QQ.2766958292)
本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!
本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!
前言
历经5个月把web逆向给学完了,最后决定进行一个最后解决完成这一段学习过程。选择极验是因为他适合新手具有代表性,同时因为点选前期准备工作需要浪费太多时间设计了太多知识点完成一个点选项目我从0开始学用了小20天今天就来分享一下滑块,和点选解决思路。
1.1.python代码思路
首先是load请求把参数给返回了需要的有lot_number、slice、bg、payload、token、protocal、pow_detail。我们需要的pow_msg由version|bits|hashfunc|datetime|captcha_id|lot_number|
|16位随机数。轨迹随意不检验的、距离用ddddocr识别、devide_id随意可以为空“”。最后就是w了。
1.2.js代码思路
把gcaptcha4.js文件复制到本地,用jsdom补环境就可以了。
const jsdom = require('jsdom');
const {JSDOM} = jsdom;
const dom = new JSDOM(<!DOCTYPE html><p>Hello world</p>
, {
url: '****'
});
window = dom.window;
XMLHttpRequest = window.XMLHttpRequest;
document = window.document; //document对象:代表给定浏览器窗口中的HTML文档,
navigator = window.navigator; // 关于运行当前脚本的应用程序的相关信息
location = window.location; //对象包含当前页面的URL信息
history = window.history; // 历史会话
screen = window.screen; // 浏览器屏幕
document.referrer = ""
setInterval = function () {
}
setTimeout = function () {
}
完成这两部后就不会报错了,基本不用补什么环境了,如果是阿里227和腾讯的就需要自己手动不了。下面是我w代码部分仅从参考。
function getW(setLeft, passtime, device_id, lot_number, pow_msg, pow_sign) {
geetest = 固定
lang = 固定
ep = 固定
jiws = 固定
em =固定
ax4h = fppu(gkl.toString() + fppu(fppu.toString())) + ''
s = random()
u = new _TT().encrypt(s)
r = {
"setLeft": x,
"passtime": 固定,
"userresponse": setLeft/1.0059466666666665+2,
"device_id": device_id,
"lot_number": lot_number,
"pow_msg": pow_msg,
"pow_sign": CryptoJS.MD5(pow_msg).toString(),
"geetest": geetest,
"lang": lang,
"ep": ep,
"ax4h": ax4h,
"jiws": jiws,
"em": em
}
c = _ss.encrypt(JSON.stringify(r), s)
// console.log(fppu(fppu.toString()))
console.log(_th(c) + u)
return (0,_th(c)) + u
}
1.3.结果
2.点选
2.1.大致思路流程
点选就比较麻烦了需要用yolov训练,然后孪生训练,最后还有一堆逻辑要写,重复工作也多建议时间不充裕的可以放一放学安卓或者数据处理先后面再回来学,也可以直接用打码平台我是推荐打码但是钱包不允许我这么做