您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Python中X筆網密碼加密分析的過程,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
先抓包看看這次分析的參數【圖1-1】
這個參數的值看著像Base64
,我們不急著下結論,先搜索參數名看看。
有讀者朋友糾結于搜索password = or password:
這樣需要搜索兩遍是不是浪費時間了,不如直接搜索password
來的方便快捷。
咸魚之所以這樣搜索是出于自己的習慣,定位加密位置的方法有很多大家有興趣可以多嘗試不要局限于搜索參數,例如:Js Hook,XHR 斷點等等,怎么舒服怎么來就好。
經過搜索參數名password:
在一個文件中定位到 3 處疑似加密的位置。【圖1-2】
這里有兩種方法判斷加密位置:
給所有搜索到的結果打上斷點,再次刷新看看進入到哪個斷點當中
閱讀上下文,分析大概的代碼邏輯
我們用第一種試試,打上斷點重新發起請求,可以看到成功斷上了。【圖1-3】
這里的this.password
是測試的密碼,我們需要分析的就是這個this.encrypt
的邏輯是什么樣的。
我們進入到this.encrypt
這個函數中,發現有熟悉的 RSA 加密標志this.publicKey
【圖1-4】
在文件中再搜索一次publicKey
,能夠看到文件中已經聲明了這個變量【圖1-5】
繼續進入到函數內部查看邏輯,發現進入的就是加密邏輯的文件了。【圖1-6】
這一整個流程分析下來,可以發現前面的傳參部分,在Python
調用中我們完全可以跳過,只要給【圖1-6】中的Js加密邏輯傳入publicKey
與明文密碼
就可以實現這個網站的密碼加密邏輯了,既然這么簡單,我們就動手試試。
接上面的分析,我們直接復制了【圖1-6】截圖所示的全部代碼。
接著在編輯器中加上一些我們自己的邏輯類似這樣【圖2-1】。
注:前939行都是復制的 Js 文件代碼
試著運行一下,看看報錯。
運行的報錯提示,window is undefine
【圖2-2】,遇到這種情況我們可以試試在代碼上加上window
的聲明。
var window = {}
再次運行看看,這里再次提示{} is not a function
,【圖2-3】到這里新手朋友有點慌了,不知道怎么處理。
比較方便的處理方式是直接在(function(av) {
前加上!
,就是這么簡單。
具體用法,這里套用一下百度:
使用括號包裹定義函數體,解析器將會以函數表達式的方式去調用定義函數。也就是說,任何能將函數變成一個函數表達式的作法,都可以使解析器正確的調用定義函數。而 ! 就是其中一個,而 + - || 都有這樣的功能。
繼續調試,這次提示變成了navigator is not defined
【圖2-4】
有了上次的經驗,我們在代碼里加入聲明navigator
。
var navigator = {}
再次運行就得到加密后的結果咯~【圖2-5】
這次的加密是比較簡單的 RSA 加密,使用文件中包含的公鑰對密碼的值進行加密,且Js代碼沒有進過混淆,適合新手練手增加手感。
以上就是Python中X筆網密碼加密分析的過程,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。