爬虫逆向学习(十三):某房地产升瑞六了,分享一下破解经验

某房地产升瑞六了,分享一下破解经验

源码提供

有需要的朋友可以下载补环境那部分的源码:补环境源码

前言

前不久才攻克了某房地产的瑞四,这两天跑脚本发现破解失败了,打开网址一看,好家伙,升级到瑞六了,卷的很!趁着有时间试试看能不能攻克。

难点

大家可以看看我之前的文章,虽然已经失效了,但是补环境思路是可以参考的,而且攻克瑞六一切前提和代码啥的都还是用的以前的。
爬虫逆向学习(六):补环境过某数四代
爬虫逆向学习(七):补环境动态生成某数四代后缀MmEwMD

这里提前给大家透露一下:现在升级后它还只要补全代理提示缺失的环境就能可以补成功了,相比于瑞四多检测了些环境,并没有在控制流中检测特定的像canvas、span标签这些恶心玩意,且对all、form只是简单检测

已知难点:

  1. 补环境所需代码构建
  2. 代码格式化检测
  3. 外链js文件代码中对方法体注入debugger

解决

这里不会从头到尾讲解补过程,毕竟只需缺啥补啥,且缺啥提示很明确,帮助大家整理好前提环境才是重点

老样子,先给脚本断点,情况浏览器内存(删除已有cookie),然后刷新页面
在这里插入图片描述
我们提取关键代码其实就是根据它出现的顺序,瑞六和瑞4相比,它没有自执行函数,而是定义_ts,也就是如下代码
在这里插入图片描述

再走下去就是外链js的内容了,这部分可以单独存一个文件,也可以直接放在后面,注意不要格式化复制,它的格式化检测就是在这部分代码实现的
在这里插入图片描述

content的处理操作是一样的,最后关键代码如下,这里就可以开始补了。
在这里插入图片描述

上面我们解决了难点一和二,而难点三是在给我们调试增加难度的,继续执行到VM代码处,会不断进入debugger,全部由120多处,不断循环还更多
在这里插入图片描述

这里要处理过无限debugger

(function () {
    'use strict';
    window.__cr_eval = window.eval
    String.prototype.replaceAll = String.prototype.replaceAll || function(string, replaced) {
      return this.replace(new RegExp(string, 'g'), replaced);
    };

    var myeval = function (src) {
        console.log(src);
        return window.__cr_eval(src.replaceAll('debugger;', ';'))
    }
    var _myeval = myeval.bind(null)
    _myeval.toString = window.__cr_eval.toString
    Object.defineProperty(window, 'eval', {value: myeval})

    window.setInterval=function(){};
    window.setTimeout=function(){};

    var _constructor = constructor;
    Function.prototype.constructor = function (s) {
        if (s === 'debugger') {
            console.log(s);
            return null;
        }
        return _constructor(s);
    }

    //去除无限debugger
    Function.prototype.__constructor_back = Function.prototype.constructor;
    Function.prototype.constructor = function () {
        if (arguments && typeof arguments[0] === 'string') {
            if ('debugger' === arguments[0]) {
                return
            }
        }
        return Function.prototype.__constructor_back.apply(this, arguments);
    }

    var _Function = Function;
    Function = function (s) {
        if (s === 'debugger') {
            console.log(s);
            return null;
        }
        return _Function(s);
    }

})();

经测试,上面这部分代码处理eval没法实现,其它都可以,这里之所以没法实现eval是因为它是在外链js代码中执行的,没法被hook到(本地node环境可以过,浏览器过不了)
在这里插入图片描述

针对浏览器这种情况,我们需要定位eval.call,手动处理它的内容
如下,我们通过这种方式加上上面的代码,就能把所有的函数体debugger和时间循环debugger给绕过了,且能在hook cookie这里debugger住。
在这里插入图片描述

这里给大家看下我补的大致内容,具体的大家自己练练手,实在搞不定可以提问
在这里插入图片描述
在这里插入图片描述

破解结果

我补处理的cookie长度是236,可以破解成功
在这里插入图片描述

爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取据并存储,以便后续分析或展示。爬虫通常由搜索引擎、据挖掘工具、监测系统等应用于网络据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标据,如文本、图片、链接等。 据存储: 爬虫将提取的据存储到据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型据库、NoSQL据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

九月镇灵将

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值