練習平臺:逆向賬號密碼
https://login1.scrape.center/
直接打開平臺,輸入密碼賬號,抓包找到加密的參數攜帶的位置,這邊我們找到的是一個叫token的加密參數,這個參數的攜帶是一個密文
我們首先考慮一下搜索這個加密的參數位置,直接找到的話可以不必要使用一些調試手段。
很幸運第一個實際上就是這段加密的位置所在,那么我門直接使用這段加密的位置
目的還是這個e的內容的獲取,那么我們直接拷貝下來這個e的內容。
var e = c.encode(JSON.stringify(this.form));
我們發現內層是一個將form轉換成json的一個過程,那么這邊我們直接查找這個form看一下這個form是什么內容。
可以明顯看出來這是一個對象,這個對象中有兩個屬性,一個是username 一個是password ,那么我們可以直接獲得這個對象,使用python傳遞即可。
?現在主要就是找到e,encode的加密函數的位置,然后進行補環境就可以解決這個問題了。
搜索直接跳轉到這個位置。
一路復制粘貼查找出現報錯的位置
繼續開始找
復制粘貼
出現這個錯誤
這邊可以看出來是一個三目運算符,里面是有一些瀏覽器環境檢查的,我們直接找到這個值就可以。不需要在替換,替換是一個比較復雜的過程。
直接調試到這個位置,瀏覽器輸入
?
buffer ? buffer.from && Uint8Array && buffer.from !== Uint8Array.from ? function (e) {return (e.constructor === buffer.constructor ? e : buffer.from(e)).toString("base64")}: function (e) {return (e.constructor === buffer.constructor ? e : new buffer(e)).toString("base64")}: function (e) {return btoa(utob(e))}
你想要跳轉到這里需要刷新一下,主要是這個是頁面加載中的,并不是網絡請求中的。
所以這個_encode就是?
function (e) {return btoa(utob(e))}
直接找到這個函數缺少的部分utob
找到缺少的環境,re_utob 和cb_utob
復制粘貼到編譯器
成功
var cb_utob = function (e) {if (e.length < 2) {var r = e.charCodeAt(0);return r < 128 ? e : r < 2048 ? fromCharCode(192 | r >>> 6) + fromCharCode(128 | 63 & r) : fromCharCode(224 | r >>> 12 & 15) + fromCharCode(128 | r >>> 6 & 63) + fromCharCode(128 | 63 & r)}r = 65536 + 1024 * (e.charCodeAt(0) - 55296) + (e.charCodeAt(1) - 56320);return fromCharCode(240 | r >>> 18 & 7) + fromCharCode(128 | r >>> 12 & 63) + fromCharCode(128 | r >>> 6 & 63) + fromCharCode(128 | 63 & r)}var utob = function (e) {return e.replace({}, cb_utob)}var _encode = function (e) {return btoa(utob(e))}var encode = function (e, r) {return r ? _encode(String(e)).replace(/[+\/]/g, (function (e) {return "+" == e ? "-" : "_"})).replace(/=/g, "") : _encode(String(e))}form = {username: "1",password: "1"}var e = encode(JSON.stringify(form));console.log(e)