前程无忧guid、acw_sc__v2

2023-11-14

声明

本文章中所有内容仅供学习交流,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请私信我立即删除!

目标网站

aHR0cHM6Ly93ZS41MWpvYi5jb20vcGMvc2VhcmNoP2tleXdvcmQ9amF2YSZzZWFyY2hUeXBlPTImc29ydFR5cGU9MCZtZXRybz0=

在这里插入图片描述

acw_sc__v2分析

看到了熟悉的acw_sc__v2,不熟悉的推荐之前写的两篇文章:

阿里系cookie之acw_sc__v2 逆向分析

雪球acw_sc__v2

不出意外第一次请求应该是设置acw_sc__v2
在这里插入图片描述
这个acw_sc__v2很多网站的算法都是通用的,我们可以直接用之前的代码,也可以自己跟跟看。

acw_sc__v2 生成js:

window = {};

var arg3 = null;
var arg4 = null;
var arg5 = null;
var arg6 = null;
var arg7 = null;
var arg8 = null;
var arg9 = null;
var arg10 = null;

var l = function (arg1) {
  while (window["_phantom"] || window["__phantomas"]) {}

  var _0x5e8b26 = "3000176000856006061501533003690027800375";

  String["prototype"]["hexXor"] = function (_0x4e08d8) {
    var _0x5a5d3b = "";

    for (var _0xe89588 = 0; _0xe89588 < this["length"] && _0xe89588 < _0x4e08d8["length"]; _0xe89588 += 2) {
      var _0x401af1 = parseInt(this["slice"](_0xe89588, _0xe89588 + 2), 16);

      var _0x105f59 = parseInt(_0x4e08d8["slice"](_0xe89588, _0xe89588 + 2), 16);

      var _0x189e2c = (_0x401af1 ^ _0x105f59)["toString"](16);

      if (_0x189e2c["length"] == 1) {
        _0x189e2c = "0" + _0x189e2c;
      }

      _0x5a5d3b += _0x189e2c;
    }

    return _0x5a5d3b;
  };

  String["prototype"]["unsbox"] = function () {
    var _0x4b082b = [15, 35, 29, 24, 33, 16, 1, 38, 10, 9, 19, 31, 40, 27, 22, 23, 25, 13, 6, 11, 39, 18, 20, 8, 14, 21, 32, 26, 2, 30, 7, 4, 17, 5, 3, 28, 34, 37, 12, 36];
    var _0x4da0dc = [];
    var _0x12605e = "";

    for (var _0x20a7bf = 0; _0x20a7bf < this["length"]; _0x20a7bf++) {
      var _0x385ee3 = this[_0x20a7bf];

      for (var _0x217721 = 0; _0x217721 < _0x4b082b["length"]; _0x217721++) {
        if (_0x4b082b[_0x217721] == _0x20a7bf + 1) {
          _0x4da0dc[_0x217721] = _0x385ee3;
        }
      }
    }

    _0x12605e = _0x4da0dc["join"]("");
    return _0x12605e;
  };

  var _0x23a392 = arg1["unsbox"]();

  arg2 = _0x23a392["hexXor"](_0x5e8b26);
  console.log('arg2==>',arg2)
  // setTimeout("reload(arg2)", 2);
    return arg2
};
// var arg1 = "FAA6CB46CF724D58FF82E5310687947623413114";
// l(arg1)

python调用测试

# -*- coding: UTF-8 -*-
import time
import uuid
import requests
import re
import json
import execjs


headers = {
    'Accept': 'application/json, text/plain, */*',
    'Accept-Language': 'zh',
    'Cache-Control': 'no-cache',
    'Connection': 'keep-alive',
    'From-Domain': '51job_web',
    'Pragma': 'no-cache',
    'Referer': 'https://we.51job.com/pc/search?keyword=java&searchType=2&sortType=0&metro=',
    'Sec-Fetch-Dest': 'empty',
    'Sec-Fetch-Mode': 'cors',
    'Sec-Fetch-Site': 'same-origin',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    'account-id': '',
    'partner': '',
    'property': '%7B%22partner%22%3A%22%22%2C%22webId%22%3A2%2C%22fromdomain%22%3A%2251job_web%22%2C%22frompageUrl%22%3A%22https%3A%2F%2Fwe.51job.com%2F%22%2C%22pageUrl%22%3A%22https%3A%2F%2Fwe.51job.com%2Fpc%2Fsearch%3Fkeyword%3Djava%26searchType%3D2%26sortType%3D0%26metro%3D%22%2C%22identityType%22%3A%22%22%2C%22userType%22%3A%22%22%2C%22isLogin%22%3A%22%E5%90%A6%22%2C%22accountid%22%3A%22%22%7D',
    'sec-ch-ua': '"Not.A/Brand";v="8", "Chromium";v="114", "Google Chrome";v="114"',
    'sec-ch-ua-mobile': '?0',
    'sec-ch-ua-platform': '"Windows"',
    'sign': '839932c059141791d8a003f0e6652e14facbf788a502df374fecf9c107d93b9e',
    'user-token': '',
    'uuid': '1687228791235576552',
}
params = {
    'api_key': '51job',
    'timestamp': '1687228791',
    'keyword': 'java',
    'searchType': '2',
    'function': '',
    'industry': '',
    'jobArea': '000000',
    'jobArea2': '',
    'landmark': '',
    'metro': '',
    'salary': '',
    'workYear': '',
    'degree': '',
    'companyType': '',
    'companySize': '',
    'jobType': '',
    'issueDate': '',
    'sortType': '0',
    'pageNum': '1',
    'requestId': '',
    'pageSize': '20',
    'source': '1',
    'accountId': '',
    'pageCode': 'sou|sou|soulb',
}

# 换成自己的代理,或者不用,单个ip应该有限制
proxies = {
    "http":"http://xxx",
    "https":"http://xxxx"
}


for i in range(1,3):
    try:
        # cookie = {'guid': 'd02dfbabd84858301947663946e1710f'}
        session = requests.session()
        print("第%s次请求:" % i)
        response = session.get('https://we.51job.com/api/job/search-pc', params=params,proxies=proxies,headers=headers)
        print(response.text[:300])
        arg1 = re.findall("arg1='(.*?)';",response.text,re.S)[0]
        print('arg1--->',arg1)
        guid = str(uuid.uuid4()).replace("-", "")
        cookie = {'guid': str(guid)}

        with open('04.js', 'r', encoding='utf-8') as f:
            js = f.read()
        acw_sc__v2 = execjs.compile(js).call('l', arg1)
        print('acw_sc__v2-->',acw_sc__v2)
        cookie.update({"acw_sc__v2": acw_sc__v2})
        # cookie.update({"acw_sc__v3": "649257ebe376df87b3db6a94c1e5ad37f42f783b"})
        response2 = session.get('https://we.51job.com/api/job/search-pc', params=params,headers=headers,proxies=proxies,cookies=cookie) #
        cookie.update(response2.cookies.get_dict())

        response = session.get('https://we.51job.com/api/job/search-pc', params=params,headers=headers,proxies=proxies, cookies=cookie)
        print(response.text)
        time.sleep(0.5)
    except Exception as e:
        print(e)



测试结果:
在这里插入图片描述

话外拓展-风控浅析

测了一下风控,单个ip用acw_sc__v2请求多了会出滑块验证
在这里插入图片描述

过掉滑块,生成acw_sc__v3, cookie携带acw_sc__v3参数请求,使用单个ip

在这里插入图片描述
请求1000次还是成功的,再启动一下爬虫就是405响应:
在这里插入图片描述
再打开浏览器刷新就是这样:
在这里插入图片描述

这种情况就是ip被封掉了,浏览器再切换一下ip
在这里插入图片描述
又能正常访问了,确定是ip被限制了。

结论:请求量大的还是堆ip吧【狗头保命】

往期逆向文章推荐

B站w_rid逆向

某书最新版X-s(2023/5/23更新)

JS逆向之今日头条signature

JS逆向之抖音__ac_signature

JS逆向之淘宝sign

JS逆向之知乎jsvmp算法

JS逆向之艺恩数据

JS逆向之网易云音乐

JS逆向之巨量星图sign签名

JS逆向之巨量创意signature签名

JS逆向之巨量算数signature与data解密

JS逆向之行行查data解密

JS逆向之百度翻译

JS逆向解析之有道翻译

JS逆向之企名科技

JS逆向之人口流动态势

JS逆向系列之猿人学爬虫第1题

JS逆向系列之猿人学爬虫第2题

JS逆向系列之猿人学爬虫第3题

JS逆向系列之猿人学爬虫第4题

JS逆向系列之猿人学爬虫第5题

JS逆向系列之猿人学爬虫第6题

JS逆向系列之猿人学爬虫第7题-动态字体,随风漂移

JS逆向系列之猿人学爬虫第12题

JS逆向系列之猿人学爬虫第13题

JS逆向系列之猿人学爬虫第15题-备周则意怠,常见则不疑

JS逆向系列之猿人学爬虫第17题

JS逆向之猿人学爬虫第19题-乌拉

JS逆向之网洛者反爬虫练习平台第4题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前程无忧guid、acw_sc__v2 的相关文章

随机推荐

  • linux diff 补丁文件夹,diff打补丁详解

    对于开源源码修改过程中的必经阶段 对源码打补丁 总是不够精通 搜索了补丁的原理的详细过程 如下 在移植或版本升级过程中 手动比对 用比对工具 转换是很费力的事情 特别是发生变化的文件非常多的情况下 制作补丁 打补丁 可以简化这个过程 主要用
  • Diffie-Hellman(迪菲-赫尔曼)秘钥交换

    Diffie Hellman算法是Whitefield Diffie和Martin Hellman在1976年公布的一种秘钥交换算法 它是一种建立秘钥的方法 而不是加密方法 所以秘钥必须和其他一种加密算法结合使用 这种秘钥交换技术的目的在于
  • Centos7 配置zookeeper 开机自启动

    昨天参考网上的相关教程 Centos7安装Zookeeper3 4 12并实现开机自动 今天早上开启虚拟机 查看zookeeper 的服务状态 切换至zookeeper 的安装目录 cd usr local zookeeper zookee
  • HTML <template> 标签

    实例 使用
  • 【游戏客户端面试题干货】--2021年最新游戏客户端面试干货(lua篇)

    游戏客户端面试题干货 2021年度最新游戏客户端面试干货 lua篇 大家好 我是Lampard 经过春招一番艰苦奋战之后 我终于是进入了心仪的公司 今天给大家分享一下我在之前精心准备的一套面试知识 今天和大家分享的是lua的面试题 本人亲测
  • 欧姆龙NJ系列入门

    1 指示灯 SD卡旁边有个按钮 按下按钮之后SD卡断电 并且需要取出SD卡重新安装或者断电重启 plc 才能上电 2 电源模块 电源模块和 plc 是可以分开的 这是电源模块 这是 plc NJ PA3001 NJ PD3001供电电压不一
  • useCallback和useMemo

    或许大家都明白useCallback一个这样的作用 为了性能优化 但是怎么去用它才能达到性能优化呢 因为我曾经看到过有同事 碰到点击事件就用useCallback包裹起来 但是这样真的是能优化吗 今天我们就来捋一捋 useCallback
  • Thinkphp 5.0整合支付宝即时到账最新接口,含模型验证完整实例

    今年thinkphp推出了5 0版本 相比以往版本更轻更便捷了 由于业务需要使用支付宝支付 兔子工程整合了支付宝支付接口 在此分享给各位奋战在一线的攻城狮们 希望对你们有帮助 传送门 Thinkphp 5 0版本整合微信扫码支付接口 本文所
  • c++ 拷贝构造函数中形参对象可以直接访问private变量

    恩 就酱
  • 栈的基本操作(C语言)

    本文只有代码 介绍了有关栈的基本操作 已经过调试没有很大问题 如有错误 还请批评指正 一 栈的实现和表示 pragma once define CRT SECURE NO WARNINGS include
  • StringIndexOutOfBoundsException: String index out of range: 458

    报错信息 org springframework dao TransientDataAccessResourceException Error updating database Cause java sql SQLException ja
  • Week 2 Git & Github 6: Rollback

    git revert HEAD 回退最新的一次commit 但是并不会撤销之前的commit记录 只是提交一次新的commit 将文件内容修改到上次commit之前的样子 到这里 我们已经学完了几乎所有的撤销更改的命令了 包括 git ch
  • 如何使用万用表测量二极管的阻值

    如何使用万用表测量二极管的阻值 1 测量时 选用万用表的 欧姆 挡 一般用R x100或R xlk挡 而不用Rx1或R x10k挡 因为Rxl挡的电流太大 容易烧坏二极管 R xlok挡的内电源电压太大 易击穿二极管 2 将两表棒分别接在二
  • 在MacOS下使用Fiddler抓包

    在MacOS下使用Fiddler抓包 在MacOS下使用Fiddler抓包 有两种方式 分别是安装Mac版的Fiddler 或者是用虚拟机 安装Windows系统 在Windows系统下运行Fiddler对Mac系统中的内容进行抓包 Mac
  • AES128加密算法的实现(C/Java/C#)

    最近项目中有一个需求 实现AES128的加密算法 用于硬件和平台的通信 硬件加密部分使用C语言完成 平台有两种不同的环境 java Linux 和C Windows 在网上搜集了一些资料 有人实现过纯C代码的AES加密解密算法 这样实际上有
  • Java 新特性 UpdateWrapper-(修改指定字段)

    UpdateWrapper的使用 UpdateWrapper的使用 修改指定id的名字 可在后增加条件 常用的连接条件 UpdateWrapper的使用 QueryWrapperLambdaQueryWrapper 条件查询 修改指定id的
  • 在 WebStorm 中开发 uni-app

    代码已上传至github github代码地址 https github com Miofly mio git CLI 工程 全局安装 vue cli 3 x 如已安装请跳过此步骤 npm install g vue cli 通过 CLI
  • JavaScript 常见鼠标事件

    常见鼠标事件类型1 1 click鼠标左键点击 2 mousedown 鼠标按下时触发 3 mouseup 鼠标弹起时触发 4 mousemove move移动 鼠标在固定的位置一移动就触发移动 就触发 5 mouseenter 鼠标移入触
  • Qt 识别 DM 码

    Qt 识别 DM 码 下载libdmtx 添加源码到Qt 工程 生成一维码 二维码 识别普通二维码网上库很多 这个库专门识别 DM码 下载libdmtx https github com dmtx libdmtx 添加源码到Qt 工程 li
  • 前程无忧guid、acw_sc__v2

    文章目录 声明 目标网站 acw sc v2分析 python调用测试 话外拓展 风控浅析 往期逆向文章推荐 声明 本文章中所有内容仅供学习交流 严禁用于商业用途和非法用途 否则由此产生的一切后果均与作者无关 若有侵权 请私信我立即删除 目