close

作者論壇賬號:Akihi6

目標網站:aHR0cHM6Ly9tLmN0eXVuLmNuL3dhcC9tYWluL2F1dGgvbG9naW4/cmVkaXJlY3Q9JTJGbXk=

尋找加密函數入口

輸入郵箱、密碼點擊登錄抓取請求信息(user@163.com、654321)

這裡看到password加密了(des加密)

在請求中看堆棧信息(Initiator)可以看到login的信息,點進去看一下

可以看到password的賦值操作,在這行打上斷點重新請求一下

可以看到a.value是輸入的密碼,s.value是輸入的郵箱

複製這行在控制台打印一下,可以看到密碼就經過加密處理了

美化一下代碼,在控制台打印一下結果一樣

複製代碼 隱藏代碼encodeURI(Object(l["c"])(a.value, Object(l["f"])(Object(l["g"])(s.value))))l["c"](a.value, l["f"](l["g"](s.value)))

先找l["c"]方法,可以看到H方法,追進去看一下,

可以看到最後返回s.toString()s = p.a.TripleDES.encrypt(e, d, l)

這是參數e是傳參過來的、d是也是p.a的方法生成的、l也是p.a的方法生成的,找一下p.a在哪兒構建的,ctrl+f搜索後發現找不到,那就找p的構建

看到這裡就可以確定是webpack了

webpack處理第一種姿勢

這裡用漁佬(@漁滒 )的AST自動扣webpack

這裡附上神器地址

使用教程:ast自動扣webpack腳本實戰

源碼:漁滒 / webpack_ast

尋找加載器的js文件保存到本地

在password斷點文件中看一下有沒有加載器加載函數

在文件開頭可以看到r("854c")這個r肯定就是加載器了,在這行打一個斷點,重新刷新頁面

這裡可以看到r的函數體u(),追進去

這個u()就是加載器了,直接將這個js文件保存到本地

尋找函數模塊的js文件保存到本地

剛剛發現p是通過t.n(t('3452'))加載出來的在s = t("3452")打個斷點重新刷新頁面,發現這個的t就是我們的u構造器那就好辦了

F11單步追t("3452")就可以找到函數模塊,把這個文件保存到本地

使用大佬寫好的AST代碼

現在目錄下有3個文件

執行node .\webpack_mixer.js -l .\main.03a4fbe9.js -m .\chunk-vendors.f4efd280.js -o webpack_sdk.js

生成了扣好的webpack代碼

第二種姿勢

自己扣webpack

往上看找加載器 可以看到開頭function(e)先扣下來

將加載器(function(e) {裡面的全部內容}扣下來,封裝為匿名函數

聲明一個全部變量,再將加載器u賦值給use

先把函數模塊js文件保存下來

搜索3452,將3452傳給匿名函數

加載一下3452函數,window未定義,補上window

再次運行發現TypeError: Cannot read property 'call' of undefined這個錯誤,這個錯誤就是少函數模塊,然後發現3452裡面加載了其他函數模塊

將其他函數模塊粘過來,粘完之後運行就不報錯了

構造password生成代碼

將H()函數扣下來,生成p

這裡用漁佬的生成加載器賦給了module.exports,所以用module.exports加載3452,

調用H函數(這裡我將u賦值給了use,所以用use加載3452函數)發現不報錯了

之前美化的調用h方法的代碼就變成了

複製代碼 隱藏代碼// 第一步美化l["c"](a.value, l["f"](l["g"](s.value)))// 第二步美化H(a.value, l["f"](l["g"](s.value)))

這裡a.value和s.value之前分析過,a.value是密碼明文,s.value是郵箱

看一下l["f"](l["g"](s.value))幹了什麼,這裡看到就是給郵箱加了12個0

封裝加密函數

可以看到結果跟頁面結果一樣,至此加密完成!

--官方論壇

www.52pojie.cn

--推薦給朋友

公眾微信號:吾愛破解論壇

或搜微信號:pojie_52

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()