爬虫逆向实战(二十五)--某矿采购公告

这篇具有很好参考价值的文章主要介绍了爬虫逆向实战(二十五)--某矿采购公告。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、数据接口分析

主页地址:某矿

1、抓包

通过抓包可以发现数据接口是cgxj/by-lx-page
爬虫逆向实战(二十五)--某矿采购公告,爬虫逆向实战,爬虫

2、判断是否有加密参数

  1. 请求参数是否加密?
    通过查看“载荷”模块可以发现有一个param的加密参数
    爬虫逆向实战(二十五)--某矿采购公告,爬虫逆向实战,爬虫
  2. 请求头是否加密?
  3. 响应是否加密?
  4. cookie是否加密?

二、加密位置定位

1、看启动器

查看启动器发现里面有一个index.js中的匿名调用堆栈,点进去查看
爬虫逆向实战(二十五)--某矿采购公告,爬虫逆向实战,爬虫
点进去后发现,网站确实是在此处发送的请求,而且参数param也是在此处赋值。但是param的值来自于A.sent,此处找不到A.sent赋值的位置,所以此处只是发包位置,并不是加密位置。
爬虫逆向实战(二十五)--某矿采购公告,爬虫逆向实战,爬虫

2、搜索关键字

通过搜索sent相关的关键字,不能有效的定位到加密位置

3、hook

因为请求参数中只有一个param密文参数,所以网站大概率会使用JSON.stringify将数据转换为json字符串再进行加密,所以我们可以hookJSON.stringify,hook代码:

var my_stringify = JSON.stringify;
JSON.stringify = function (params) {
    debugger
    console.log("json_stringify params:",params);
    return my_stringify(params);
};

运行hook代码,再次获取数据,发现可以断住
爬虫逆向实战(二十五)--某矿采购公告,爬虫逆向实战,爬虫
接着调试执行,就可以发现加密位置
爬虫逆向实战(二十五)--某矿采购公告,爬虫逆向实战,爬虫
但是,此时我们并不能确定此处的加密结果是否就是发包时使用的A.sent,所以我们可以在发包位置再打上断点,并将此处断点放开,通过对比,我们可以发现,此处的加密结果就是发包时使用的。
爬虫逆向实战(二十五)--某矿采购公告,爬虫逆向实战,爬虫

三、扣js代码

将加密位置的代码扣出,缺啥补啥即可。
注意,加密时使用的RSA加密以及md5加密,均可使用标准模块,但是RSA加密时,要补一下网站的encryptLong方法,同时RSA加密所使用的公钥,通过观察发包可以看出,网站每次获取数据前,都会先发一个包获取公钥。
爬虫逆向实战(二十五)--某矿采购公告,爬虫逆向实战,爬虫
所以先请求public接口获取到公钥,再进行加密即可。
JavaScript源码:文章来源地址https://www.toymoban.com/news/detail-679559.html

const JSEncrypt = require('jsencrypt');
const CryptoJS = require("crypto-js");


function w(A) {
    var e, t, n = "", r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", a = "=";
    for (e = 0; e + 3 <= A.length; e += 3)
        t = parseInt(A.substring(e, e + 3), 16),
            n += r.charAt(t >> 6) + r.charAt(63 & t);
    e + 1 == A.length ? (t = parseInt(A.substring(e, e + 1), 16),
        n += r.charAt(t << 2)) : e + 2 == A.length && (t = parseInt(A.substring(e, e + 2), 16),
        n += r.charAt(t >> 2) + r.charAt((3 & t) << 4));
    while ((3 & n.length) > 0)
        n += a;
    return n
}

JSEncrypt.prototype.encryptLong = function (A) {
    var e = this.getKey()
        , t = (e.n.bitLength() + 7 >> 3) - 11;
    var n = ""
        , r = "";
    if (A.length > t)
        return n = A.match(/.{1,50}/g),
            n.forEach((function (A) {
                    var t = e.encrypt(A);
                    r += t
                }
            )),
            w(r);
    var a = e.encrypt(A)
        , s = w(a);
    return s
}

function b(A, e, t) {
    return e in A ? Object.defineProperty(A, e, {
        value: t,
        enumerable: !0,
        configurable: !0,
        writable: !0
    }) : A[e] = t,
        A
}

function d(A, e) {
    var t = Object.keys(A);
    if (Object.getOwnPropertySymbols) {
        var n = Object.getOwnPropertySymbols(A);
        e && (n = n.filter((function (e) {
                return Object.getOwnPropertyDescriptor(A, e).enumerable
            }
        ))),
            t.push.apply(t, n)
    }
    return t
}

function m(A) {
    for (var e = 1; e < arguments.length; e++) {
        var t = null != arguments[e] ? arguments[e] : {};
        e % 2 ? d(Object(t), !0).forEach((function (e) {
                b(A, e, t[e])
            }
        )) : Object.getOwnPropertyDescriptors ? Object.defineProperties(A, Object.getOwnPropertyDescriptors(t)) : d(Object(t)).forEach((function (e) {
                Object.defineProperty(A, e, Object.getOwnPropertyDescriptor(t, e))
            }
        ))
    }
    return A
}

function get_param(pub_key) {
    var e = {
        "inviteMethod": "",
        "businessClassfication": "",
        "mc": "",
        "lx": "CGGG",
        "dwmc": "",
        "pageIndex": 1
    }
    var t = new JSEncrypt();
    t.setPublicKey(pub_key)
    a = m(m({}, e), {}, {
        sign: CryptoJS.MD5(JSON.stringify(e)).toString(),
        timeStamp: +new Date
    })
    return t.encryptLong(JSON.stringify(a))
}

到了这里,关于爬虫逆向实战(二十五)--某矿采购公告的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 二十五、SQL 数据分析实战(9个中等难度的SQL题目)

    现有一张用户使用 App 时间表 middle_app_login,middle_app_login 表的数据如下表所示: 【题目1】根据该表统计出每个用户每次退出App与下一次登录App间隔的平均时间,如果用户只登录过一次App,则不统计,要求输出的平均时间的单位为分钟,并将其四舍五入保留一位小数。输出内

    2024年02月12日
    浏览(86)
  • 逆向爬虫进阶实战:突破反爬虫机制,实现数据抓取

    随着网络技术的发展,网站为了保护自己的数据和资源,纷纷采用了各种反爬虫机制。然而,逆向爬虫技术的出现,使得我们可以突破这些限制,实现对目标网站的深入分析和抓取。本文将介绍逆向爬虫进阶实战的一些技巧和代码片段,帮助读者更好地理解和掌握这一技术。

    2024年02月04日
    浏览(52)
  • 爬虫逆向实战(十三)--某课网登录

    主页地址:某课网 1、抓包 通过抓包可以发现登录接口是user/login 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个 password 加密参数,还有一个 browser_key 这个可以写死不需要关心 请求头是否加密? 无 响应是否加密? 无 cookie是否加密? 无

    2024年02月12日
    浏览(51)
  • 爬虫逆向实战(十九)--某号站登录

    主页地址:某号站 1、抓包 通过抓包可以发现登录接口 2、判断是否有加密参数 请求参数是否加密? 通过查看“载荷”模块可以发现有一个 jsondata_rsa 的加密参数 请求头是否加密? 无 响应是否加密? 无 cookie是否加密? 无 1、看启动器 查看启动器发现里面有一个 LoginNow 的调

    2024年02月11日
    浏览(43)
  • 微软Bing Chat逆向爬虫实战

    最近AIGC太火了,以OpenAI为首的一批人工智能公司一次又一次的引爆科技圈的浪潮,从ChatGPT到Sora,OpenAI在一年多时间里连续发布两个重磅产品,彻底拉开了AI时代的帷幕。而作为科技巨头微软也是OpenAi的大股东,OpenAi只要出了新模型,那么微软的Bing都是第一时间集成上去,基

    2024年04月09日
    浏览(50)
  • WebSocket爬虫与JS逆向实战

    声明:本文章中所有内容仅供学习交流,不可用于任何商业用途和非法用途,否则后果自负,如有侵权,请联系作者立即删除!由于本人水平有限,如有理解或者描述不准确的地方,还望各位大佬指教!! 练习网站: Q3JhenkgUHJvTW9ua2V5IGh0dHBzOi8vd3d3LnBhbnpob3UuZ292LmNuL3p3Z2tfMTU4NjEve

    2024年02月07日
    浏览(48)
  • 爬虫逆向实战(六)--猿人学第四题

    主页地址:猿人学第四题 1、抓包 通过抓包可以发现数据接口是api/match/4 2、判断是否有加密参数 请求参数是否加密? 无 请求头是否加密? 无 响应是否加密? 响应数据无加密,但是返回的却是html代码 cookie是否加密? 无 1、看启动器 查看启动器发现有一个 request 调用堆栈,

    2024年02月12日
    浏览(43)
  • 逆向爬虫技术的进阶应用与实战技巧

    在互联网的海洋中,数据是无价的财富。爬虫技术作为获取这些数据的重要手段,一直备受关注。然而,随着网站反爬虫机制的日益完善,简单的爬虫程序已经很难满足我们的需求。因此,掌握爬虫逆向技术,突破反爬虫机制,成为了爬虫开发者必须面对的挑战。 本文将带领

    2024年03月26日
    浏览(66)
  • 微软-文字转语音.语音合成--逆向爬虫实战

    gospider 是一个golang 爬虫神器,它内置了多种爬虫模块,是golang 爬虫必备的工具包 注意:这个地址中有个X-ConnectionId参数,这个参数写死或者自己生成假的都可以,这个参数不重要 这里一个发送了三次参数,三个参数中的X-RequestId 值,这个参数写死或者自己生成假的都可以,这

    2024年02月11日
    浏览(38)
  • 【hacker送书第12期】爬虫逆向进阶实战

    引领技术创新,突破网络界限,《爬虫逆向进阶实战》为你揭示数据抓取的深层奥秘。这是一本超越爬虫技术的书籍,更是通往高级逆向工程世界的通行证。 作者李玺凭借丰富经验,深入浅出地阐述了网络爬虫和Python爬虫的架构设计,助您掌握构建高效、稳定爬虫系统的核心

    2024年02月04日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包