久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

webpack逆向補環(huán)境全流程:定位anti-content簽名模塊與瀏覽器環(huán)境模擬

webpack逆向補環(huán)境全流程:定位anti-content簽名模塊與瀏覽器環(huán)境模擬 簡介一份以Webpack補環(huán)境為核心的拼多多anti_content參數(shù)逆向?qū)W習(xí)資料適合具備JavaScript基礎(chǔ)、希望進階逆向工程的前端開發(fā)者或安全學(xué)習(xí)者。資料針對拼多多web端接口中的anti_content簽名機制梳理了利用Webpack配置與JavaScript環(huán)境補丁繞過校驗的完整思路。壓縮包共含2個文件——一個Python腳本與一個JavaScript文件體積僅約40KB方便快速查看與復(fù)用。Python腳本主要負(fù)責(zé)啟動輔助流程或與調(diào)試環(huán)境對接JavaScript文件則集中體現(xiàn)了Webpack模塊加載、補環(huán)境注入和逆向調(diào)用等關(guān)鍵代碼。目前已有431人學(xué)習(xí)下載對于想弄懂此類平臺復(fù)雜參數(shù)生成邏輯的讀者這份資料能提供從環(huán)境模擬、模塊分析方法到Python/JS協(xié)作的實操參考幫助縮短自行摸索的周期并加深對補環(huán)境技術(shù)的理解。1. webpack 拼多多 anti-content 補環(huán)境這是 js 逆向?qū)W習(xí)最典型的一條線爬蟲工程師打開拼多多 Web 端在開發(fā)者工具里隨便點開一個接口大概率會在請求參數(shù)里看到anti-content這個字段。想順著字符串搜索找到加密函數(shù)卻發(fā)現(xiàn)代碼是 webpack 打包產(chǎn)物模塊 ID、__webpack_require__、自執(zhí)行函數(shù)層層嵌套根本無從下手。把代碼拖到 Node 里跑又立刻被window is not defined、document is not defined拍在臉上。這三件事——定位 webpack 模塊、補環(huán)境、生成 anti-content 簽名——恰好是 js 逆向入門繞不開的一條主線。下面這套流程按最小可行方式拆開怎么把簽名模塊從產(chǎn)物里摳出來怎么在 Node 里把瀏覽器環(huán)境補起來以及補環(huán)境代理為什么經(jīng)常失效、翻車之后怎么定位。2. 從 webpack 產(chǎn)物中定位 anti-content模塊結(jié)構(gòu)與入口查找Webpack 打包產(chǎn)物不像手寫代碼那樣按文件目錄排列。它把所有模塊塞進一個數(shù)組或?qū)ο笤儆媒y(tǒng)一的加載函數(shù)按 ID 取用。如果不先理解這個骨架拿到手幾百 KB 的壓縮 JS 就是一團亂麻。這一章的落點是在產(chǎn)物里準(zhǔn)確找到 anti-content 相關(guān)代碼并搭出一個能獨立運行的最小框架。后面的補環(huán)境工作全都建立在這個最小框架之上。2.1 webpack 產(chǎn)物骨架模塊數(shù)組與__webpack_require__的內(nèi)存尋址webpack 在生產(chǎn)模式下打包產(chǎn)物比開發(fā)模式簡潔得多可讀性也差得多。常見結(jié)構(gòu)是每個源文件被編譯成一個“模塊工廠函數(shù)”存放在以模塊 ID 為 key 的對象里另外提供一個__webpack_require__用來按 ID 加載模塊。如果站點還開啟了代碼壓縮和模塊合并scope hoisting / concatenateModules許多小模塊會被內(nèi)聯(lián)進一個大函數(shù)模塊邊界被打散字符串搜索時上下文會更碎。這是 webpack 打包優(yōu)化配置對逆向分析最直接的影響優(yōu)化開得越狠產(chǎn)物越“平”可搜索的特征越少。先看一個刪掉業(yè)務(wù)代碼后的骨架真實產(chǎn)物再復(fù)雜核心也就是這幾行// webpack 產(chǎn)物最小骨架示意 var modules { 0: function (module, exports, __webpack_require__) { var signer __webpack_require__(12); exports.build function (obj) { return signer.sign(obj); }; }, 12: function (module, exports, __webpack_require__) { exports.sign function (obj) { // 真實產(chǎn)物里這里是一大段壓縮代碼 return step1: (obj.timestamp || ); }; }, }; var cache {}; function __webpack_require__(id) { if (cache[id]) return cache[id].exports; var module (cache[id] { exports: {} }); modules[id].call(module, module, module.exports, __webpack_require__); return module.exports; } // 入口加載模塊 0 并調(diào)用 console.log(__webpack_require__(0).build({ timestamp: Date.now() }));這個骨架說明三件事。第一模塊 ID 不一定是遞增數(shù)字production 模式壓縮后可能是短字符串反查時不要默認(rèn)從 1 開始數(shù)。第二__webpack_require__做了模塊緩存同一個模塊被多處依賴時不會重復(fù)執(zhí)行工廠函數(shù)這是“環(huán)境只補一次”能夠成立的前提。第三模塊間依賴是運行時通過 require 按 ID 查找而不是直接引用全局變量所以摳出單個模塊時必須把整個 modules 對象和__webpack_require__一起搬走否則模塊內(nèi)部依賴會全部斷掉。還有一種常見變體異步加載 chunk。主入口里只有webpackJsonpCallback和 chunk 加載函數(shù)業(yè)務(wù)模塊在獨立文件里。這種產(chǎn)物里直接搜 anti-content 往往命中在子 chunk 文件里需要先確定主入口調(diào)用了哪個 chunk ID再單獨分析對應(yīng)文件分析思路跟處理單文件產(chǎn)物完全一樣。2.2 用字符串反查定位從 anti-content 到加密函數(shù)拿到產(chǎn)物后第一件事不是通讀而是搜字符串。anti-content大概率出現(xiàn)在兩個位置一是作為對象 key 被拼進請求體二是被壓縮工具改名成短變量后真實 key 寫在某個字符串常量里。我習(xí)慣先搜帶引號的完整字符串減少誤命中。import re js open(pdd.js, r, encodingutf-8, errorsignore).read() for m in re.finditer([\]anti-content[\], js): start max(0, m.start() - 300) end min(len(js), m.end() 300) print( match at %d % m.start()) print(js[start:end])命中處的上下文里通常能看到類似anti-content: n[XX]的賦值。n[XX]就是簽名函數(shù)被壓縮后的調(diào)用位置。接下去反查XX這個 key 是在哪個模塊里定義回到 modules 對象里在這個 key 所在的模塊工廠函數(shù)字符串里繼續(xù)搜。如果壓縮工具把屬性名也全部短化比如n[a1]就搜a1在模塊工廠函數(shù)里出現(xiàn)的位置順著賦值語句往上找函數(shù)入口。這一階段容易誤入歧途的地方是直接復(fù)制整個產(chǎn)物到本地運行然后在海量 DOM 操作報錯里打轉(zhuǎn)。正確做法是只保留“模塊表 入口調(diào)用”把無關(guān)模塊刪掉用最小腳本逐步加載。看到一個報錯解決一個比一次性挑戰(zhàn)整個產(chǎn)物要快得多。2.3 把目標(biāo)模塊摳出來最小可運行腳本的搭建假設(shè)通過 2.2 的反查已經(jīng)確定簽名入口模塊 ID 為 12這一步就把模塊表按原樣搬進本地文件再寫一個精簡版 require 讓它能被調(diào)用。// 最小運行腳本只加載需要的模塊 const modules { /* 從 pdd.js 里復(fù)制整個 modules 對象 */ }; const cache {}; function __webpack_require__(id) { if (cache[id]) return cache[id].exports; const module (cache[id] { exports: {} }); modules[id].call(module, module, module.exports, __webpack_require__); return module.exports; } // 假設(shè)簽名入口是模塊 12 const signer __webpack_require__(12); console.log(signer.sign({ timestamp: 1700000000000 }));運行這段腳本常見的報錯有兩種。一是xxx is not defined說明模塊表漏了依賴模塊回到 2.1 步驟把缺失 ID 的模塊補進來。二是window is not defined或document is not defined說明加密模塊在加載階段就引用了瀏覽器全局對象此時正式進入補環(huán)境流程。注意報錯位置通常不在你調(diào)用的入口函數(shù)里而在模塊工廠函數(shù)頂部——webpack 打包時很多模塊會在初始化階段執(zhí)行var doc window.document這類語句因此補環(huán)境必須在模塊加載前完成否則每次 require 都會掛掉。3. 補環(huán)境的原理與實操在 Node 里把瀏覽器環(huán)境“演”出來補環(huán)境是 js 逆向?qū)W習(xí)里的分水嶺概念。外行以為要把 window、document、navigator 整套實現(xiàn)一遍內(nèi)行知道只需要讓加密代碼“演”得不報錯并且補出來的屬性值和類型能被服務(wù)端認(rèn)可。這一章按“先原理、再實操”的順序把補環(huán)境從零到能用的過程寫清楚。3.1 補環(huán)境的運行邏輯不是抄瀏覽器是演到不報錯先理解報錯為什么會發(fā)生。Node.js 本身不提供 window、document 這類瀏覽器 API加密代碼卻習(xí)慣性地直接訪問它們。補環(huán)境就是在 Node 的全局對象上“種”出這些 API 的替身讓加密代碼在替身上正常走完邏輯。補環(huán)境的范圍怎么定我的習(xí)慣是三步先補最外層全局對象window、document、navigator、location讓腳本能跑起來再根據(jù)下一次報錯補齊細(xì)節(jié)最后做一次瀏覽器環(huán)境對比把會參與簽名計算的屬性值校準(zhǔn)到和真實瀏覽器一致。這里有一條重要原則能少補就少補。補得越多偽造痕跡越多越容易被服務(wù)端從環(huán)境指紋上識別出腳本痕跡。常見做法是抓一個瀏覽器真實環(huán)境導(dǎo)出一份 JSON 配置來補而不是憑記憶手寫幾百行模仿代碼。反正服務(wù)端校驗的是“像不像瀏覽器”不是“功能全不全”。3.2 第一輪補環(huán)境從報錯驅(qū)動把 window、document、navigator 補出來給出一個最基礎(chǔ)的骨架能覆蓋大多數(shù)模塊加載階段的全局引用。代碼在每個屬性后面標(biāo)注了為什么需要這個值避免新手照抄一堆用不上的屬性// 補環(huán)境骨架按需添加不要照抄一堆沒用的屬性 global.window global; global.navigator { userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36, platform: Win32, language: zh-CN, languages: [zh-CN, zh], webdriver: false, }; global.document { cookie: , referrer: , addEventListener: function () {}, removeEventListener: function () {}, createElement: function (tag) { // 節(jié)點類型基礎(chǔ)屬性要帶上指紋計算常從節(jié)點上取值 return { nodeName: String(tag).toUpperCase(), style: {} }; }, documentElement: { style: {} }, body: { appendChild: function () {} }, }; global.location { protocol: https:, hostname: mobile.yangkeduo.com, href: https://mobile.yangkeduo.com/, pathname: /, };這段代碼里有三個參數(shù)需要重點校準(zhǔn)。navigator.userAgent必須和目標(biāo)瀏覽器保持一致它幾乎必然參與 UA 指紋計算填錯直接導(dǎo)致簽名不一致。document.createElement返回的對象要帶nodeName、style這類基礎(chǔ)屬性因為加密代碼可能從節(jié)點上取這些值拼進指紋字符串。location.hostname要填實際請求的域名簽名校驗偶爾會帶上 referrer 或 origin域名寫錯也會被服務(wù)端識別出來。第一輪補完報錯會向前推進變成xxx is not a function或xxx is undefined這類具體問題。每修一處就回到報錯現(xiàn)場看它到底要什么值不要提前補后面才可能用到的東西。3.3 原型鏈補環(huán)境從“補實例”升級到“補類”有些模塊不直接訪問document而是在代碼深處new Image()或new HTMLImageElement()。如果只補了空 documentnew Image()會直接拋Image is not defined。這類場景就要從“給實例補屬性”升級到“給類補原型”。// 原型鏈補環(huán)境先定義類再把類掛到全局 function HTMLImageElement() {} Object.defineProperty(HTMLImageElement.prototype, nodeName, { value: IMG, writable: true, configurable: true, }); HTMLImageElement.prototype.addEventListener function () {}; HTMLImageElement.prototype.setAttribute function (k, v) {}; global.HTMLImageElement HTMLImageElement; global.Image function (w, h) { const img new HTMLImageElement(); img.width w || 0; img.height h || 0; return img; };這里用Object.defineProperty而不是直接賦值HTMLImageElement.prototype.nodeName IMG原因是直接賦值會讓 nodeName 變成可枚舉屬性。真實瀏覽器里 nodeName 是原型上的不可枚舉屬性檢測代碼用Object.keys遍歷原型鏈時多出來的可枚舉項會直接暴露環(huán)境被改過。原型鏈補環(huán)境的核心不是“屬性多不多”而是“像不像”。另一個經(jīng)驗補原型鏈時盡量往專用類上補比如只給HTMLImageElement補屬性不要順手在Object.prototype上掛一堆自定義字段。后者是排查災(zāi)難因為所有對象都會被污染服務(wù)端一旦檢測某個對象的自有屬性數(shù)量整個環(huán)境都會翻車。3.4 用 Proxy 接管屬性讀取補環(huán)境代理失效的原因補環(huán)境補到最后總會有漏網(wǎng)屬性此時很多方案會寫一個 Proxy把全局對象的屬性讀取統(tǒng)一接管沒命中的屬性返回一個函數(shù)或空對象避免代碼因取不到值直接拋錯。// 用 Proxy 兜底而非完全替代顯式定義 const handler { get(target, prop, receiver) { if (prop in target) return Reflect.get(target, prop, receiver); if (typeof prop string) { const fallback function () {}; fallback.toString () function () { [native code] }; fallback.valueOf () undefined; return fallback; } return undefined; }, has(target, prop) { return true; // 讓prop in window同樣返回 true }, getOwnPropertyDescriptor(target, prop) { if (prop in target) { return Object.getOwnPropertyDescriptor(target, prop); } return { configurable: true, enumerable: false, writable: true, value: undefined, }; }, }; global.window new Proxy(globalThis, handler);這段代碼看起來能把所有兜底邏輯處理好但實際場景里“補環(huán)境代理失效”往往不是 get 沒生效而是另外三個原因。第一加密代碼判斷屬性是否存在時可能用prop in window這個操作走的是 has 陷阱而不是 get 陷阱漏掉 has 就會讓所有屬性都判定為不存在。第二Object.getOwnPropertyDescriptor(window, prop)直接拿屬性描述符既不經(jīng)過 get 也不經(jīng)過 has需要單獨實現(xiàn)。第三也是最隱蔽的一點兜底函數(shù)被當(dāng)作對象繼續(xù)訪問其上的方法時函數(shù)本身沒有這些方法調(diào)用鏈還是會斷。比如代碼里window.someApi.init()兜底返回的函數(shù)沒有init屬性執(zhí)行到window.someApi.init()依然報錯。所以 Proxy 只適合兜底冷門屬性主力仍要靠顯式定義關(guān)鍵對象二者結(jié)合才能少踩坑。4. 補環(huán)境避坑代理失效、prototype 檢測與 source map 報錯處理補環(huán)境方案能不能過最終取決于服務(wù)端認(rèn)不認(rèn)。這一章整理四個高頻翻車點每條按“現(xiàn)象、原因、解決”展開都是實際排查中反復(fù)遇到的場景。照著這個順序檢查能少走不少彎路。4.1 補環(huán)境代理失效get 返回了值代碼卻走了 undefined 分支現(xiàn)象日志里 get 陷阱被頻繁觸發(fā)說明代理在工作但簽名結(jié)果和瀏覽器里對不上甚至明顯走了“不支持”邏輯分支。原因多數(shù)代理只實現(xiàn)了 get漏掉 has 和 getOwnPropertyDescriptor。加密代碼判斷某個 API 是否存在有三種常見寫法typeof window.xxx ! undefined、xxx in window、Object.getOwnPropertyDescriptor(window, xxx)。第一種會被 get 陷阱攔到后兩種完全繞過 get。尤其in表達式在 JS 里非常常見漏掉 has 陷阱等于讓所有屬性都是“不存在”代碼自然走進錯誤分支。解決把上一節(jié)給出的 handler 補全get、has、getOwnPropertyDescriptor 三個陷阱一起實現(xiàn)。接著做驗證寫一段十行測試腳本分別用typeof、in、getOwnPropertyDescriptor訪問關(guān)鍵屬性三個結(jié)果必須和瀏覽器里一致否則繼續(xù)修。4.2 could not read source map for webpack://meai.web/node_modules/ 報錯怎么處理現(xiàn)象把線上的 webpack JS 拉下來放到本地或分析工具里時控制臺拋出could not read source map for webpack://meai.web/node_modules/xxx.js這類報錯。報錯指向 node_modules 里的模塊路徑看起來像缺依賴容易誤導(dǎo)新手去補 node_modules。原因webpack 產(chǎn)物末尾通常帶著//# sourceMappingURLxxx.js.map注釋生產(chǎn)環(huán)境不會把 map 文件隨包發(fā)布工具按注釋去找當(dāng)然找不到。這個報錯跟簽名邏輯無關(guān)也不影響 JS 執(zhí)行純粹是注釋指向了一個不存在的文件。線上包里拿不到 map 文件想通過 source map 還原變量名的路是堵死的老老實實用字符串搜索和斷點定位更實際。解決本地分析時先把 sourceMappingURL 注釋整行刪掉或者用編輯器插件忽略 map 文件。不要花時間去找 map。這個經(jīng)驗對任何 webpack 打包的站點產(chǎn)品都適用。4.3 原型鏈補環(huán)境被檢測toString 的破綻現(xiàn)象補完環(huán)境本地運行一切正常anti-content 能算出來但提交到真實請求里服務(wù)端返回風(fēng)控提示。對比瀏覽器真實值后發(fā)現(xiàn)某些對象的方法實現(xiàn)特征異常。原因檢測腳本常執(zhí)行Function.prototype.toString.call(obj)來判斷某個方法是不是原生實現(xiàn)。補進去的document.createElement、window.addEventListener是普通 JS 函數(shù)toString會輸出完整的函數(shù)源碼而瀏覽器原生方法輸出的是function () { [native code] }。一旦檢測發(fā)現(xiàn)字符串不是以[native code]結(jié)尾就判定環(huán)境被改過。解決所有補進去的方法統(tǒng)一改寫 toString讓它返回function () { [native code] }并且要在函數(shù)定義后立即改寫const fakeAddListener function () {}; fakeAddListener.toString () function () { [native code] };另外能少重寫就少重寫。比如某個 API 在簽名流程中根本不參與計算寧可不補也不給它一個假的實現(xiàn)因為每個假實現(xiàn)都多一個被檢測的破綻。4.4 navigator 和 UA補了但和服務(wù)端不匹配現(xiàn)象navigator.userAgent填了最新版 Chrome 的 UA其它常見屬性也都有但簽名一直不過。把瀏覽器里的 navigator 整個導(dǎo)出再補進去結(jié)果還是一樣。原因不參與指紋的不只是 userAgent。screen.width、screen.height、devicePixelRatio、timezoneOffset、plugins、webdriver都在參與環(huán)境指紋計算。UA 對上了但其它值還是 Node 默認(rèn)狀態(tài)指紋就不一致。比如真實瀏覽器里navigator.webdriver是 undefined補環(huán)境腳本如果隨手給了個 false檢測方一比對就發(fā)現(xiàn)問題。解決在真實瀏覽器控制臺執(zhí)行JSON.stringify(Object.entries(navigator))拿到完整鍵值對再按這份清單逐項補。補完后寫一個斷言腳本把 Node 里的 navigator 和運行Object.entries(navigator)的結(jié)果做 diff改到除動態(tài)字段外全量一致。這一步是補環(huán)境參數(shù)調(diào)試?yán)镒罨〞r間的部分也是能不能讓服務(wù)端認(rèn)你的分水嶺。5. 驗證與邊界怎么確認(rèn)補出來的 anti-content 真的能用很多人在補環(huán)境上花了大量精力卻忽略了一個關(guān)鍵動作驗證。補環(huán)境跑通只是第一步跑出來的簽名和瀏覽器真實請求里的是否一致需要專門設(shè)計對比方法。這一章從驗證方法、動態(tài)因子識別、瀏覽器對比三個角度把這套流程的最后一段補完。5.1 雙端對比讓瀏覽器和 Node 各算一次逐字段對齊從瀏覽器抓一個真實請求把請求體里的動態(tài)字段抽出來在 Node 里用同一份輸入去生成 anti-content然后對比。這是最直接的驗證方式。// 用一份真實請求體驗證補環(huán)境結(jié)果 const fs require(fs); const { getAntiContent } require(./pdd_env.js); // capture.json 來自瀏覽器復(fù)制{ url, data, anti-content } const capture JSON.parse(fs.readFileSync(capture.json, utf-8)); const params Object.assign({}, capture.data); const output getAntiContent(params); console.log(node :, output); console.log(browser:, capture[anti-content]); console.log(length :, output.length, capture[anti-content].length); console.log(match :, output capture[anti-content]);對比時看三個信息。長度不同大概率是環(huán)境指紋輸出不一致優(yōu)先回第 4 章排查 navigator 等屬性。前綴不同問題多半出在簽名參與字段的取值方式上。前綴一致但后段不一致重點檢查時間戳和隨機數(shù)是否同步更新。注意 anti-content 里通常含時間戳或隨機數(shù)直接要求全等不現(xiàn)實可以抓兩個間隔極短的請求觀察動態(tài)部分的變化規(guī)律再做替換驗證。5.2 動態(tài)因子識別法哪些字段參與簽名哪些不參與如果雙端對比每次都不一樣先別急著懷疑環(huán)境用“單字段替換法”確認(rèn)哪些字段真正參與簽名。抓兩個真實請求 B1 和 B2把時間戳等可能變化的字段歸零逐個替換觀察 anti-content 是否變化。下面是一份示意記錄表操作anti-content 變化結(jié)論修改 timestamp變化參與簽名修改 pageSn變化參與簽名修改 pageSize不變不參與簽名修改擴展字段 ext_a變化參與簽名識別過程中有兩個邊界坑要注意。第一時間戳精度有些實現(xiàn)取秒有些取毫秒比較時要把兩包的 timestamp 歸一化再測否則結(jié)論會誤判。第二部分字段不參與簽名計算但服務(wù)端會單獨校驗改動它們同樣會導(dǎo)致請求失敗。因此“簽名參與”和“服務(wù)端校驗參與”是兩個維度不能混為一談。排錯時先確認(rèn)哪一層在報錯再決定改哪里的代碼。5.3 把瀏覽器當(dāng)黑匣子校準(zhǔn)補環(huán)境參數(shù)的三個技巧第一個技巧是從瀏覽器控制臺導(dǎo)出現(xiàn)有屬性而不是靠記憶補。navigator、screen、location、performance這些對象每一組都執(zhí)行一次Object.entries()導(dǎo)出再與 Node 里的對應(yīng)對象做按字段比對。補環(huán)境腳本與真實環(huán)境的差異會一目了然不需要反復(fù)試錯。第二個技巧是使用“復(fù)制為 fetch”保留完整請求鏈路。瀏覽器里點一下頁面可能會同時觸發(fā)多個請求復(fù)制完整請求能幫你分辨當(dāng)前 anti-content 是哪個頁面動作生成的。單獨復(fù)制一個請求體容易漏掉請求頭或 URL 參數(shù)導(dǎo)致補出來的環(huán)境在重放時整體錯位。第三個技巧是動態(tài)字段不要寫死。隨機數(shù)的長度、字符集、是否帶大寫都要以抓包觀察為準(zhǔn)。補環(huán)境腳本里生成隨機數(shù)時改成與抓包格式一致而不是隨便用Math.random().toString(36)湊數(shù)。格式對了簽名后續(xù)部分才能穩(wěn)定對齊。6. 用 vm 模塊給補環(huán)境加隔離避免環(huán)境串味與多開臟數(shù)據(jù)補環(huán)境代碼一直掛在 global 上短期跑通沒問題一旦并發(fā)請求或長期運行就會栽跟頭。兩個任務(wù)同時執(zhí)行時A 任務(wù)改寫了 navigator.languageB 任務(wù)又改了一部分兩邊簽名全部亂套。我的做法是用 Node 的 vm 模塊把補環(huán)境代碼和簽名代碼一起丟進沙箱每次調(diào)用創(chuàng)建全新 context跑完即棄。// 用 vm 隔離補環(huán)境避免全局污染 const vm require(vm); const fs require(fs); const envCode fs.readFileSync(./env.js, utf-8); // 補環(huán)境代碼 const signCode fs.readFileSync(./sign.js, utf-8); // 從 webpack 摳出的簽名模塊 function makeAntiContent(params) { const sandbox { params: { ...params }, result: }; vm.createContext(sandbox); vm.runInContext(envCode signCode, sandbox, { filename: sandbox.js }); return sandbox.result; } console.log(makeAntiContent({ timestamp: Date.now() }));這段代碼的核心是sandbox.params用了展開復(fù)制避免簽名代碼在沙箱里修改外部對象后下一輪調(diào)用還帶著上一輪的痕跡。每次 makeAntiContent 都從干凈狀態(tài)開始不存在全局串味問題。代價是createContext和runInContext有固定開銷高頻調(diào)用時可以用一個 context 池預(yù)創(chuàng)建幾個沙箱輪流復(fù)用。我早期做 webpack 逆向時圖省事把所有補環(huán)境代碼掛在 global 下結(jié)果凌晨兩點排查一個“同一函數(shù)同一入?yún)?、兩次輸出不同”的玄學(xué)問題最后發(fā)現(xiàn)是上一個任務(wù)改了 navigator.language。從那以后我再不把補環(huán)境放進共享全局作用域每次請求都用 vm 重新隔離。逆向這條路留退路比炫技重要。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
操熟女91| 九九九网页| 丰满人妻一区二区三区免费 | 久久偷偷色综合蜜桃| 蜜臀AV网站| 国产福利合集| 天美传媒麻豆一区二区三区国产精| 欧美日韩超碰在线| 蜜桃视频成a人v在线| 亚洲精品熟妇1区2区3区。| 日本在线一二 | 日本一本道A级黄色毛片试看60分钟| 青青草五月份天| 视频在线观看一二三区| 国产成人自拍视频在线| 亚洲 欧美 色图| 鸥美极品| 久久免费看高潮毛片韩国| 成人片在线播放| 成·人免费午夜在线观看| 久久精品视| 久草色悠悠在线视频| 国产一区在线免费播放| a片 xxxx受爽视频| 91美女视频电影| 久久一留热品黄| 亚洲欧洲国产综合av| 蜜臀久久99精品久久久久久无删减| 久操影视| 夜夜嗨免费视频| 色眯眯射| 99国产精品在线观看| 手机看片1025| 国产成人精品日本亚洲语言| 十八禁成人网站在线观看| 乱伦熟女专区| 人人看人人插| 国产区性爱在线视频秋霞豆| 国产www色在线观看| 亚洲 小说 欧美 激情 另类| 日韩操啪| 国产高清视频无码在线| 91综合网在线| 欧美亚洲丝袜人妻制服中文99| 日韩天天本| 欧美少妇性乱| 亚洲97网站| 亚欧美综合网。| 久干网| 宗合情欲网| 天天干2019| HEYZO高无码国产精品227| 尤物黄色在线观看网站| 精品国产丝袜一区二区三区乱码| 少妇一区二区三区高速| av天堂手机版追回| 不卡啪啪视频| 天天日天天色| 97久久视频| 91综合在线| 欧美精品黑人猛交高潮| 亚洲色图欧美一区二区不卡| 久久久96精品| 在线中文AV| 人妻激情在线视频| 香蕉国产97| 亚洲在钱| 久久久偷拍| 综合网亚洲| 久久产精品一区二区三区电影| 久操免费在线| 自怕偷自怕亚洲精品| 国产精品探花在线| 婷婷六月天| 亚洲欧美中日韩| 91精品久久综合熟女| 极品色www影院| 免费一级视频特黄色大片| 99热精品免费| 激情综合av| 91无摭挡| 成人蜜乳小视频网站| 国产一区在线观看无码AV| 91操人| www久久99| 欧美精品第3页| 四虎视频在线观看| 好爽视频在线观看| 亚洲色图日韩精品| 国产一区麻豆免费观看| 精品999一区二区| 久操操AV电影| 五月激情小说| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 懂色AV蜜臀无码精品APP| 白天啪啪晚上啪啪视频| 欧美日韩超碰在线| 色欲久久99精品久久| 女性91网站| 国产h片在线观看视频| 99久久com免费视频′| 91欧美综合在线| 东京热毛片177b2viP| 又粗又长又爽在线观看| 大香蕉123| 久久久精品中文字幕麻豆| 久久久久久久久久久久97| 午夜乱轮操逼视频免费看| 日韩少妇一区二区三区| 96久久久精品| 久草免费福利在线播放| 欧美黄色图片| 操碰97| 久热久| 久久、1234| 78超碰| 亚洲五月婷婷| 啊啊啊啊啊舒服| 欧美日韩午夜精品一区二区三区| 无码免费一区二区三区啪啪| 9999亚洲精品| 蜜乳AV一区| 久久色激情一区二区三区| 久九九九九九九九热| 伊人影院综合是一个与深夜成人在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 少妇一区二区三区精选| 久操 高清| 成年人黄色视频免费| 五月丁香六月婷综合成人综合 | 精品女同一区| 亚洲精品色| 天天日天天看| www.97在线| 日夜精品| 久久综合久久综合人久久夜精品| 国产免费黄色一级大片| 久久久久骚| 婷婷爽人人婷婷爽视频| 国产欧美美女免费观看视频| 欧美在线播放| 亚洲综合小视频小说在线观看| 婷婷伊人五月| 9999九九九久久久| 黑人嘿嘿嘿超爽免费视频| 情色五月天网| 国产成人无码啪| 日韩丨制服丨中文|在线| 91三级理论片播放器| 中文字幕精品三级久久久| 久热香蕉精品在线视频| 91天天c| 色呦呦呦在线观看视频| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 十八禁电影伊人网| 日本一二区免费| 91 丝袜在线播放| 999熟女精品| 亚州操逼图| 欧美96交| 狠狠中文字幕| 天天看,天天做| 九久精品| 色狠狠综合噜一二三区| 国产区91柔拿会所技师| 97操b| 欧美综合站| 久久久蜜桃臀无码视频| 九九九九九精品十六| 国产亚洲禁久一区二区 | 99色网| 久久久久密臀一区二区| 乱人伦 国语对白:视频直接看| 91肉丝| 熟妇人妻一区二区| 超碰在线国产| 嫖老熟女A片一二三区| 久久成人午夜狠狠| 91在线免费观看处女| 美国人人操人人操| 啊啊啊想要| 东北操逼| 污污污8888| 熟妇人妻精品一区二区视频色欲| 日本色色色视频| 欧美翘臀视频网站一区二区三区| 97超碰亚洲| 欧美操人| 国产成人精品亚洲日本| 秋霞一级A片黄色视频| 夜夜春夜夜操| 另类专区加勒比| 国产按摩一区二区三区| 日本色色色色色视频| 国产女人高潮嗷嗷嗷叫小说| 亚洲中文一区二区三区| 国产性久久久| 熟女这里只有精品6| 精品午夜福利| 72av视频| 九九九九精品视频| 亚洲久草AV色图| 久久男人网| 亚洲高清无码免费观看视频| 在线人人人人人人精品超 | 日本欧美亚洲高清在线看| 日本中文熟女视频| 欧美巨大性舒爽顶到了| A级片日韩欧美国产欧美视频精选观看 | 国产福利第一视频| 多乙久久久久久| 午夜福利1区2区3区| 欧美激情精品久久久久久| 精品中文日韩字幕视频| 日韩天天本| 天美AV片| av在线人气| 国产馆极品诱惑| 插入综合网| 岛国艾薇凹凸视频天堂| 亚欧性爱ab| 欧美顶级黄色大片免费| 日韩精品一区二区高清| 国产精品视频内谢女人| heyZO天然素人无码AⅤ专区| 伊人久久在线视频观看| 国模不卡| 人妻精品视频一区二区| 成年人性爱日韩| 亚洲蜜桃V妇女| 亚洲小电影免费涩涩成人在线高清 | 亚洲精品乱码线路中文字幕| 亚洲精品xxx| 亚洲三区视频| 92午夜免费福利视频| 日本三级A片网站com| 亚洲图片婷婷五月天| 人人操 欧美| 欧美不卡在线一区二区| 国产精品激情久久久久久久| 自偷自拍的亚洲视频| 91久久久久久久| 婷婷五月天基地| 国产最新小视频在线播放下载| 亚洲人妻一区二区三区| 99热色精品| 天天透伊人| 一区中文字幕二区日韩| 骚女高跟AV在线| 亚洲日精品| 九九久久玖玖| 久久色网| 熟女人妇一区二区三区| 久久国产视频性吧 | 国产精品操| 超碰在线91| 日韩性爱小视频| 亚洲AV噜噜狠狠网址蜜桃动漫| 黄色大香焦1级‘′‘| 欧美,日韩,亚洲视频| 色五月婷婷五月天| 国产精品视频播放| 欧美综合综合| 成全动漫视频观看免费下载| 久色网| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 欧美亚性天堂| 国产美女激情| 色臀AV| 370p日韩欧美亚洲精品| 国产激情片在线观看| 96AV久久久| 美女上床网站| 在线欧美69V免费观看视频| 五月天大香蕉| 亚洲精品 欧美精品| 欧美精品97| 老熟女乱子伦中文字幕一区二区| 亚洲欲色9532548967一区| 亚洲第91页| 尤物视频偷拍免费| 亚洲天堂一区二区久久| 欧美综合骚| 一二三四区操操Av| 色色福利| 色老牛| 狠狠干91| 欧美激情综合色综合啪啪五月| 国桃视频产巨乳精品一区二区在线| 亚洲成人贴图| www鬼畜国产男人的天堂| 久久成人精品| 亚洲日韩国产欧美综合v| 麻豆区99999| 亚洲天堂男人天堂网| 偷窥自拍A片| 欧美国产操逼| www.黄色在线| 日本加勒比无码专区一二三| 精品一区二区成人| 日本高清熟女久久一区| 眼镜人妻101.com| 久久久久久久久久久久久久久性生活视频 | 日夜尻逼网| 亚洲无码AV九九九| 天天草AV| 久久性爱网站| 久久9久久| 免费精品福利在线观看| 男人的天堂VA| 国产少妇与亚洲av| 亚洲视频精选| 欧美九九爱| 97极品无码| 天天干少妇| 天天影视亚洲| 大香蕉在线视频15| 中国AAAAAA黄色片| 日本大香蕉| 久操com| 日本高清熟女久久一区| 99久久e免费热视| 91热色| 久久久97| 国产精品人妻无码久久久老鸭窝| 欧美色日本| 中文字幕奈奈美被公侵犯| 加勒比海成人视频网| 欧美顶级黄色大片免费| 欧美亚洲中文字幕| 97超碰无码网| 亚洲人妻中文高清| 78久久| 四虎884a| 91日本在线观看| 色香天天| 欧美激情色婷婷花野真衣一区二区| 高清国产成人无码| 快播久久人人aV| 婷婷五月天补不补| 日韩欧美tv一区二区在线观看| 色偷偷男人的天堂麻豆| 中文字幕91综合| 在线播放免费av福利片| 操淫穴亚洲五月丁香| 加勒比在线视频一区二区三区| 91超碰在线播放| 激情五月婷婷| 92性色国产午夜福利在线661| 日韩啪啪啪视频| 国产麻豆福利av在线播放| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 大香蕉综合| 黑丝自慰喷水网站| 3PAV乱伦视频| 色偷综合| 丝袜喷水在线| 丁香五月影院| 久久肏大逼| 一二三区操逼国产91| 999九九精品| 炮色五月| 开心五月深爱五月| 国产人妖视频一区在线观看| 欧美天天影院| 九九九九免费高| 啊啊啊啊啊啊在线看| 极品色www影院| 欧美在线91| 99蜜月精品久久| 激情四射婷婷四五月天| 日韩精品一二三四| 精品人妻中文字幕高清| 酒色综合网| 中文在线视频| 小草av不卡亚洲二区| 看看小穴| 欧美午夜精品久久久久久3D| 婷婷久月| 国产一区二区精品久久99| 超碰九7免费| 日韩人人精品| 欧美三四五区| 91九色丰满高潮| 久久中日麻豆| 久草资源欧美在线视频| 麻豆天美国美国产| 夜色五月天| 婷婷色综合| 无套内射人妻在线播放| 色综合av男人天堂| 深夜国产一区二区三区在线看| 日本一区二区三区免费观看| 中文字幕三四区| 欧美激情在线观看视频| 国产精品诱惑| av中亚| 九九九九九九九九九九九蜜桃| 色综和网| 欧美激情黑人| 综合色区偷拍| 97精品在线视频| 大香蕉淫人| 97亚洲色图| 日韩在线电影| 乱性AV| 人人干黄色| 欧美人人操人人插| 97在线免费视频| 曰韩中文人妻视频| 久久 国产 无码| 成人av在线播放| 国产一区自拍欧美日韩| 91午夜无码| 亚洲色 国产 欧美 日韩| 人人操人人摸人人看人人干| 天天日B夜夜干B时时操B| 国产免费永久精品无码| 婷婷四五区| 手机不卡视频不卡在线一二三区 | 黄骗免费网站| Sekablack无码一区| 国产精品久久久久久久AV大片 | 亚洲天堂电影网| 日日骚av| 秋霞一级鲁丝片A片| 激情小说日韩无码| 国产91久久九九免费精品无码| 九九色热| 亚洲少妇在线影音| 超碰精品97| 91亚州| 亚洲AV无码黄色强奸| 麻豆国产免费影片| 午夜福利久久久噜久噜久久综合| 蜜臀无码一区二区| 97精品视频| 日本性爱网址| 旡码电影特区| 密臀国产在线| 青草草免费网站av| 一区二区三区四区色图| 欧美日不卡| 久久久久78| 亚洲高清色综合| 北约熟女超碰| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 日韩情色AV| 国产欧美另类久久久精品课程| 20cm女自慰在线日韩欧美| 国产三级日产三级韩国三级 | 欧美中文狠| 亚洲情色 自拍| se01国产在线视频| 射丝袜高跟鞋99| 91色射| 欧美 日韩 亚洲 春色| 自拍鲍鱼一区在线高清观看免费| 国产精品suv一区| 干B网| 久久久久久精品免费看A级| 98色网| 超碰在线成人电影| 最新的亚洲无吗| 二对二中文字幕。| 国产日韩色综合| 六九九九| 久久久96| 嗯嗯,啊啊,国产精品| 婷婷人妻激情| 911粉嫩人妻| 久久精品中文| 午夜AV人气不卡| 国产夜夜艹| 欧美综合自拍| ′ !γ}丶。。久久精品欧美一区二区三区| 久9久9久9久9久9久9| 亚洲成a人片在线观看中文!!!| 日本有码久久| 久久久中文| 女优免费一区二区永久| 亚洲天天更新| 丰满人妻一区二区三区在线| 国产精品一区二区a| 国产久久一区二区午夜| 亚洲超碰97| 96精品在线| 欧美色宗合| 91九九九馒头| 国产极品精品美女视频| 欧洲与亚洲欧美精品中文字幕| 午夜人人操| 97se综合网| 国产精品一区二区久久精品| 日韩欧美丝袜诱惑| 欧美日韩色综合网| 中文字幕伊人| 中文字幕在线日亚州9| 超碰4A| 999久久久精品国产| 情色五月天就去干| 日韩亚洲美女一区久久| 国产兽交视频在线播放| 99re99视频在线免费观看| 搡老女人老妇女AAA一VU麻豆 | 3028国产精品| 久艹视频在线| 鲁鲁色综合网| 亚洲成人性| 91美女国产在线| 婷婷综合| 中文?日韩?免费?精品| av午夜玫瑰| 91人妻素女| 丰满人妻一区二区三区四区| 麻豆AV短剧| 人妻少妇av在线观看| 2017大香蕉| 中文字幕精品专区搜索结果91| 欧美色图天堂在线| 亚洲图片色图欧美另类| 美女爽到高潮91| 91九色在线| 操久久久久| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 精精夜夜| 久久riav中文精品| 日本女人久久久| 欧美另类自拍 | 日韩天天综合| 亚洲黄日韩无码专区| www成人啪啪18秘 免费| 国产成人亚洲精品无码最新在线| www久久精品| 啊啊啊啊二区好大| 高清无码网址| 亚洲色图殴美色图激情乱伦| 欧美色就是色| 成人熟女区| 婷婷四五区| 婷婷丁香九月| 一级乱伦网站| 九九九九AV| 国产人妻精品一区二区三区秋霞| 久久久久久久久久久人妻| www.国产高潮精品| WWW啪啪的com| 午夜男女爽爽大片免费观看| 97超碰超| 亚洲欧美内射| 久久人妻一区二区三区高清| 青青青青草av在线观看| 女色视频社区| 五月天色综合| 成视频在线观看免费看| 亚洲国产精品有声| 一区不卡在线观看av| 天美传媒精品久久视频| 青操影院| 亚洲人码13| 欧美 牲| 色女99一级片在线观看| 天美精品av| 婷婷性爱| 99热这里是精品| 国产精品亚洲一区二区三区四区| 无码最新| 成人a大片在线观看| 情趣丝袜无码操逼视频| 欧美在线永久天堂| 日本黄大片在线观看视频| 日韩电影在线观看网址| 97操| 国产精品福利资源在线尤物| 国产拍偷精品网站| 国产精品内射婷婷一级二| 天天综合网亚洲综合网| 激情文学亚洲| 自拍亚洲综合| 91激情国产| 91狠狠狠| 91岛国动作片| 成人线上超碰| 欧美激情高清性猛交| 青草视频人妻在线观看| 日本亚欧爱爱| 玖玖久久久| 久久精品久| 狠狠操,使劲操| 青娱乐福利99| 精品中文字幕一区二区| 日韩丰满熟妇| www色色com| 这里只有精品久久| 99re8超碰| 中文字幕女同在线| 东北女人性交| 精品人妻一二三| 国产丝袜欧美在线视频| 色婷婷激一区二区三区| 六月激情婷婷| 丝袜制服字幕在线| 天综合网欧美| 97K超碰在线| 国内毛片欧美香蕉精品| 美女被啪到深处抽搐视频| 国产家庭乱伦性爱视频| 日亚韩精品视频二区三| 人人操AV| 欧美伦乱爱| 91美女视频直播| 操一操摸一摸| 凸凹视频在线观看| www.欧精品| 好爽视频在线观看视频| 极品色社| 家庭乱伦网站国产| 中文日本免费高清| 久热一区二区| 日本在线999| 97亚洲资源| 亚洲欧洲综合成人av一区| 人人射人人操人人摸| 啪啪视频mP4| 日本久久久久久久久久| 国产精品久久久久无码A√| 夜夜操2028| 熟妇一区,二区,三区。| 日韩欧美成人综合在线| 青青草久久一区网| 精品九九九九九九| 超碰人妻在线| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 日本熟妇人妻一区二区三区| 夜间福利片1000无码| 97人人爱人人做人人乐| 96精品久久久久久久久久| 99视频在线| 91熟女视频网| 日韩性爱再线视频| 午夜无码熟妇丰满人妻| 日逼视频日本| 日日干男人的天堂| 婷婷丁香九月| 国产精品suv一区| 欧美日韩大香蕉| 精品人妻一区二区三区-国产| 97亚洲精品超碰| 亚洲操操| 亚洲在线a| 色欧美天天| 免费国产视频| 男人天堂.AB| 在线视频 亚洲精品| 欧美色偷拍| 国产v亚洲v日韩v欧美v片另类| 色老汉玖玖爱| 国产中出内射一区二区| 久久人妻97久久久久久久| 91黑人狂躁丰满熟妇| 99热亚洲天堂| 波多野结衣之双飞调教在线播放 | 漂亮人妻被强中文字幕hd| 日韩黄色成人性爱| 九九九999久久久网站| 婷婷色色五月| 91激情| 欧美性后入| 新久久AV| 亚洲春色欧美| 乱日视频| 亚洲囯产精品女人久久久| 美女让帅哥通她小鸡鸡| 另类在线| 日本黄大片在线观看视频| 日韩中文字幕2020| 亚洲精品久久久久久久蜜桃臀| 青青草一区二区高清无码视频| 91在线美女| 26uuu性| 99精品九九九九九九| 国产欧美美女免费观看视频| 色y情视频免费看| 风月影院男女十八禁| 成人在线日韩| 亚洲成aⅴ人片不卡无码| 91伊人久久在线| 日本欧美成人片AAAA| 国产无码久久高清| 97久久国产精品| 天天看综合网| 屁屁影院一区二区三区国产| 97超碰欧美| 九九av| 丝袜美腿欧美| 亚欧无码在线| 一区二区乱码福利| 国产AV线| 操人妻逼91| 五月丁香婷婷综合网| 亚洲欧洲av影音| 好一吊区二区| 日韩乱伦影音先锋| 久久久111| 亚洲综合97中文网| 国产精品久久久久久久电影渣男| 久久9免费视频| 欧美九九99久久精品| 婷婷亚洲五月***久久| 狠狠久久手机视频精品| 国产97在线播放| 伊人国产视频| 99热这里只有精| 国产免费久久久久| 精品久久久久久中文字幕三区| 日本熟妇人妻一区二区三区| 九9热伊人| 男人的天堂成人的社区| 99在线精品观看99| 黄色小视频日本txt| 日本乱人伦片中文三区| 九九九一二三| 中出20p| 久久久久大香青草精品综合| 91美女视屏| 日日操天天操| 精品亚洲国产成人AV制服丝袜| 欧美黄色大片在线观看| 日韩性爱小视频| 欧美97爱| 极品色| 午夜在线播放| 亚洲区 欧美区| 热久久无毒不卡| 欧美人人天天网| 91网站视频在线观看| 亚洲男人天堂网久久| 亚洲无套久久嗯嗯| 香蕉在线一区二区三区| 另类天堂| 99综合网| 亚洲 综合 欧美| 欧美亚州手机在线| 999久久久精品国产| 九九在线精品| 日韩啪啪啪啪啪| 丁香六月婷婷久久综合| 五月丁香色婷婷| 婷婷综合久久| 小泽玛利亚一二三| 欧美日韩国产传媒在线精品| 熟女丝袜视频| 99999精品成人| 亚洲国成人情色好看电影| 日本97久久久精品| 色www精品视频在线观看| 91老熟女老女人国产老太| 久热这里| 久操影视| 免费看黄片现成| 性影在线视频| 久久久婷| 大香蕉天天看妹子| 中文字幕午夜精品久久久| 婷婷伊人五月| 操狠狠| 久久久久国产亚洲一区欧美色图日韩 | 在线a v| 日韩激情啪啪| 午夜精品久久久久久久男人的天堂 | 亚洲中文日韩欧美大香蕉视频| 亚洲Av无码成人精品国产| 五月天综合| 高树玛利亚无码流出| 色娱乐色呦呦夜夜夜夜av| 男女性扦B| 日韩精品人妻一区二区| 国产精品白丝在线播放| 精品国产www久久| 亚洲欧洲偷拍一区| 欧美少妇性乱| 校园激情狠狠四射| 成人AV超碰免费在线| 久久精品国产亚洲AV片多多| 天天干天天干天天干| 91色黑人少妇| 91蜜桃传媒精品久久久一区二区| 农村女一级毛卡片| 一区二区三区探花在线观看| 91校园春色长篇| 久久久久密臀视频| 欧美美女视频| 无套内射人妻在线播放| 亚洲日本加勒比在线| 高清肉丝中文无码| 国产精品扒开腿做爽爽爽视频| 99国产在线 精品 视频| 日本 欧美 亚中文字幕| 中文字幕文字幕无码一区二区三区电影99| 夜夜久久久| 熟女五十路一区二区三| 欧美乱色| 国产91丝袜 在线播放| 99在线免费公开视频| 激情六月天| 97jingpin| 日韩免费福利在线观看| 天天日少妇逼AV| 日本三级韩国三级美三级91| 亚洲人成网站7777| 五月婷婷综合网| 亚洲少妇激情一区二区三区| 日韩AV无码网站| 欧美夜夜狠| 男人天堂最新手机版在线青青草| 亚洲精品国产无码高清| 欧美嗯啊……在线观看视频免费| 91精品国| 91小视频| 色五月激情AV在线| AV一区观看| av在线浏览| 91丨人妻丨国产丨丝袜| 亚洲精品成人| 久久久久幕乱码| 国产AV久久野战精品| 欧美 传媒 麻豆 日韩 偷拍| 亚洲天堂一区| 欧美综合站| 日日操夜夜操天天操免费观看麻豆| 亚洲精品aa久久伊人| 国产熟女二区| 久久精品中文字幕观看| 国产精品高潮久久AV| 人妻9117c| 激情露脸爱| 天堂v无码免费视频| 一二三四日本视频高清| 囯产精品久久久久久久久久二区三区| 婷婷伊人綜合中文字幕| 色爱天堂| 蜜桃成人1区2区3区| 精品无吗m| 久jiu久神马影院| 狠狠婷婷亚洲中文综合久久| 日韩熟女精品无码专区一区二区| 人妻精品视频一区二区三区| 九九九久千久久激情蜜桃在线看 | 少妇精品| 日韩一级二级| 国产综合色精品在线观看| 精品一区96| 国产精品久久久无码aV去| 中 文字幕一区二区三四 五 区日 日 骚 | 乳欲人妻办公室奶水| 久久美国毛片| 九九碰九九爱97超碰| 亚洲性天堂| 116美女午夜| 成人无码在线视频网站| 日本中文字幕一区| 日本精品不卡一二三区| 久久精品国产亚洲粉嫩| 精品无码久久久| 人人操人人摸人人看人人插| 天天操天天日天天干| 不卡免费av在线播放| 不卡视频一区蜜桃视频 | 蜜臀99精品国产高清在线观看| 九九九九九九九精品视频| 久久久久少妇| 96国产污污污丝袜| 91精品国产麻豆国产自产在| 校园春色综合网| 国内97干免费看| 亚洲综合婷婷| 麻豆国产97在线| 成人精品欧洲亚洲| 丰满人妻-区二区三区免费| 欧美不卡五十路| 蜜桃视频啊啊啊啊| 区日韩亚洲乱码av电影| 脫衣舞一区二区三区| 熟女少妇一区二区三区| 日本 免费 一区二区三区 久久香蕉 | 综合啪啪| 日本操逼视频不卡直接放| 人人操超碰在线| 亚洲三级网址久久最新| 蜜乳av首页| 久久欲| 深喉吞精| 激情四射五月天| 玖玖97综合| 国产精品免费视频人成| 少妇熟女1区2区3区| 97在线观看视频| 91撸色网 玖玖网 欧美| 91狠狠综合久久| 性爱视频啪啪啪啪| 欧美色图第一页| 九九九九九九免费视频| 亚洲精品欧美专业| 人妻少妇一区二区| 人人操人人摸人| 人妻一区二区三区视频| 久久尹人大香焦视| 美熟女逼导航AV操逼| 91女神在线视频| 九九综合色| 亚洲 国产 精品一区| 日本中文字幕不卡视频| 精品人妻一区二区三区视频在线| 亚州九九九精品视频| 性色高清在线| 91N欧美| 五月天激情四射| 亚洲第一黄色av网站 | 伊人网在线观看| 欧美亚州手机在线| 中字幕人妻一区二区三区| 97视频免费| 欧美日韩亚洲少妇寂寞影院正在播放 | 丝袜夫妻自拍| 色色热| 自慰白浆在线观看| 夜夜影视四色| 亚洲第一狼人丝袜美女另类| 高清有码一区二区| 欧美性xxxxx狂欢| 2026国产精品视频| 久久女同性恋一二区| 97久久精品亚洲中六字幕| 天天操天天插| 99色视频| 蜜臀av在线播放一区二区三区| 国产精品无码论坛| 黄色av片三级三级三级免费看| 久久久青青草| 东京太热男人的天堂久久久| 国内一级精品| 天天综合网视频91| 伊人网在线点播| 正宗无毛一线天嫩逼| 影音资源男人日韩| 天天综合欧美黑人| 中文字幕av片| 老司机福利社视频在线观看| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 欧美A√综合网| 欧州激情视频在线一区二区| 97超碰亚洲| 99蜜桃臀亚洲成人在线观看| 999九九精品| 俺去啦自拍| 99福利社| 亚洲无码一区成人免费午夜| 色香天天| 天天综合网网欲色| 性饥渴少妇av无码毛片| 翔田千里无码中出中文字幕| 亚洲图片色图欧美另类| 亚洲少妇综合在线播放| 91三级理论片播放器| 日韩成人综合网| 91精品电影18| 国产农村妇女精品一二区| 欧美日韩大陆黑人少妇99| 欧美影音在线| 自拍啪啪视频| 91香蕉国产尤物视频| 综合国产影视三级| 无套内射人妻在线播放| 99热最新| 亚洲狼狼干综合1| 熟妇高潮精品一区二区三区下载| 蜜臀va69| 亚洲国产另类在线中文| 国产三级资源在线观看| 插日本熟女视频| 日本肏逼视频在线观看| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 全国男人天堂网| 国产强奸乱伦欧美| 色综合av男人天堂| 91Chinese在线| 亚洲欧美九九九| 高清孕妇孕交 交孕妇| 成人无码欧美一级A片狼牙直播| 人人操人人爽人人操人人| 国产精品探花视频| 亚洲男人天堂Av| 久久鲁夜| 激情一区二区| 久久性生大片免费观看性| 亚洲国产精品无码AV久久| 超碰国产精品久| 欧美 亚洲 偷拍自拍| 91久久精品国产| 久久成人精品| 91人精品妻入口| 伊人五月天| 美欧老女人97| 亚洲91色| 手机在线人成免费视频| 中文字幕制服欧美久久一区| 91精品国| 95自拍视频在线观看| 日韩pv中文| 欧美图片校园春色| 老子午夜伦不卡影院| 99热这里只有精| 欧美在线综合| 老熟女乱伦片| 日本在线一二| 久久宗合97| 国产一级特黄大片处女| 99999精品视频| 成人三级片一区二区三区视频| 韩国手机不卡无码三级视频| 丁香五月天婷婷姐| 91老司机精品| 美中日韩无码| 日韩资源网| 91伊人久| 99热精品在线| 精品一区二区2| 午夜福利免费精品视频| 国产精品久久发布| 在线看污网站| 黄aaaaaaaaaaaaaaaaaa色网站| 色综合99999| 日本爽爽爽爽爽爽免费视频| 大稥蕉免费视频这里只有精品| 日日夜夜骑| 亚洲开心网| 天天综和| 久久受www免费人成| 热热色综合网| 在免费jIzzjIzz在线视频| 国产97综合| 最近的最新的中文字幕视频| 色欲人妻一区二区在线| 美国一区二区三区视频| 中国黑人三级片网站上区| www.色操逼| 亚洲第一页欧美| 蜜桃精品视频一区二区三区| 丰满人妻一区二区三区| 亚洲欧美精品91| 97天堂| 九色视频91| 天天综合,91入口| 婷婷五月天AV| 国产97亚洲| 99青草| AV麻豆免费一区| 美女啪欧美一区| 欧美特大AA级黄片| 九九自拍伦理| 亚洲制服欧美另类内射| 五月天亚洲网| 国产亚洲99久久精品| 人妻少妇精品视频一区二区三区| 91久久精品蜜臀| 91另类| 成人热久久精品| 亚洲一欧洲中文字幕在线| 老女人91| 大香蕉AV在线| 日韩成年人性爱视频| 亚洲天堂另类小说男人| 日本无码1| 97超碰欧美精品| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 思思热免费视频观看| 欧美肥臀在线| 中文伊人大香蕉视频| 岛国大片国产| 99精品热| 综合久久中文字幕综合日韩精品| 国产传媒av天美传媒在线| 求求你操操我| 亚洲国产一级精品毛一级精品看免费视频 | 岛国毛片手机在线观看| 久久9精品| av2014 日韩在线中文字幕| 97色97好| 亚洲欧美精品久| www.AV有限公司一区| 成人网欧美风情| 国产suv精品一区二区四区999| 国产后入清纯| 91N欧美| 亚洲欧美综合区自拍另类| 亚洲天天自拍| 日本免费不卡二区| av天堂5| 夜夜操美女| 欧美,亚洲,日韩,v,天堂,手机在线观看| 日韩精品区二区三区不卡| 亚洲免费在线探花| 老鸭窝成人| 91高跟美女在线播放| 天天日天天色| 成人网站 免费观看| 久久久9999| 蜜臀中文无码午夜| 中文字幕97色| 很很热性爱视频| 免费?级毛片无码?∨蜜芽试看| 992视频一区| 日韩精品影视| 久久伊人网视频一区二区三区 | 国产女同性恋视频| 一区二区三区精品黑丝白丝酒店对鸡 | 久操大香蕉| 高清成年美女黄网站免费大全| 嗯嗯啊啊好爽| 久久久久久十| 欧美女同在线| 91精品又粗又猛又爽| 久久成年精品| 禁止观看美女黄| 99色视频| 久久爱97| 天堂av最新电影网| 内射卯月麻衣| 成人久久精品| 久偷拍| 人妻在线臀日韩| 成人综合色网| 欧美劲爆视频一区二区| 操逼www.| 懂色av色欲av蜜臀av| 中文字幕AV乱伦| 超碰在线人妻中文字幕| 免费视频97| 91丝袜视频在线观看| 老熟女综合网 | 18禁美女裸体无遮挡啪啪| 欧洲精品区| 中文字幕一区二区日韩网| 亚洲 欧美 制服 另类 自拍| 嗯嗯啊啊好疼| 日韩综合成人免费视频| 无码99| 国产成人91一区二区三区| 天天做天天爱天天爽| 国产精品在线免费| 色人久久| 97在线视频免费| 床上啊啊啊一区二区三区| 超碰97人人cao| 日韩肏逼视频| 天天综合站| 成人开心网在线视频| 久射吧| 久操电影网| 成人开心网在线视频|