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

爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB

這篇具有很好參考價(jià)值的文章主要介紹了爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一、網(wǎng)站分析

  • 三年前的案例,我的原始文章
  • 網(wǎng)站 ,如圖我們直接點(diǎn)擊標(biāo)題進(jìn)入到詳情頁,鏈接會(huì)發(fā)生跳轉(zhuǎn),且與我們?cè)谠斍榭吹降逆溄樱c在列表頁看到的鏈接完全不一樣,如果拿列表頁的鏈接直接新建標(biāo)簽頁打開的話,詳情頁也是403,而只有觸發(fā)點(diǎn)擊的模式才能拿看到真實(shí)的詳情鏈接
  • 假詳情鏈接 http://ggzy.zwfwb.tj.gov.cn:80/jyxxcggg/1025448.jhtml
  • 真詳情鏈接 http://ggzy.zwfwb.tj.gov.cn/jyxxcggg/Hw5fFNS%5EhnOR3wD5T5hxxA.jhtml
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript

二、定位監(jiān)聽

  • 谷歌瀏覽器點(diǎn)中a標(biāo)簽
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript
  • 火狐瀏覽器有自帶的event事件監(jiān)聽爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript

三、熟悉AES-ECB

  • 1、分析前,需要熟悉下aes加密是什么,熟悉的可能是md5加密,md5加密是哈希算法,不可逆不能從結(jié)果推出明文;而aes是對(duì)稱加密算法,區(qū)別之一可加密可解密,即可反推明文
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript
  • 2、 AES的ECB模式,只需要找到key密鑰,就可以加密解密了 ,在線調(diào)試AES加密解密
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript
  • 3、AES加密解密代碼

四、調(diào)試分析

  • 以谷歌瀏覽器為例子
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript

  • 開始添加斷點(diǎn),嗯~ 在定義變量這里打個(gè)斷點(diǎn)試試,然后在點(diǎn)擊列表鏈接,會(huì)發(fā)現(xiàn)js停在了斷點(diǎn)處,然后咱們就一步一步的往下調(diào)試,會(huì)發(fā)現(xiàn)列表的url是如何加密的了,而其中最核心的加密算法,其實(shí)是用了CryptoJS的對(duì)稱加密AES加密,并且使用的是ECB模式,Pkcs7填充,密鑰在調(diào)試這部分的時(shí)候可以看到是何值
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript

  • 摳出js:將整個(gè)js文件全部復(fù)制下來,在console面板可直接運(yùn)行,以下是將關(guān)鍵js扣出來并在新建js腳本運(yùn)行后的結(jié)果,大功告成,下面我用python來還原
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript文章來源地址http://www.zghlxwxcb.cn/news/detail-611444.html

五、node運(yùn)行js

  • 前端定義的CryptoJS我并沒有直接復(fù)制,而是通過本地的node直接導(dǎo)入CryptoJS庫,此時(shí)只需要將關(guān)鍵代碼扣出來即可;
  • 本地需安裝node環(huán)境,然后再安裝crypto-js庫: npm install crypto-js -g
  • 重要參數(shù):key是密鑰;指定模式默認(rèn)ECB模式;padding是用來填充數(shù)據(jù)的,如果需要加密的數(shù)據(jù)的字節(jié)碼的長度不是塊大小的整數(shù)倍就需要填充
  • 方式1:扣js,缺啥補(bǔ)啥
    var CryptoJS = require('crypto-js');
    var req = function(hh) {
    var s = "qnbyzzwmdgghmcnm";
    var ee = "_blank";
    var aa = hh.split("/");
    var aaa = aa.length;
    var bbb = aa[aaa - 1].split('.');
    var ccc = bbb[0];
    var cccc = bbb[1];
    var r = /^\+?[1-9][0-9]*$/;
    if (r.test(ccc) && cccc.indexOf('jhtml') != -1) {
        var srcs = CryptoJS.enc.Utf8.parse(ccc);
        var k = CryptoJS.enc.Utf8.parse(s);
        var en = CryptoJS.AES.encrypt(srcs, k, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
        });
        var ddd = en.toString();
        ddd = ddd.replace(/\//g, "^");
        ddd = ddd.substring(0, ddd.length - 2);
        var bbbb = ddd + '.' + bbb[1];
        aa[aaa - 1] = bbbb;
        var uuu = '';
        for (i = 0; i < aaa; i++) {
            uuu += aa[i] + '/'
        }
        uuu = uuu.substring(0, uuu.length - 1);
        return uuu;
    }
    }
    console.log(req("http://ggzy.xzsp.tj.gov.cn:80/jyxxcggg/948547.jhtml"));
    
  • 方式2:js自帶的模塊CryptoJS,加理解的邏輯
    var CryptoJS = require("crypto-js");
    var encrypt_req = function(key,text) {
        var l = CryptoJS.enc.Utf8.parse(text);
        var e = CryptoJS.enc.Utf8.parse(key);
        var a = CryptoJS.AES.encrypt(l, e, {
            mode: CryptoJS.mode.ECB,
            padding: CryptoJS.pad.Pkcs7
        })
        return a.toString()  // 此方式返回base64  
        // return a.ciphertext.toString() // 返回hex格式的密文  
    }
    
    // ECB模式加密base64
    console.log(encrypt_req('qnbyzzwmdgghmcnm', '1025528'));
    
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript

六、Python執(zhí)行js

  • python調(diào)用js三種方式:
    • 要么用python現(xiàn)有的模塊替換js相同的邏輯,即python還原
    • 要么通過execjs/ py_mini_racer等執(zhí)行
    • 要么通過node部署服務(wù)開接口執(zhí)行
  • python的execjs庫調(diào)用js
    """通過execjs執(zhí)行js"""
    import execjs  # pip install execjs
    from loguru import logger
    list_url = 'http://ggzy.zwfwb.tj.gov.cn:80/jyxxcgjg/1025528.jhtml'
    with open('./aes.js', "r", encoding='utf-8') as f:
        ctx = execjs.compile(f.read())
    true_url = ctx.call('req', list_url)
    logger.info(f"詳情的url:{list_url} >真實(shí)的url: {true_url}")
    
    #######分割線#######
    import execjs  # pip install execjs
    from loguru import logger
    list_url = 'http://ggzy.zwfwb.tj.gov.cn:80/jyxxcgjg/1025528.jhtml'
    ccc = list_url.split('/')[-1].rstrip('.jhtml')
    with open('./aes.js', "r", encoding='utf-8') as f:
        ctx = execjs.compile(f.read())
    suffix = ctx.call('encrypt_req', 'qnbyzzwmdgghmcnm', '1025528').replace('/', '^')[:-2]
    true_url = f"http://ggzy.zwfwb.tj.gov.cn:80/jyxxcgjg/{suffix}.jhtml"
    logger.info(f"詳情的url:{list_url} >真實(shí)的url: {true_url}")
    
    
  • python自帶的aes庫還原邏輯:pip install pycryptodome
    from loguru import logger
    from Crypto.Cipher import AES
    from Crypto.Util.Padding import pad
    import base64
    
    
    def aes_ecb_encrypt_text(decrypt_text: str, key: str) -> str:
        """
        加密AES_ECB明文
        :param decrypt_text: 待加密的字符串
        :param key: 密鑰
        :return:  加密后的數(shù)據(jù)
        """
        aes2 = AES.new(key.encode('utf-8'), AES.MODE_ECB)
        encrypt_text = aes2.encrypt(pad(decrypt_text.encode('utf-8'), AES.block_size, style='pkcs7'))
        encrypt_text = str(base64.encodebytes(encrypt_text), encoding='utf-8').replace("\n", "")
        return encrypt_text
    
    
    list_url = 'http://ggzy.zwfwb.tj.gov.cn:80/jyxxcgjg/1025528.jhtml'
    ccc = list_url.split('/')[-1].rstrip('.jhtml')
    decrypt_str = ccc
    key_str = "qnbyzzwmdgghmcnm"
    encrypt_str = aes_ecb_encrypt_text(decrypt_str, key_str).replace('/', '^')[:-2]
    true_url = list_url.replace(decrypt_str, encrypt_str)
    logger.info(f"詳情的url:{list_url} >真實(shí)的url: {true_url}")
    
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript

七、知識(shí)星球-時(shí)光漫漫

  • web端查看如下
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript
  • app端查看如下
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript
    爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB,python爬蟲逆向案例小白初級(jí),爬蟲,javascript

到了這里,關(guān)于爬蟲小白-如何調(diào)試列表頁鏈接與詳情鏈接不一樣并三種方式j(luò)s逆向解決AES-ECB的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • vue列表跳轉(zhuǎn)詳情,記錄列表滾動(dòng)不變

    記錄主元素 當(dāng)引入keep-alive的時(shí)候,頁面第一次進(jìn)入,鉤子的觸發(fā)順序created- mounted- activated,退出時(shí)觸發(fā)deactivated。 當(dāng)再次進(jìn)入(前進(jìn)或者后退)時(shí),只觸發(fā)activated。

    2024年02月07日
    瀏覽(16)
  • 黑馬本地生活(列表頁面,詳情頁面)

    黑馬本地生活(列表頁面,詳情頁面)

    ??浩澤學(xué)編程 :個(gè)人主頁 ??? 推薦專欄 :《深入淺出SpringBoot》《java項(xiàng)目分享》 ??????????????《RabbitMQ》《Spring》《SpringMVC》 ??學(xué)無止境,不驕不躁,知行合一 在學(xué)習(xí)微信小程序時(shí),黑馬給出了列表頁面講解,這里我再補(bǔ)充一個(gè)黑馬沒有講訴的商家詳情頁面代碼

    2024年01月21日
    瀏覽(20)
  • h5移動(dòng)端頁面調(diào)試工具Chii與 weinre 一樣的遠(yuǎn)程調(diào)試工具

    與?weinre?一樣的遠(yuǎn)程調(diào)試工具,主要是將 web inspector 替換為最新的?chrome devtools frontend. 電腦上跑一個(gè)chii服務(wù),把對(duì)應(yīng)的js嵌入h5頁面內(nèi),用手機(jī)訪問h5頁面,chrome內(nèi)看chii服務(wù)地址即可找到對(duì)應(yīng)管理控制臺(tái) ? ? 可以通過 npm 安裝。 ? 用下面的命令開啟服務(wù)。 ? 在你的頁面中使

    2024年02月08日
    瀏覽(15)
  • 列表進(jìn)入詳情頁傳參問題(vue的問題)

    例如商品列表頁面前往商品詳情頁面,需要傳一個(gè)商品id; c頁面的路徑為 http://localhost:8080/#/detail?id=1 ,可以看到傳了一個(gè)參數(shù) id=1 ,并且就算刷新頁面id也還會(huì)存在。此時(shí)在c頁面可以通過id來獲取對(duì)應(yīng)的詳情數(shù)據(jù),獲取id的方式是 this.$route.query.id vue傳參方式有:query、params+動(dòng)

    2024年01月21日
    瀏覽(22)
  • 【Django | 開發(fā)】面試招聘信息網(wǎng)站(美化admin站點(diǎn)&添加查看簡歷詳情鏈接)

    【Django | 開發(fā)】面試招聘信息網(wǎng)站(美化admin站點(diǎn)&添加查看簡歷詳情鏈接)

    ???♂? 個(gè)人主頁: @計(jì)算機(jī)魔術(shù)師 ????? 作者簡介:CSDN內(nèi)容合伙人,全棧領(lǐng)域優(yōu)質(zhì)創(chuàng)作者。 ?? 推薦一款找工作神器網(wǎng)站: 寶藏網(wǎng)站 |筆試題庫|面試經(jīng)驗(yàn)|實(shí)習(xí)招聘內(nèi)推| 該文章收錄專欄 ?—【Django | 項(xiàng)目開發(fā)】從入門到上線 專欄—? 由于前文所開發(fā)的簡歷投遞,并將簡

    2023年04月20日
    瀏覽(36)
  • 列表進(jìn)入詳情頁的傳參問題(vue的問題)

    c頁面的路徑為 http://localhost:8080/#/detail?id=1 ,可以看到傳了一個(gè)參數(shù)id=1,并且就算刷新頁面id也還會(huì)存在。此時(shí)在c頁面可以通過id來獲取對(duì)應(yīng)的詳情數(shù)據(jù),獲取id的方式是 this.$route.query.id vue傳參方式有:query、params+動(dòng)態(tài)路由傳參。 說下兩者的區(qū)別: 1.query通過path切換路由,

    2024年01月19日
    瀏覽(23)
  • uniapp:返回上頁刷新的方式,常用于詳情返回列表

    在使用uniapp開發(fā)的過程中,我相信,我們都一定遇見過如下的場景: 進(jìn)入了一個(gè)列表頁,列表頁進(jìn)入詳情頁,在詳情頁進(jìn)行了一些操作,比如,刪除,修改,編輯,提交,成功之后返回到列表頁,那么這個(gè)時(shí)候,如果我們的列表頁不進(jìn)行數(shù)據(jù)的刷新,就會(huì)給用戶一種錯(cuò)覺,我

    2024年02月16日
    瀏覽(14)
  • 管理后臺(tái)項(xiàng)目-05-SKU列表-上下架-詳情抽屜效果-深度選擇器

    管理后臺(tái)項(xiàng)目-05-SKU列表-上下架-詳情抽屜效果-深度選擇器

    目錄 1-SKU列表 2-SKU上下架 ?3-SKU詳情 當(dāng)用戶點(diǎn)擊Sku管理,組件掛載的時(shí)候,我們需要獲取sku列表信息;但是獲取列表方法在分頁列表改變頁碼和每頁顯示大小的時(shí)候也需要觸發(fā),我們封裝為一個(gè)方法。 //sku列表的接口 /admin/product/list/{page}/{limit} export const reqSkuList = (page,limit)=

    2023年04月24日
    瀏覽(17)
  • 爬蟲學(xué)習(xí)記錄之Python 爬蟲實(shí)戰(zhàn):爬取研招網(wǎng)招生信息詳情

    爬蟲學(xué)習(xí)記錄之Python 爬蟲實(shí)戰(zhàn):爬取研招網(wǎng)招生信息詳情

    【簡介】本篇博客 為愛沖鋒 ,爬取北京全部高校的全部招生信息,最后持久化存儲(chǔ)為表格形式,可以用作篩選高校。 此處導(dǎo)入本次爬蟲所需要的全部依賴包分別是以下內(nèi)容,本篇博客將爬取研招網(wǎng)北京所有高校的招生信息,主要爬取內(nèi)容為學(xué)校,考試方式,所在學(xué)院,專業(yè)

    2024年01月24日
    瀏覽(26)
  • 釘釘對(duì)接打通金蝶云星空獲取流程實(shí)例列表詳情(宜搭)接口與其他應(yīng)收單接口

    釘釘對(duì)接打通金蝶云星空獲取流程實(shí)例列表詳情(宜搭)接口與其他應(yīng)收單接口

    釘釘(DingTalk)是阿里巴巴集團(tuán)專為中國企業(yè)打造的免費(fèi)溝通和協(xié)同的多端平臺(tái),提供PC版,Web版和手機(jī)版,有考勤打卡、簽到、審批、日志、公告、釘盤、釘郵等強(qiáng)大功能。 金蝶K/3Cloud在總結(jié)百萬家客戶管理最佳實(shí)踐的基礎(chǔ)上,提供了標(biāo)準(zhǔn)的管理模式;通過標(biāo)準(zhǔn)的業(yè)務(wù)架構(gòu):

    2024年02月14日
    瀏覽(29)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包