您好,登錄后才能下訂單哦!
這篇文章主要講解了“Python如何扣取一個完整的逆向數據”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Python如何扣取一個完整的逆向數據”吧!
aHR0cDovL3NlbGxlci5jaHVjaHVqaWUuY29tL3NxZS5waHA/cz0vVXNlci9pbmRleA==
這個加密太簡單了,五秒定位真的不是吹,所以直接來。
輸入錯誤的賬號密碼,發起登陸請求,可以看到登錄包里有個password
的加密字段。所以我們依次搜索password:
or password :
or password=
or password =
很快得到下面的結果【圖1-1】,直接用 Python 實現就完事了~
aHR0cHM6Ly93d3cud2VpYm8uY29tL2xvZ2luLnBocA==
用 Chrome 瀏覽器抓包相信大家都會,前面抓包我們跳過,直接到加密參數分析的地方。
Tip: 這次的加密不是異步的 不要在 XHR 選項卡傻乎乎的等了。
X博登陸框是嵌在頁面中的加上X博的登陸頁面圖片以及要加載的東西很多,所以我們需要注意的包主要有兩個:
登陸前返回相關加密秘鑰的包【圖2-1】
發起登陸請求的包【圖2-2】
到這里就很清晰了,我們搞定 su 和 sp 就完事了。
先來看看 su 這個其實不要搜索,看著是不是很像我們開頭的編碼結果,由 a-zA-Z[0-9]+/= 這幾種字符組成的編碼 熟悉的就只有 Base64 , 我們直接找一個在線工具驗證一下我們的猜想。【圖2-3】
當然我們也可以試試搜索 參數名 su 【圖2-4】,很明顯搜索結果也驗證了我們的猜想。
接下來看看 sp
在我們上面搜索 su 的地方我們找到了密碼加密的地方,已經用紅框框出主要的邏輯【圖2-5】,接下來我們打上斷點找找缺失的參數都是什么。
這里的參數都是比較簡單的首先是 me.servertime 、me.rsaPubkey 和 me.nonce【圖2-6】 這三個參數在上一個請求包都有同名的參數返回可以參考【圖2-1】。
我們現在已經找齊了全部的參數,接下來需要切換到 webstorm 中調試出我們整體的加密算法。
直接粘貼 789 - 791 行的代碼到編輯框中補全成下面這樣。
function get_sp() {
var f = new sinaSSOEncoder.RSAKey;
f.setPublic(me.rsaPubkey, "10001");
b = f.encrypt([me.servertime, me.nonce].join("\t") + "\n" + b)
return b
}
get_sp()
雖然知道運行肯定報錯,但是我們需要的就是報錯的信息。【圖2-7】
提示 sinaSSOEncoder is not defined
,我們回到瀏覽器調試窗口找 sinaSSOEncoder
在哪兒定義的。可以直接在頁面中搜索 var sinaSSOEncoder
結果就只有一個【圖2-8】
接下來復制 sinaSSOEncoder
的全部內容到編輯器中,第1048-1981行。繼續運行并提示navigator is not defined
,我們定義它為{}
。接下來會提示 me
未定義【圖2-9】。
但是我們調試過都知道這個 me.rsaPubkey 是在【圖2-1】中返回的,所以我們把它替換掉。同理替換到我們已知的的其他參數。現在就只剩下 b
參數是未知的了。
我們向下運行,可以看到b
參數就是我們輸入的密碼【圖2-10】,我們繼續替換再次運行,發現沒有東西輸出,也沒有報錯,我們在函數中加上一句 打印語句,看看返回的 b
是什么結果,可以看到已經得到了加密后的結果了。【圖2-11】
感謝各位的閱讀,以上就是“Python如何扣取一個完整的逆向數據”的內容了,經過本文的學習后,相信大家對Python如何扣取一個完整的逆向數據這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。