<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python 爬蟲進階必備 | 關(guān)于某數(shù) 4 代 XHR 參數(shù) MmEwMD 的分析

          共 2319字,需瀏覽 5分鐘

           ·

          2022-01-16 21:21

          點擊上方“咸魚學(xué)Python”,選擇“加為星標(biāo)

          第一時間關(guān)注Python技術(shù)干貨!


          f1d96b4bf98c9a15b2a1b1338283faa9.webp

          圖源:極簡壁紙

          今日網(wǎng)站

          現(xiàn)在 web js 逆向分析真的好卷啊

          關(guān)于某數(shù) 4 代的 cookie 分析文章網(wǎng)上已經(jīng)好多了,很多大佬已經(jīng)開始轉(zhuǎn)戰(zhàn) app 逆向,所以趁著最后蹭一蹭熱度發(fā)一下關(guān)于 XHR 參數(shù) MmEwMD ?的分析文章

          aHR0cDovL3d3dy5zaHRkc2MuY29t

          抓包分析

          因為是 xhr 參數(shù),所以主要關(guān)注的界面還是xhr過濾器,打開網(wǎng)站可以過濾出下面這樣的請求

          33bf142832a89ccbf7b642cf581d116e.webp

          我們就拿這個請求為例,分析這個例子,先要把 debugger 先過了

          7eb4b86ecb138c22cff9b1498a366d91.webp

          像這樣的 debugger 反調(diào)試大家應(yīng)該都會吧,這里通過never pause here就能繞過了

          跳過之后,就是下一個 debugger 了,使用同樣的方法就行

          7ee5de2df900c827ebb66cffb2f7eb10.webp

          至于其他繞過的方法也是可以的,能繞過不影響調(diào)試就過。

          這里就是簡單提一嘴大家注意一下

          定位加密

          多點幾下網(wǎng)頁,應(yīng)該可以注意到所有的請求鏈接都有帶上MmEwMD 這個參數(shù)

          之前教給大家的搜索大法在這里當(dāng)然就失效了,畢竟是曾經(jīng)的天花板,這點小防護還是有的

          777cc0f5cd9b13b9f5e538eae859f1ee.webp

          那么我們應(yīng)該如何定位這個參數(shù)的加密呢?

          這里用 hook 大法,定位一波就完事了

          把 hook 插件拖到瀏覽器擴展程序里面,文末有獲取代碼的方式

          88ef21e6e30c86943a45a78d1de97884.webp

          然后直接刷新頁面,可以看到斷點停在下面的位置

          49f9dd950815ed1e478505323110ecab.webp

          然后向上一個堆棧就能看到加密的入口了

          4addc5c3d75d265b6519d6a90d6d5cdd.webp

          這里的_$lT就是MmEwMD加密的入口函數(shù)了

          那么現(xiàn)在知道了這個MmEwMD入口之后,我們之后可以直接搜索進到這個位置分析嗎?

          答案當(dāng)然是不行的,因為某數(shù)的 js 是動態(tài)生成的,每次的變量名都不一樣,所以我們想要每次都能很方便定位還是要繼續(xù)分析

          既然這里定位的位置是動態(tài)的,那我們找一個不會變的位置作為標(biāo)記點不就好了

          所以繼續(xù)向前找堆棧,你可以看到下面這個代碼

          d27409b5dd42df7550eadda9b6d0e74b.webp

          這個代碼的位置是在jquery_xx.js里面,這個 js 庫是不會變得,所以我們把斷點下在這個位置

          然后關(guān)掉上面的 hook 插件,重新刷新頁面

          d89309948ce045678cd27aed56e43771.webp

          斷點會斷在我們截圖的位置,這個時候只要簡單的幾次F11就能運行到加密入口的地方

          4a904e3ae74347ee5895629efc33509e.webp

          這不就到了嗎,解決完定位加密位置的部分,我們來分析一下他都檢測了什么

          分析加密

          a3bb588455b11ae4d97af8366828d505.webp

          剛剛我們點位到了入口,現(xiàn)在進入_$Yr看看他都做了什么

          d836ca259269a30400d8a3d9646d900d.webp

          這里傳入的是接口鏈接的一部分,可以理解為path+params的組合

          然后第一步進行了_$Bi類型的判斷

          c030999f5dc7f3a49bf6cf2cbe414867.webp

          然后進入了_$Xt的邏輯

          aeebdb1368e55ef31df7e2d1bbdb8628.webp

          這里的_$hA只是對_$Bi去空格,然后就進入了_$eC的邏輯

          這一步返回了_$sS,這里的_$sS返回的是一個對象,這個對象在_$Yr的邏輯中參與了很多邏輯

          a38a70f2c91909a56ad952f33430787f.webp

          所以這里的_$sS是比較關(guān)鍵的參數(shù)

          現(xiàn)在看看_$sS都是怎么賦值的?

          進入_$eC的邏輯,這里_$eC在開頭就先給了_$sS賦了一個空對象,并且定義了一系列的key,并賦了初始值

          87d01307e2f47cb22efa3ee3ce8da9cd.webp

          接下來就是一系列的判斷和try catch檢測

          ps:這里有一個調(diào)試小技巧,接下來會有很多if..return邏輯

          7a3113ae3b04e12f7e6863726fb968ab.webp

          這樣的判斷一般都是 false,畢竟這里 return 了后面的邏輯不就沒檢查了嘛

          反之,在我們補環(huán)境的時候,這里if中判斷條件也是我們需要注意的點,如果我們自己的環(huán)境走到這個位置是true就涼涼了。

          我們繼續(xù)分析,看了一下大概的邏輯,在創(chuàng)建了_$sS后,第一個try catch先完成了Location的檢測,并且通過location.port完成了_$yk的賦值

          146d2da034925dced13cf65f52db07a1.webp

          完成這步之后,接下來很多的邏輯都用到了_$oM這個對象

          這個_$oM是在邏輯中創(chuàng)建的a標(biāo)簽對象

          f89eb7963f401dbae96b4cbc1afa4635.webp

          這里的_$yT[_$xe[92]]就是document.createElement

          888654a3c7b0bc364ad2f42d624949f4.webp

          在上面的邏輯創(chuàng)建了a標(biāo)簽

          完成了a的創(chuàng)建之后,接下來就是完成對a的屬性的賦值

          _$oM[_$aY]?=?_$Bi;
          _$oM[_$aY]?=?_$oM[_$aY];

          _$oM[_$aY],通過_$Bi完成了_$oM[_$aY]的賦值,_$Bi是剛剛開始傳入的path + params,然后再將_$oM[_$aY]賦值回來

          這一步?jīng)]有注意的朋友可能會感覺這是廢話

          但是這里賦值后_$oM[_$aY]的結(jié)果并不是_$Bi,而是location.origin + path + params

          需要注意的是到這里,a標(biāo)簽現(xiàn)在所有的屬性值就初始化完了,這里在我們自己的環(huán)境補a的環(huán)境的時候需要注意的

          這一步如果很生硬的給一個{}那么接下來就不好過了

          接下來就是對_$oM的屬性取值然后再判斷,判斷之后再對_$sS不同的key進行賦值,再對_$sSkey進行判斷【就是這么啰嗦】

          e44faab7dfd81e5d804002b0a1b771ad.webp

          所以只要你a標(biāo)簽創(chuàng)建的好,這個還是很好過的,因為接下來都是水磨功夫,如果你一下記不住,可以像我一樣做個筆記

          7ff49376f21bf58d673b7689610b46f6.webp

          這里很簡單就完成_$sS對象的構(gòu)造,然后我們就可以回到主邏輯_$Yr部分

          35b79a7a98d80817b3cac396cd9f6696.webp

          如果上一步_$sS補的好的話接下來的邏輯你就很輕松了

          接下來需要注意的是_$R6、_$W7_$v5這三個邏輯

          這里的_$R6是對你傳入的path + parmas進行計算,會生成一個長度 16 的數(shù)組

          然后_$W7繼續(xù)進入控制流計算

          62214d2dbde6159f21835e96d1e7d04a.webp

          這一步會生成MmEwMD的前部分的值

          0f643138bf83c2848cb8e7440aee06b7.webp

          然后在開頭拼接上?進入_$v5的邏輯

          6cea75ad30655718fb3d1b57125204f0.webp

          這里是最后生成MmEwMD后一部分的邏輯,然后再拼接會剛剛生成的MmEwMD

          0a7799b9dfcdc0bf0290d7bab7dd7ee8.webp

          完成這一步的邏輯之后,就生成最后的MmEwMD

          其實MmEwMD還是很簡單的,難點就是調(diào)試麻煩

          開頭的 ?hook 的 demo 代碼是百度 cv 的如果有使用上的 bug 大家見諒,插件大家可以在公眾號后臺回復(fù)【hook】獲取

          完事~

          好了,以上就是今天的全部內(nèi)容了。

          我是沒有更新就在摸魚的咸魚

          收到請回復(fù)~

          我們下次再見。

          715f0b7539e3e7f25b39eebced6b3598.webp對了,看完記得一鍵四連,這個對我真的很重要。

          瀏覽 84
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产ts视频| 欧美色图日韩精品在线一区 | 色婷婷丁香五月亚洲 | 欧美日韩中文视频 | 成人国产经典视频 |