<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
這次被我們盯上的平臺是【SMZDM】。
本次目標站點是:aHR0cHM6Ly93d3cuc216ZG0uY29tLw==
。
正式開始前,先註冊一個賬號,然後模擬一下登入,看一下有哪些引數被偷偷的藏起來了~
當看到登入之後的所有請求引數時,我們還是默默的把站點關閉,撤吧。
從上圖可以看到username
,password
是重要加密區,geetest_
開頭的引數是下述點選驗證碼涉及的內容,本階段不做拆解,可以持續關注後續驗證碼部分邏輯。
登入的點選驗證碼可以先忽略,這個階段搞定它不是很容易。
介面請求引數是:
本次我們先不新增斷點,先通過請求啟動器進行分析,開啟該連結的請求呼叫堆疊,然後依次分析相關地址。
根據經驗可以發現有一個common_submit
函數,其所在的檔案是window.js
,可以重點關注。
接下來新增一個 XHR 斷點,關鍵字是login/ajax_normal_check
。
斷點打住之後,可以直接進入目標函數:
結果直接找到了相關加密邏輯,如下圖所示:
核心程式碼進行提取,然後進一步進行分析。
var _ = login_obj.encryptPassword(i); (i = _), (r = btoa(r));
結果發現login_obj.encryptPassword
函數竟然呼叫了一個新的介面。
encryptPassword: function(r) { var t = null; return $.ajax({ url: "//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 },
關於賬號使用的是 js btoa,這個沒有什麼特別的,就是簡單的 base64 加密
通過開發者控制檯,測試使用 btoa
加密 12345
,然後在通過 Python 進行相同的加密。
import base64 wtext = "12345" # 編碼 a = base64.b64encode(wtext.encode()) print(a.decode()) # 輸出 MTIzNDU=
二者結果一致,username
引數解決。
下面繼續看password
引數,密碼加密的流程是:
pub_key
;pub_key
進行atob
編碼;JSEncryptRSAKey
加密 KEY;測試 pub_key 加密介面是否可以直接呼叫
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)
執行程式碼得到如下響應,其中pub_key
也被獲取到。
多次測試介面之後,發現錯誤,觸發了賬戶限制,在大家編碼的時候,建議多準備幾個不同的賬號,防止被封禁。
進一步偵錯發現 JS 加密使用的是一個外掛,直接下載對應 JS 如下:
https://res.Python混淆.com/resources/public/user/zhiyou/js/jsencrypt.min.js
在本地搭建一個 JS 程式碼可以執行的環境 編寫如下程式碼,其中涉及上述提及的檔案。
<!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>測試環境</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 進行呼叫,通過 URL 引數傳遞 pub_key 即可。
邏輯也非常簡單,Python 呼叫介面生成 KEY,然後將 KEY 傳遞到我們自己構建的 JS 環境中,最後通過 Python 呼叫目標站點(自己搭建)的地址,獲取加密值,然後進行傳遞。
到此這篇關於python+JS 實現逆向 SMZDM 的登入加密的文章就介紹到這了,更多相關SMZDM 登入加密內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45