国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

爬蟲逆向?qū)崙?zhàn)(二十三)--某準(zhǔn)網(wǎng)數(shù)據(jù)

這篇具有很好參考價(jià)值的文章主要介紹了爬蟲逆向?qū)崙?zhàn)(二十三)--某準(zhǔn)網(wǎng)數(shù)據(jù)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、數(shù)據(jù)接口分析

主頁地址:某準(zhǔn)網(wǎng)

1、抓包

通過抓包可以發(fā)現(xiàn)數(shù)據(jù)接口是api_to/search/company_v2.json
爬蟲逆向?qū)崙?zhàn)(二十三)--某準(zhǔn)網(wǎng)數(shù)據(jù),爬蟲逆向?qū)崙?zhàn),爬蟲

2、判斷是否有加密參數(shù)

  1. 請求參數(shù)是否加密?
    通過查看“載荷”模塊可以發(fā)現(xiàn)b參數(shù)和kiv參數(shù)是加密參數(shù)
    爬蟲逆向?qū)崙?zhàn)(二十三)--某準(zhǔn)網(wǎng)數(shù)據(jù),爬蟲逆向?qū)崙?zhàn),爬蟲
  2. 請求頭是否加密?
  3. 響應(yīng)是否加密?
    通過查看“響應(yīng)”模塊可以發(fā)現(xiàn),網(wǎng)站返回的響應(yīng)數(shù)據(jù)也是加密的
    爬蟲逆向?qū)崙?zhàn)(二十三)--某準(zhǔn)網(wǎng)數(shù)據(jù),爬蟲逆向?qū)崙?zhàn),爬蟲
  4. cookie是否加密?

二、加密位置定位

1、加密參數(shù)b和kiv

(1)看啟動(dòng)器

查看啟動(dòng)器發(fā)現(xiàn)里面包含異步,所以無法正確找到加密位置
爬蟲逆向?qū)崙?zhàn)(二十三)--某準(zhǔn)網(wǎng)數(shù)據(jù),爬蟲逆向?qū)崙?zhàn),爬蟲

(2)搜索關(guān)鍵字

通過搜索關(guān)鍵字kiv:可以發(fā)現(xiàn)有一處條件判斷,根據(jù)請求的方法和請求頭類型設(shè)置bkiv,所以此處大概是加密參數(shù)的賦值位置。
爬蟲逆向?qū)崙?zhàn)(二十三)--某準(zhǔn)網(wǎng)數(shù)據(jù),爬蟲逆向?qū)崙?zhàn),爬蟲
在此處下斷點(diǎn),再次獲取數(shù)據(jù),發(fā)現(xiàn)可以斷住,ta是加密參數(shù)的值。同時(shí)ta的生成就在上方,所以此處就是加密位置。
爬蟲逆向?qū)崙?zhàn)(二十三)--某準(zhǔn)網(wǎng)數(shù)據(jù),爬蟲逆向?qū)崙?zhàn),爬蟲

2、響應(yīng)數(shù)據(jù)

因?yàn)轫憫?yīng)加密數(shù)據(jù)一般都是json數(shù)據(jù)加密,所以解密后會使用JSON.parse進(jìn)行解密,所以我們可以對JSON.parse進(jìn)行hook
hook代碼段:

var my_parse = JSON.parse;
JSON.parse = function (params) {
    debugger
    console.log("json_parse params:",params);
    return my_parse(params);
};

運(yùn)行hook代碼,再次獲取數(shù)據(jù),發(fā)現(xiàn)可以斷住明文
爬蟲逆向?qū)崙?zhàn)(二十三)--某準(zhǔn)網(wǎng)數(shù)據(jù),爬蟲逆向?qū)崙?zhàn),爬蟲
接著調(diào)試執(zhí)行,可以發(fā)現(xiàn)e.data是密文數(shù)據(jù),經(jīng)過M.gy方法解密后的t是明文數(shù)據(jù)。
爬蟲逆向?qū)崙?zhàn)(二十三)--某準(zhǔn)網(wǎng)數(shù)據(jù),爬蟲逆向?qū)崙?zhàn),爬蟲

三、扣js代碼

將加密以及解密的方法扣出,缺啥補(bǔ)啥即可。在扣代碼時(shí)可以發(fā)現(xiàn),網(wǎng)站使用的AES加密,所以可以直接使用標(biāo)準(zhǔn)模塊。同時(shí),kiv是加解密時(shí)使用的iv,所以加解密時(shí)要使用相同的kiv
JavaScript源碼:文章來源地址http://www.zghlxwxcb.cn/news/detail-680234.html

var CryptoJS = require('crypto-js')

function M_A(e) {
    void 0 === e && (e = 16);
    for (var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""), n = "", r = 0; r < e; r++) {
        n += t[Math.ceil(61 * Math.random())]
    }
    return n
}

var s, u = (s = null,
        function () {
            return s || (s = function () {
                var e, t, n, r, i = null;
                return i || (t = new RegExp("\\u200c", "g"),
                    n = new RegExp("\\u200d", "g"),
                    r = new RegExp(".{8}", "g"),
                    e = "????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????".replace(r, (function (e) {
                            return String.fromCharCode(parseInt(e.replace(t, 1).replace(n, 0), 2))
                        }
                    )),
                    i = {
                        key: CryptoJS.enc.Utf8.parse(e),
                        mode: CryptoJS.mode.CBC,
                        pad: CryptoJS.pad.Pkcs7
                    }),
                    i
            }()),
                s
        }
)

l = function (e, t) {
    void 0 === e && (e = ""),
    void 0 === t && (t = "");
    var n = u()
        , r = CryptoJS.AES.encrypt(e.toString(), n.key, {
        iv: CryptoJS.enc.Utf8.parse(t),
        mode: n.mode,
        padding: n.pad
    });
    return r = r.toString()
}

c = function (e, t) {
    void 0 === e && (e = ""),
    void 0 === t && (t = "");
    var n = u()
        , r = CryptoJS.AES.decrypt(e.toString(), n.key, {
        iv: CryptoJS.enc.Utf8.parse(t),
        mode: n.mode,
        padding: n.pad
    });
    return r = r.toString(CryptoJS.enc.Utf8)
}

M_mA = function (e, t) {
    return e ? ("string" != typeof e && (e = e.toString()),
        l(e, t.iv)) : ""
}

function M_gy(e, t) {
    var n = "";
    return "string" == typeof e && e.length > 20 && (n = c(e, t.iv)),
        n
}

function get_params() {
    var r_data = {
        "query": "爬蟲",
        "pageNum": 5,
        "limit": 15
    }

    var n = JSON.stringify(r_data);
    var kiv = M_A()

    var t = M_mA(n, {iv: kiv}).replace(/\//g, "_").replace(/\+/g, "-").replace(/=/g, "~");
    return {
        b: t,
        kiv: kiv
    }
}

function decryption_data(e_data, kiv) {
    var data = M_gy(e_data, {iv: kiv})
    data = JSON.parse(data)
    return data
}

到了這里,關(guān)于爬蟲逆向?qū)崙?zhàn)(二十三)--某準(zhǔn)網(wǎng)數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • (二十三)大數(shù)據(jù)實(shí)戰(zhàn)——Flume數(shù)據(jù)采集之采集數(shù)據(jù)聚合案例實(shí)戰(zhàn)

    (二十三)大數(shù)據(jù)實(shí)戰(zhàn)——Flume數(shù)據(jù)采集之采集數(shù)據(jù)聚合案例實(shí)戰(zhàn)

    本節(jié)內(nèi)容我們主要介紹一下Flume數(shù)據(jù)采集過程中,如何把多個(gè)數(shù)據(jù)采集點(diǎn)的數(shù)據(jù)聚合到一個(gè)地方供分析使用。我們使用hadoop101服務(wù)器采集nc數(shù)據(jù),hadoop102采集文件數(shù)據(jù),將hadoop101和hadoop102服務(wù)器采集的數(shù)據(jù)聚合到hadoop103服務(wù)器輸出到控制臺。其整體架構(gòu)如下: ①在hadoop101服務(wù)

    2024年02月09日
    瀏覽(22)
  • 逆向爬蟲進(jìn)階實(shí)戰(zhàn):突破反爬蟲機(jī)制,實(shí)現(xiàn)數(shù)據(jù)抓取

    逆向爬蟲進(jìn)階實(shí)戰(zhàn):突破反爬蟲機(jī)制,實(shí)現(xiàn)數(shù)據(jù)抓取

    隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)站為了保護(hù)自己的數(shù)據(jù)和資源,紛紛采用了各種反爬蟲機(jī)制。然而,逆向爬蟲技術(shù)的出現(xiàn),使得我們可以突破這些限制,實(shí)現(xiàn)對目標(biāo)網(wǎng)站的深入分析和抓取。本文將介紹逆向爬蟲進(jìn)階實(shí)戰(zhàn)的一些技巧和代碼片段,幫助讀者更好地理解和掌握這一技術(shù)。

    2024年02月04日
    瀏覽(21)
  • 二十三、SQL 數(shù)據(jù)分析實(shí)戰(zhàn)(10個(gè)簡單的SQL題目)

    二十三、SQL 數(shù)據(jù)分析實(shí)戰(zhàn)(10個(gè)簡單的SQL題目)

    現(xiàn)有一張參加比賽的隊(duì)伍名稱表 easy_competition_list,easy_competition_list 表的數(shù)據(jù)如下所示: 【題目1】每個(gè)參賽隊(duì)伍都會和其他參賽隊(duì)伍開展一次組隊(duì)比賽,要求輸出兩兩參賽隊(duì)伍的所有比賽情況組合(兩者分別為隊(duì)伍A和隊(duì)伍B),并按照隊(duì)名依次升序排列。輸出內(nèi)容包括:隊(duì)伍

    2024年02月11日
    瀏覽(16)
  • Elasticsearch實(shí)戰(zhàn)(二十三)---ES數(shù)據(jù)建模與Mysql對比 一對多模型

    Elasticsearch實(shí)戰(zhàn)(二十三)---ES數(shù)據(jù)建模與Mysql對比 一對多模型

    我們?nèi)绾伟袽ysql的模型合理的在ES中去實(shí)現(xiàn)? 就需要你對要存儲的數(shù)據(jù)足夠的了解,及對應(yīng)用場景足夠的深入分析,才能建立一個(gè)合適的模型,便于你后期擴(kuò)展 一對一 模型 一對多 模型 多對多 模型 1.一對多 模型 我們現(xiàn)在有兩個(gè)模型, 一個(gè)商品Product, 一個(gè)分類Category , 我們對比下一

    2024年02月08日
    瀏覽(25)
  • Python爬蟲(二十三)_selenium案例:動(dòng)態(tài)模擬頁面點(diǎn)擊

    Python爬蟲(二十三)_selenium案例:動(dòng)態(tài)模擬頁面點(diǎn)擊

    本篇主要介紹使用selenium模擬點(diǎn)擊下一頁,更多內(nèi)容請參考:Python學(xué)習(xí)指南 分享一份Python的學(xué)習(xí)資料,但由于篇幅有限,完整文檔可以掃碼免費(fèi)領(lǐng)?。。?! 1)Python所有方向的學(xué)習(xí)路線(新版) 總結(jié)的Python爬蟲和數(shù)據(jù)分析等各個(gè)方向應(yīng)該學(xué)習(xí)的技術(shù)棧。 比如說爬蟲這一塊,很

    2024年02月04日
    瀏覽(92)
  • SpringBoot實(shí)戰(zhàn)(二十三)集成 SkyWalking

    SpringBoot實(shí)戰(zhàn)(二十三)集成 SkyWalking

    官方網(wǎng)址: https://skywalking.apache.org/ 官方文檔: SkyWalking 極簡入門 | Apache SkyWalking SkyWalking 是一個(gè) 開源的分布式跟蹤系統(tǒng) ,可以用于監(jiān)控和診斷分布式系統(tǒng)的性能問題。它可以跟蹤應(yīng)用程序中的請求流,并收集與請求相關(guān)的信息,如服務(wù)調(diào)用、數(shù)據(jù)庫操作、消息隊(duì)列等。Sky

    2024年02月15日
    瀏覽(26)
  • WebSocket爬蟲與JS逆向?qū)崙?zhàn)

    WebSocket爬蟲與JS逆向?qū)崙?zhàn)

    聲明:本文章中所有內(nèi)容僅供學(xué)習(xí)交流,不可用于任何商業(yè)用途和非法用途,否則后果自負(fù),如有侵權(quán),請聯(lián)系作者立即刪除!由于本人水平有限,如有理解或者描述不準(zhǔn)確的地方,還望各位大佬指教?。?練習(xí)網(wǎng)站: Q3JhenkgUHJvTW9ua2V5IGh0dHBzOi8vd3d3LnBhbnpob3UuZ292LmNuL3p3Z2tfMTU4NjEve

    2024年02月07日
    瀏覽(19)
  • 微軟Bing Chat逆向爬蟲實(shí)戰(zhàn)

    微軟Bing Chat逆向爬蟲實(shí)戰(zhàn)

    最近AIGC太火了,以O(shè)penAI為首的一批人工智能公司一次又一次的引爆科技圈的浪潮,從ChatGPT到Sora,OpenAI在一年多時(shí)間里連續(xù)發(fā)布兩個(gè)重磅產(chǎn)品,徹底拉開了AI時(shí)代的帷幕。而作為科技巨頭微軟也是OpenAi的大股東,OpenAi只要出了新模型,那么微軟的Bing都是第一時(shí)間集成上去,基

    2024年04月09日
    瀏覽(36)
  • 爬蟲逆向?qū)崙?zhàn)(十九)--某號站登錄

    爬蟲逆向?qū)崙?zhàn)(十九)--某號站登錄

    主頁地址:某號站 1、抓包 通過抓包可以發(fā)現(xiàn)登錄接口 2、判斷是否有加密參數(shù) 請求參數(shù)是否加密? 通過查看“載荷”模塊可以發(fā)現(xiàn)有一個(gè) jsondata_rsa 的加密參數(shù) 請求頭是否加密? 無 響應(yīng)是否加密? 無 cookie是否加密? 無 1、看啟動(dòng)器 查看啟動(dòng)器發(fā)現(xiàn)里面有一個(gè) LoginNow 的調(diào)

    2024年02月11日
    瀏覽(32)
  • 【第二十三篇】Burpsuite+SQL注入實(shí)現(xiàn)登錄繞過等(靶場實(shí)戰(zhàn)案例)

    存在一個(gè)業(yè)務(wù)場景如下 篩選商品時(shí),后端查詢語句如下: 只有商品名匹配且該商品已發(fā)布(released=1),客戶端才能回顯數(shù)據(jù)。 點(diǎn)擊Lifestyle時(shí),頁面回顯 生活方式 有關(guān)商品,并可知參數(shù)以GET方

    2024年04月10日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包