前端加密主流的有這麼幾種方式:RSA、MD5、自定義加密函數,其中自定義加密函數的可變性更加強,在實際分析中也更加有難度。

今天分析一個自定義加密的網站來說明這一點,網站是空中網,首先填個假信息抓個包看看。

表單數據

j:j

(empty)type:1service:passport.kongzhong.com/username:18328491111password:368c041f87be04f72d3fvcode:toSave:0_:1547992251984比較意外的是這個網站是以get方式登陸的,也是比較奇特了。看password欄位不倫不類的,那自定義加密函數的幾率比較大,然後全局收索password

一番查詢之後沒有明顯的加密相關的js,但是發現了一個eval加密的js,那這就很可疑了。

eval解密再看這段js函數其中有兩處是有價值的function encrypt ()this.encrypt(pwd, this.j_data["dc"])很明顯這就是密碼加密的方式,果真是自定義的加密方式var KZLoginHandler = {······param += "&password=" + this.encrypt(pwd, this.j_data["dc"]);

······

encrypt: function(str, pwd) { if (pwd == null || pwd.length <= 0) { return null }; var prand = ""; for (var i = 0; i < pwd.length; i++) { prand += pwd.charCodeAt(i).toString() }; var sPos = Math.floor(prand.length / 5);

var mult = parseInt(prand.charAt(sPos) + prand.charAt(sPos * 2) + prand.charAt(sPos * 3) + prand.charAt(sPos * 4) + prand.charAt(sPos * 5));

var incr = Math.ceil(pwd.length / 2); var modu = Math.pow(2, 31) - 1; if (mult < 2) { return null }; var salt = Math.round(Math.random() * 1000000000) % 100000000; prand += salt; while (prand.length > 10) { var a = prand.substring(0, 1);

var b = prand.substring(10, prand.length);

if (b.length > 10) { prand = b } else { prand = (parseInt(a) + parseInt(b)).toString() } }; prand = (mult * prand + incr) % modu; var enc_chr = ""; var enc_str = "";

for (var i = 0; i < str.length; i++) {

enc_chr = parseInt(str.charCodeAt(i) ^ Math.floor((prand / modu) * 255)); if (enc_chr < 16) { enc_str += "0" + enc_chr.toString(16) } else enc_str += enc_chr.toString(16); prand = (mult * prand + incr) % modu }; salt = salt.toString(16); while (salt.length < 8) salt = "0" + salt; enc_str += salt;

return enc_str

}};然後繼續看加密的js,encrypt(pwd, this.j_data["dc"]),還需要一個this.j_data["dc"],這個應該是伺服器傳回的的,類似密鑰的東西,然後再看其他幾個請求,其中一個請求返回了dc

到此這個網站的密碼加密方式我們就很清楚了,在打開網站的時候伺服器會返回一串字元串,用於加密,加密的js是通過eval方式處理的。------------------------------ID:Python之戰|作|者|公(zhong)號:python之戰

專註Python,專註於網路爬蟲、RPA的學習-踐行-總結

喜歡研究技術瓶頸並分享,歡迎圍觀,共同學習。獨學而無友,則孤陋而寡聞!---------------------------

推薦閱讀:

相关文章