58同城登陸參數password值,js解密

該文章主要提供交流學習使用,請勿利用其進行不當行爲!
如本篇文章侵犯了貴公司的隱私,請聯繫我立刻刪除!

個人博客:http://www.feastawlisao.com/
歡迎關注個人公衆號:pythonORjs

今天分享一下58同城的登陸參數password的解密過程。
首先我們打開58同城,打開開發者工具,輸入賬號密碼,可以先輸入錯誤的,進行抓包。然後進行查找,如下圖所示。
在這裏插入圖片描述
開始分析參數,username是賬號,password就是密碼,token是非固定的,其他參數都是一些正常的參數,攜帶即可,這裏就不過多講解,爲什麼這些參數攜帶即可,如有興趣可以留言。
我們呢就開始找password藏在哪個js當中,經過搜索排查後發現在藏在mobileLoginxxxxx.js當中,裏面有很多n.encrypt(e.password),經過調試,加密是從這裏開始進行的,我們下斷點,發現,e.password就是我們輸入的密碼,encrypt這個函數,經常搞加密的,一眼就能看出來這是個rsa加密,哈哈哈,所以,我們進入encrypt函數裏進行調試。
在這裏插入圖片描述
進入函數後,裏面就顯示了加密過程,我們一一分析即可。經過調試,我們可以寫成這樣。

e_prototype_encrypt = function (e) {
    var rsaExponent = "010001"
    var rsaModulus = "008baf14121377fc76eaf7794b8a8af17085628c3590df47e6534574efcfd81ef8635fcdc67d141c15f51649a89533df0db839331e30b8f8e4440ebf7ccbcc494f4ba18e9f492534b8aafc1b1057429ac851d3d9eb66e86fce1b04527c7b95a2431b07ea277cde2365876e2733325df04389a9d891c5d36b7bc752140db74cb69f"
    r = 1411093327735 - (new Date).getTime(),
        o = (new Date).getTime() + r;
    encryptString(o + e, rsaExponent, rsaModulus)
}

在這裏插入圖片描述
這裏說一下,調試工具有很多,wt-js,樂易助手,WebStorm ,都可以進行調試。
此處,修改完代碼後,我們進入encryptString函數裏面。然後把代碼摳出來,因爲裏面只有600行代碼,我們全部摳出來。然後運行,發現未定義,其實不是這個函數未定義,因爲代碼裏面可以搜到,其實是window未定義,,我們加上window = this;即可,全局意思。
在這裏插入圖片描述
然後我們函數傳入密碼,運行。可以發現,我們用js運行出來的,可網站的一模一樣。大功告成撒。
在這裏插入圖片描述
有人說,我把rsa的rsaExponent和rsaModulus參數寫死了,會不會有問題,這個可以直接搜索一下,這兩個參數是一直都不會變的。
在這裏插入圖片描述
至於token參數,也是接口返回的。和上面的rsa參數一樣,都是通過刷新login頁面返回的,可以試一下。
在這裏插入圖片描述
用python調用一下js代碼,然後post傳入參數即可。
完整代碼,需要python or js代碼可以留言撒。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章