大概我們知道要分析的字段是nloginpwd,其他字段不清楚。我們只是上下查看其他數據包。根據pubkey,我們猜測加密方式很可能是RSA。繼續看其他包,找到有價值的get包。
信息是:
沒有找到明確的關鍵詞,但是可以猜測bg,challenge,patch應該和我們的加密參數有關,但是我們不確定,只好繼續分析加密的js片段:
有幾個字段是$ ("# ")格式的,這個表示來自頁面,所以看看頁面的源代碼。
果然,我在post表單中發現了很多有價值的東西,其中只有兩個參數需要單獨獲取,其余的都是從html源代碼中解析出來的。
授權代碼源
是獲取的源代碼中的壹個值,然後再看源代碼。
好像是驗證碼操作時觸發的請求,返回的authcode的值,檢查authcode請求的數據包。
這個要求看起來不太友好。有幾個可疑的加密字段。我們暫且把這個參數放在壹邊,繼續分析我們密碼的加密。
進壹步進入getEntryPTPWD ($ ('# nloginpwd ')。val())並檢查源代碼。
核心只有兩行。
encrypt . setpublickey(pubKey);返回encrypt . encrypt(pwd);毫無疑問,這壹定是RSA加密。繼續查看源代碼。單個源代碼文件有3300多行,刪節版如下。
JSEncrypt是前端用來實現RSA加密的庫。好像應該是比較規範的,所以盡量重寫。將所有源代碼復制到node.js會提示導航器和窗口未定義。這個問題很簡單,在文件頭裏定義了。
var navigator = this
var窗口= this
然後試著在文件末尾寫壹個調用程序。
有可能成功返回RSA加密結果。
JD。COM的post請求並不太難,參數也可以在源代碼中找到,但他的難點在於發送post請求之前的壹個get請求,這個請求與驗證和用戶名有關。簡單看壹下有點復雜,我就留在第二篇講如何獲取authcode參數的其他參數。
Id:巨蟒之戰
|左|哲|鐘:巨蟒之戰
專註Python,專註學習-實踐-總結網絡爬蟲和RPA。
喜歡研究和分享技術瓶頸,歡迎關註。
獨自學習沒有朋友是無知的!