最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python+JS?實(shí)現(xiàn)逆向?SMZDM?的登錄加密

 更新時(shí)間:2022年05月17日 17:07:27   作者:??夢(mèng)想橡皮擦????  
這篇文章主要介紹了python+JS?實(shí)現(xiàn)逆向?SMZDM?的登錄加密,文章通過利用SMZDM平臺(tái)展開詳細(xì)的內(nèi)容介紹,需要的小伙伴可以參考一下

實(shí)戰(zhàn)場景

這次被我們盯上的平臺(tái)是【SMZDM】。

本次目標(biāo)站點(diǎn)是:aHR0cHM6Ly93d3cuc216ZG0uY29tLw==

正式開始前,先注冊(cè)一個(gè)賬號(hào),然后模擬一下登錄,看一下有哪些參數(shù)被偷偷的藏起來了~

當(dāng)看到登錄之后的所有請(qǐng)求參數(shù)時(shí),我們還是默默的把站點(diǎn)關(guān)閉,撤吧。

從上圖可以看到username,password是重要加密區(qū),geetest_開頭的參數(shù)是下述點(diǎn)選驗(yàn)證碼涉及的內(nèi)容,本階段不做拆解,可以持續(xù)關(guān)注后續(xù)驗(yàn)證碼部分邏輯。

登錄的點(diǎn)選驗(yàn)證碼可以先忽略,這個(gè)階段搞定它不是很容易。

接口請(qǐng)求參數(shù)是:

  • 請(qǐng)求網(wǎng)址: zhiyou.smzdm.com/user/login/ajax_normal_check
  • 請(qǐng)求方法: POST

參數(shù)分析

本次我們先不添加斷點(diǎn),先通過請(qǐng)求啟動(dòng)器進(jìn)行分析,打開該鏈接的請(qǐng)求調(diào)用堆棧,然后依次分析相關(guān)地址。

 根據(jù)經(jīng)驗(yàn)可以發(fā)現(xiàn)有一個(gè)common_submit函數(shù),其所在的文件是window.js,可以重點(diǎn)關(guān)注。

接下來添加一個(gè) XHR 斷點(diǎn),關(guān)鍵字是login/ajax_normal_check。

斷點(diǎn)打住之后,可以直接進(jìn)入目標(biāo)函數(shù):

結(jié)果直接找到了相關(guān)加密邏輯,如下圖所示:

核心代碼進(jìn)行提取,然后進(jìn)一步進(jìn)行分析。

var _ = login_obj.encryptPassword(i);
(i = _), (r = btoa(r));

結(jié)果發(fā)現(xiàn)login_obj.encryptPassword函數(shù)竟然調(diào)用了一個(gè)新的接口。

encryptPassword: function(r) {
        var t = null;
        return $.ajax({
            url: "http://zhiyou.smzdm.com/user/login/pre",
            type: "get",
            async: !1,
            dataType: "json"
        }).done(function(e) {
            var o;
            t = e && 0 != e.error_code ? null : ((o = new JSEncrypt).setPublicKey(atob(e.data.pub_key)),
            o.encrypt(r))
        }),
        t
    },

關(guān)于賬號(hào)使用的是 js btoa,這個(gè)沒有什么特別的,就是簡單的 base64 加密

通過開發(fā)者控制臺(tái),測(cè)試使用 btoa加密 12345,然后在通過 Python 進(jìn)行相同的加密。

import base64
wtext = "12345"
# 編碼
a = base64.b64encode(wtext.encode())
print(a.decode()) # 輸出 MTIzNDU=

二者結(jié)果一致,username參數(shù)解決。

下面繼續(xù)看password參數(shù),密碼加密的流程是:

  • 通過一個(gè) API 獲取 pub_key;
  • 對(duì) pub_key進(jìn)行atob編碼;
  • 設(shè)置JSEncryptRSAKey加密 KEY;
  • 對(duì)用戶密碼進(jìn)行加密。

測(cè)試 pub_key 加密接口是否可以直接調(diào)用

import requests
headers = {
    "Host": "zhiyou.smzdm.com",
    "Accept": "application/json, text/javascript, */*; q=0.01",
    "Referer": "https://zhiyou.Python加密混淆.com/user/login/",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) 自己的 UA"
}
res = requests.get('https://zhiyou.Python加密混淆.com/user/login/pre', headers=headers, timeout=3)
print(res.text)

運(yùn)行代碼得到如下響應(yīng),其中pub_key也被獲取到。 

 多次測(cè)試接口之后,發(fā)現(xiàn)錯(cuò)誤,觸發(fā)了賬戶限制,在大家編碼的時(shí)候,建議多準(zhǔn)備幾個(gè)不同的賬號(hào),防止被封禁。

 進(jìn)一步調(diào)試發(fā)現(xiàn) JS 加密使用的是一個(gè)插件,直接下載對(duì)應(yīng) JS 如下:

https://res.Python混淆.com/resources/public/user/zhiyou/js/jsencrypt.min.js

在本地搭建一個(gè) JS 代碼可以運(yùn)行的環(huán)境 編寫如下代碼,其中涉及上述提及的文件。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>測(cè)試環(huán)境</title>
    <script src="jsencrypt.min.js"></script>
    <script>
      function getQueryVariable(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i = 0; i < vars.length; i++) {
          var pair = vars[i].split("=");
          if (pair[0] == variable) {
            return pair[1];
          }
        }
        return false;
      }
      pk = getQueryVariable("pk");

      b64 = atob(pk);
      (o = new JSEncrypt()).setPublicKey(b64);

      aaa = o.encrypt("123456");
      document.write(aaa);
    </script>
  </head>
  <body></body>
</html>

然后可以用 Selenium 進(jìn)行調(diào)用,通過 URL 參數(shù)傳遞 pub_key 即可。

邏輯也非常簡單,Python 調(diào)用接口生成 KEY,然后將 KEY 傳遞到我們自己構(gòu)建的 JS 環(huán)境中,最后通過 Python 調(diào)用目標(biāo)站點(diǎn)(自己搭建)的地址,獲取加密值,然后進(jìn)行傳遞。

到此這篇關(guān)于python+JS 實(shí)現(xiàn)逆向 SMZDM 的登錄加密的文章就介紹到這了,更多相關(guān)SMZDM 登錄加密內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用Python解數(shù)獨(dú)的方法示例

    用Python解數(shù)獨(dú)的方法示例

    這篇文章主要介紹了用Python解數(shù)獨(dú)的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python-pymongo常用查詢方法含聚合問題

    python-pymongo常用查詢方法含聚合問題

    這篇文章主要介紹了python-pymongo常用查詢方法含聚合問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 詳解OpenMV圖像處理的基本方法

    詳解OpenMV圖像處理的基本方法

    這篇文章主要介紹了OpenMV圖像處理的基本方法,包括感光元件的相關(guān)知識(shí)介紹,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作示例

    Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作示例

    這篇文章主要介紹了Python with關(guān)鍵字,上下文管理器,@contextmanager文件操作,結(jié)合實(shí)例形式分析了Python使用with關(guān)鍵字及上下文管理器、contextmanager進(jìn)行文件打開、讀寫、關(guān)閉等操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-10-10
  • python對(duì)excel文檔去重及求和的實(shí)例

    python對(duì)excel文檔去重及求和的實(shí)例

    下面小編就為大家分享一篇python對(duì)excel文檔去重及求和的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python數(shù)據(jù)處理numpy.median的實(shí)例講解

    Python數(shù)據(jù)處理numpy.median的實(shí)例講解

    下面小編就為大家分享一篇Python數(shù)據(jù)處理numpy.median的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python實(shí)現(xiàn)的簡單抽獎(jiǎng)系統(tǒng)實(shí)例

    python實(shí)現(xiàn)的簡單抽獎(jiǎng)系統(tǒng)實(shí)例

    這篇文章主要介紹了python實(shí)現(xiàn)的簡單抽獎(jiǎng)系統(tǒng),涉及Python隨機(jī)數(shù)及文件操作的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • Python用5行代碼寫一個(gè)自定義簡單二維碼

    Python用5行代碼寫一個(gè)自定義簡單二維碼

    今天小編就為大家分享一篇關(guān)于Python用5行代碼寫一個(gè)自定義簡單二維碼的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Python數(shù)據(jù)可視化之matplotlib.pyplot繪圖的基本參數(shù)詳解

    Python數(shù)據(jù)可視化之matplotlib.pyplot繪圖的基本參數(shù)詳解

    matplotlib.pyplot模塊是一個(gè)功能強(qiáng)大的畫圖模塊,可以對(duì)畫圖的多個(gè)參數(shù)進(jìn)行調(diào)整,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)可視化之matplotlib.pyplot繪圖基本參數(shù)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Python類的多重繼承問題深入分析

    Python類的多重繼承問題深入分析

    昨天在Python類的多重繼承那里糾結(jié)了好久,咨詢了不少高手之后,才完全搞明白,現(xiàn)在把類的特性整理下,供以后參考,也給有需要的小伙伴們參考下
    2014-11-11

最新評(píng)論

普定县| 望江县| 乌拉特后旗| 府谷县| 垦利县| 九龙城区| 梧州市| 庆城县| 渝北区| 库车县| 达日县| 丽江市| 汉阴县| 南乐县| 德兴市| 永泰县| 苏尼特左旗| 舒兰市| 大石桥市| 泰州市| 灌云县| 东台市| 中西区| 屏边| 蒲江县| 汉川市| 沾化县| 凌源市| 沁阳市| 崇信县| 高要市| 行唐县| 安化县| 吴旗县| 木里| 荣昌县| 泰宁县| 洛浦县| 鱼台县| 磐石市| 南安市|