国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲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
返回資訊列表
亚欧性爱在线无码| 午夜综合在线| 久久精品色欧美aⅴ一区二区| 青青草在线视频美女| 五月婷婷激情网| 一级性爱视频免费观看 | 裸体美女免费看网站青草| 人人做,人人操,人人摸| 亚洲97成人在线观看| 9999九九九久久久| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 蜜臀精品1区2区| 亚洲最大成人a毛毛片| 亚洲天堂资源网| 天天操天天谢| 亚91亚洲网| 二色av| 日韩性爱1级片视频| 78精品在线| 精彩久久中文| 天天干人妻| 欧美熟妇亚洲版| 97爱爱爱综合| 中文字幕黑人大片| 亚洲成人网站在线观看| 久久精品国产96精品亚洲拳交| 91亚州| 96精品久久| 偷拍亚洲视频一区二区三区四区| 91国精产品| 成人综合视频久久| 麻豆av一区二区三区| 看一级黄色视频| 夜夜嗨老熟女AV一区二区三区| 男人天堂.AB| 国产伦精品一区二区三区在线观| 女人喷水视频在线观看| 秋霞一级视频在线观看免费| 国产91美女高潮| 天天干天天干天天| 欧美日韩222| 国产超碰国产97| 99视频内射三四| 国产女人成人精品视频| 爱射综合| 青青草视频久久| 欧美日韩性感| 久久9亚洲| 欧美天天插| 黑丝少妇在线观看| 九九英色视频| 后入式在线免费观看60秒| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 好爽视频在线观看| 玖草在线视频| 国产精品盗摄 偷窥盗摄| 欧洲性爱无码区| 欧美自拍偷拍综合图片| 婷婷九月丁香| 女人香蕉久久毛毛片精品| 东京太热男人的天堂久久久| 射久久| 热99这里有精品综合久久 | 水多多映视AV| 欧美老妇曰批的视频| 欧美日韩国产黄色片| 国产操偷| 久久久工口| 中文字幕乱碼在线| 欧美91色| 欧美人人操人人插| 国产精品视频精品一二| 人妻在线中出视频| 俺也射| 九九九网站| 久操91视频| 国产欧美岛国精品一区| 五月丁香六月激情| 欧美 传媒 麻豆 日韩 偷拍| 97国产精选| 啊啊啊在线观看| 欧美色视频在线| 午夜男人一级A片7777| 日日夜夜草草草| 大香蕉99re| a片在线播放| 69精品久久久久中文字幕| 亚洲另类综合欧美| 九九九九精品视频| 亚洲 国产 精品一区| 亚洲……91| 丝袜视频网国产90| 人人操人人操人人人操| 熟女乱伦二区| 亚洲国产精品久久久久婷婷老年 | 920日本午夜免费| 欧美国产操逼| 久久精品中文字幕观看| 91在线美女| 骚人妻少妇视频| 精品欧美老熟女一二区| 日韩啪啪啪啪啪| 操亚州| 日本Suv精品一区二区| 欧美日韩色综合网| 日本精品免费一区二区三区四区| 久久国产乱子伦精品免费女,网站| 久久中文字幕一区不卡| 91人人爽人人爽| 亚洲 欧美 日本 国内 首页| 国产精品无套内谢| 亚州欧美一区| 亚洲一区二区三区四区视频| 99蜜桃臀久久久欧美精品网站| 亚洲美女精品| 九九九九九九九九九国产精品 | 日韩一级成人毛片免费观看| 啊嗯嗯啊好大好爽| 99色热国产视频精品| 欧美精品双插| www.黄色在线| 人妻丝袜肏逼| 国产精品无码在线| 日韩二区三四区五区六区在线看| 无套内射人妻在线播放| 欧美91网站| 日韩欧美午夜一区二区| 玖玖草久草99蜜月一区二区三区| 亚洲一区二区三区AV无码| 中出后入| 99操碰| 久久99久久99精品天美传媒棢·纸:. | 天天日天天搞天天干| 亚洲欧美九九九| 八戒无码国产午夜福利| 成人夜夜| 91校园春色长篇| 精品黄色电影| 人妻酒店出差被中出免费在线播放| 蜜乳Av成人片网站| 九久久九九久视频| 久久久久日本视| 中文字幕久久婷婷丁香五月天| 九九九九九九亚洲| 91在线超高颜值国产| 老熟妇综合| 超97在线精品视频| 九九九国产精品| 色五月婷婷网| 国产精点久久久成人| 欧美综合综合| 二三四区精品| 人人摸人人干| 天天操天天干一区二区 | 性欧美999| 青青草视频这里只有精品| 精品无码久久久久久久久果冻糖心| 超碰亚洲97| 男女性感激情网站| 亚洲网站一区二区在线| 大白逼三四级| 麻豆国产成人精品| 亚洲97P| 亚洲一区中文字幕一区| 手机久操欧美综合色码| 精品一区二区亚洲国产| 久久大黄片| 日本新免费二区三区| 探花精品视频| 在线观看成人性爱免费小视频| 精品一区二区久久| 人妻美腿丝袜制服诱惑综合天堂-| 一区二区三区黄色片a| 传媒在线观看一区二区三区| A啊啊在线观看| 国产一区二区在线电影| 国模私拍一区二区三区神乳| 人人操人人干xxx| 欧美热图99| 嗯嗯,好大,好爽,好骚| 99热18| 国产av激情无码久久天堂| yazhouzaixian| 超碰午夜在线| 人妻天堂综合网| 欧美精品xxxwww| av网站免费看| 欧美亚洲系列| 漂亮人妻被强中文字幕hd| 动漫片子网站3黄| 激情六月天| 久操视频资源站公开| 欧美日韩插逼视频| 久久久中文版| 一个人在线看的黄色电影网站| 精品一区二区成人动漫| 一区二区三区探花在线观看| 人人干人人操人人爱| 久区视频| 人人妻人人色一区二区三区| 精品九九淫乱男| 九九热超碰97亚洲最新香蕉| 暖暖精品二区三区观看| 精品91摸| 久久鲁夜| 日逼五月天| 久久久亚洲精品电影免费看| 欧美性爱97超碰| 伊人婷婷五月天| 91精品久久综合熟女| 欧美亚洲另类在线蜜桃| 日韩乱伦影音先锋| 国产又爽又黄| 欧美九9 9 9| 久久性视频| 人人看人人摸人人色| 欧美色性爱| 国产色呦呦| 欧美日韩性爱操大逼| 日本欧美亚洲高清在线看| 国产 亚洲 丝袜 制服| 97任你吞精| 亚洲欧美首页| 欧美欧美啪啪视频| 国产精品亚洲一级av第二区| 操逼逼福利视频| 日本熟妇人妻中出视频| 亚洲欧洲网站免费观看| 99日精品欧美国产| 日产成人久久| 黄色网址在线免费观看| 男人的天堂一区三区| 亚洲色 国产 欧美 日韩| 成人麻豆av电影网站| 欧美亚洲色图另类国产| 免费视频无码| 五十路二区在线| 天天操天天7| 久99在线免费观看视频| 密臀视频三区免费网站| 国产精品爆乳懂色蜜乳| 无码 黑人一区二区三区| 啪啪啪东京| 黄片无码在线制服| 国产久久久9999| 亚洲日产专区婷婷| 日日骚一区二区三区| 91情色| 日韩无码a片| 亚洲中文字幕精品久久久久久直播 | 日韩久射综合| 国产精品九九九| 午夜国产乱伦视频| 五月天社区| 欧美激情亚洲色图| 骚货 中文字幕 av| 国产一级舔足在线观看| 中文字幕狠狠玩| 日本久操视频| 热热色AV| 操操吧亚洲乱伦视频| 免费中文在线| 懂色AV中文| 婷婷久久久精品| 内射老妇BBWX0C0CK| 亚洲制服欧美另类内射| 18岁禁 茉莉成人久久| 美女黄页网站| 99精品久久久久久久婷婷| 久久精品一区二区三区不卡| 加勒比伊人综合| 丰满少妇一区二区三区免费看| 啪啪视频亚洲第一| 午夜久久一区二区无码中出| 久久香蕉国产线看观看亚洲女人| 日韩精品在线观看观看| 亚洲一二三四区机械| 99自拍视频在线| 人妻酒店出差被中出免费在线播放| 老鸭窝成人免费毛片视频| h4610国产人妻| 欧美97日韩| 在线中文字幕视频| 超碰国产在线| 亚欧美综合| 日韩国产不卡在线视频| 天堂在线一区二区| 人妻81p| 和协无码影院| 香蕉欧美| 久久综合日韩亚洲欧美| 东京热一区二区中文字幕| 久久综合九九| 国产97色在线| 亚洲欧洲小说图片视频| 嗯嗯啊啊操我| 亚洲综合另类欧美久久久| 国产精品播放| 精品一区96| 日日夜夜摸| 色综合98| 国产兽交视频在线播放| 嫩草影院永久在线制服丝袜| 亚洲一级特黄大片在线播放91| 麻豆九九九| 中文?日韩?免费?精品| 北条麻妃99精品青青久久| 91精品91久久久中77777| 激情婷婷丁香| 人妻精品一区二区全免费| 女沟厕偷窥piss小便| 国产精品九9| 精品人妻一二三| 一区麻豆 高清中文字幕| 国产精品无码久久久久2025| 97久久国产亚洲精品超碰热| 午夜色婷婷| 大香蕉99999| 国产乱码久久| 日韩高清黄片| 夫妻AV网站| 亚洲天堂中文字幕无码男同| 国产一级舔足在线观看| 超碰98综合网| 丁香五月激情综合| 亚洲黄色视频在线观看视频| 伦在线97| 开心激情婷婷| 欧美人妻一区| 丰满人妻一区二区三区色-百度| 久久的网站啊啊啊啊啊| 操B在线观看| 亚洲丝袜诱惑| 东京热熟女亚洲视频网站| 久久久国产成人一区二区三区在线| 日韩无码第3页| 操操操操操操| 激情综合网激情五月天| 激情网色| 91夜色| 欧美天堂亚洲电影院一区在线播放| 中文字幕 国产区| 4141514逼喷水三级片| 在线观看岛国有码| 天天射天天操天天干天天吃2018| 久久精品高清无码一区| 亚洲美女色图| 99热这里只有精品8| 亚洲综人网| 天天做日日做天天欢。| 久久久久久久性爱| 精品9999| 欧美色图成人网一区二区 | 欧美日韩丝袜| 亚洲精品a人片在线观看视| 视频国产成人精品日本亚洲18| 秋霞鲁丝午夜无码一区二区三| 九九AV| 国产不卡免费在线视频| 中国AAAAAA黄色片| 日夜伊人网| 人澡逼| 中文字幕版| 亚洲有码 视频一区| 亚洲成人一区二区精品| 日本三级A片网站com| 欧美懂色综合网| 日本不卡中文| 一区二区不卡免费| 亚洲色丰满少妇高潮| 人妻久热在线| 2011国产精品| 91九九九馒头| 毛片中心9视频99| 簧片免费看视频| 欧美色图97| 人妻无码后入| 欧美成人亚洲精品| 超碰 av 女人天堂| 久久欧洲| 神马午夜久久久| 红桃视频高潮| 欧美日本天堂| 精品久久大胆人体| 久久97超碰香蕉| 欧美亚洲厕所精品偷拍91| 欧亚第一综合网| 青青草啪啪网| 亚洲凸凹超碰成人| 亚洲影视第一页| 蜜臀久久精品久久久久视频| 加勒比久久av| 草久在线| 亚洲91在线| 狠狠操使劲操| 亚洲国产成人7777| 91影库| 欧美强奸乱能| 无码日韩网站| 久久秀这里有精品| 大香蕉在线视频重口味毛片在线| 91天天爱| 亚洲天在线| 亚洲乱妇p22| 日韩av在线精品观看| A级国产欧美激情在线| 内射小黄片| 激情小说成人日本无码一| 首页中文字幕中文字幕免费| 99精品久久久久久久婷婷蜜桃| 偷拍视频青青草在线视频| 九九九九九精品视频| av网站免费看| 日本午夜福利影院| 日本一区三级韩国| 丰满精品人妻少妇久久字幕| 啊啊啊轻点在线观看| 国语精品对白| 美女熟妇色| 男男H黄动漫啪啪无遮挡网站| 天天干天天插| 三级网站超变态精品| 天天搞欧美| 欧美v日韩v亚洲v最新在线| 超碰成人公开| 欧美国产日韩清纯唯美| 欧洲精品欧洲精品| 丝袜美腿亚洲| 国产成人免费观看在线视频| 18精品一区| 97久久国产亚洲精品超碰热| 熟妇乱伦一区二区| 天天看,天天做| 刺激性视频黄页| 日韩电影中文字幕| 爽极品影院| 天天做天天爱天天高潮| 亚洲综合校园春色| 乱伦一二三| 亚洲啪啪性视频| 亚州高清色综合| 亚洲精品久久久久久久蜜桃臀| 男人高清无码一区二区| 欧美色图亚洲特色| 欧美黄业| 久久久激情| 极品白嫩美女白浆成人福利在线看| 日韩精品.久久精品.AV女优.天美传媒| 色臀aV| 色综合一本| 91精品久久久久久77777| 青青欧洲黑| 一级片视频啪啪| 极品色社| 国产精品96| 久99| 在线洲亚线| 高清无码 国产精品| 天堂麻豆天美| 青娱乐国产剧情av一区| 中文字幕老熟妇黄色视频| 久久久久久久久女黄| 成人5码视频| 欧美日韩亚洲天堂网| 久久久久9999| 在线观看AV不卡| 国产400孕妇孕交群| 婷婷丁香久久| 熟妇人妻精品一区二区| 九月婷婷久久| 老鸭窝成人免费毛片视频| 3p国产色噜噜一区| 欧美日韩国产色五月综合在线| 999亚洲国产视频| 欧美亚洲日韩16色| 99精品欧美一区二区三区桃色| 宅男午夜在线视频| 看免费的黄片| 伦在线97| 黄网色一区二区三区四区精品| 97视频www| 超碰成人最新最好看| 久久久久久久9最新免费视频观看| www.大香| 欧成人在线| 亚洲va综合va国产va中文| 资源新线在线天堂| 69人妻精品丰满熟女区| 国产精品无套内谢| 欧日韩一二三f区| 五月激情在线| 日熟女| 欧美日韩亚洲国产中文永久天天看| 亚洲色图亚洲无码强奸乱伦| 91n处女在线观看| 麻豆60秒| 911av网站免费观看| 91艹| 国产亚洲 中文欧美久久| 在线毛片片免费观看| 欧美亚洲高清不卡| 九九在线视频| 7777奇米影视久久| 传媒在线观看一区二区三区| 国产人伦精品一区二区三区| 丝袜剧情| 91超碰在线| 中国小夫妻勾搭露脸淫荡对白| 探花一区在线| 中文字幕人妻资源在线| 久热这里| 色婷婷婷五月天激情四射| 日本一级二级三级网站| 九九综合九九综合| 亚洲男人天堂2| 亚洲91av| 91精品国产高清久久久久久,亚洲成人 | 1204av韩国| 超碰免费人人| 综合欧美激情网| 91美女小视频| 日本五区不卡| 人妻 制服 日韩 中文 在线| 婷婷五月天社区| 伦伦成年午夜免费视频| 亚洲精品97| 妇女乱色二区| 亚洲一区二区 麻豆传媒| 91一区二区| 欧美日本国产日韩激情视频| 插入逼91| 国产99热| 欧美92| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 97在线观| 亚洲日韩黑丝| 国产情色在线| 日欧毛片久久| 99啪啪| 国产高清1234区| 亚洲av无码成人精品国产| 丰满岳乱妇一区二区三区| 福利视频香蕉免费一区二区在线| 少妇天堂| 综合网亚洲在线| 啊啊啊不要嗯嗯在线观看| 欧美操逼视频二区| 欧美色图亚州激情| 麻豆久久久久久久久丝袜| www.色五月| 在线播放成人网站| 一区二区三区机械有限公司| 国产粉嫩出水在线播放| 欧美大香蕉专区网| 久久久久久久亚洲Av无码| 超碰国产精品无码| 日本黄色大片一级视频免费麻豆| 无码高清少妇久久| 影音先锋乱伦资源| 懂色av色欲av蜜臀av| 国产亚洲精品美女久久久| 欧美传媒| 日韩中文字幕人妻视频| 狠狠色狠狠色狠狠五月| 综合操逼| 日韩av乱伦| 日本高清久久| 91neishe| 9久久美女首页| 亚州高清色综合| 91精品久久久久久久久久| 女上位精品在线| 九九九久| 国产91丝袜 在线播放| 中文字幕综合人妻| 色亚州人久干视频在线观看免费版| 国产精品久久久久久久久久久久久久久久久久 | 日本乱人伦片中文三区| 偷拍三区| 久久一级无码精品毛片6| 97国产成人精品免费视频| 狠狠操综合| 男人天堂一区二区| 91伊人影视综合| 日韩精品电影| 精品少妇高潮久久| 91老熟女视频| jk白丝没脱就开始啪啪| 九九色婷婷| 老熟女91av| 好屌色综合| 久久久久久久久9| 久久久亚洲熟妇熟女| 天天躁日日躁AAAAXXXX国产| 最新日韩黄片| 亚洲人在线| 免费精品AB| 日本淫乱女一区二区三区视频| 欧美亚洲素人制服精品| 丁香五月性| 亚洲97P| 偷窥自拍亚洲| 亚洲一区二区三区不卡国产欧美| 午夜男人一级A片7777| 亚洲综合另类欧美久久久| 狠色婷婷久久一区二区三区_| 少妇高潮九九九九九九九| 无码不卡亚洲成?人片| 婷婷影院入口| 99re9这里只有精品| 99精品综合久久久久五月天| 国产精品日韩在线一区| 婷色五月天| 亚洲欧美国产va在线| 欧美狠狠干| 最新日产中文在线麻豆| 亚洲综合影片| 91色婷婷综合久久中文字幕二区| 精品人妻av在线播放| 99re6久热只有精品6在线直播| 长久操视频| 黄色片A级一区二区三区| 99热啪啪| 久久9免费视频| 性爱乱伦视频免费| 7月婷婷综合| 超碰99在线| av天堂5| 欧美亚洲美少妇一区二区| 日本加勒比无码专区| 色欲日韩欧美在线一区| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 欧美激情亚洲色图| 亚洲欧美另类图片| 婷婷午夜| 亚洲色婷婷综合久久久久中文| 人人妻人射| 亚州综合AⅤ| 1000部熟女视频在线观看| 91无人区卡一卡二卡三乱码入口最新版:能让用户有更多选择的选择-经典说说-爱 | 色色色综合网| 亚洲黄色电影| 成功精品影院| 久久久久久久唑| 色激情五月天| 免费视频97| 天天干天天爽| 97亚洲综合影院| 91色艳| 97干在线| 一本正道久久熟女| 一级人妻性爱视频| 青青草啪啪网| 精品久久久久av影院| 国产久久日| 操逼操逼视频操逼| 婷婷九月丁香| 丁香六月婷| 欧美加勒比| 99.色网| 人人 操人人 操人人| 精品无码一二三四区| 高清无码一区二区三区| 国产后入清纯| 丁香五月影院| 日韩在线国产字幕| 四虎884a| 婷婷亚洲五月***久久| 综合欧美色图| 精品91摸| 欧美天天干| 97在线亚洲| 亚洲激情久久| av爱爱爱| 夜夜国自区| 亚州宗合另类| 亚洲伊人a线观看视频| 日本免费一区二区不卡 | 91天天c| 亚洲色诱惑| V A在线| 天天草AV| 97中文超碰| 成人七区| 男人的天堂va| 亚洲日韩少妇一道本视频| 成人午夜视频免费播放| 精品无码欧美三级| 国产精品午夜精品| 色狠狠综合噜一二三区| 另类一区| 亚洲成人在线高清| 高颜值美女口爆高潮浪叫| 第四色色综合91| www欧美性爱| 日韩强奸av| 992大香蕉| 久久综合女优| 熟女性视频| a天堂视频| 欧美组图日韩亚洲中文字幕| AV天黑人| 国产丰满少妇久久久精品影院| 伊人色综合网电影| 午夜激情成人在线观看| 熟女人妻一区二区三区| 搡老女人老91妇女熟女| 亚洲另类色图片| 99色在线| 日本三级R| 亚洲国产一区二区入口| 91久久| 97久操| 超碰久久精品| 日韩9999| 有码人妻系列| 欧美综合骚| 久久久五月天| JIZZJIZZ国产精品喷水| 黄色片一区二区三区四区五区| 9Ⅰ老熟女| 91天美免费| 亚洲色图第四色| 人妻在线大香蕉| 欧美亚洲丝袜美女电影| 夜夜嗨一区二区| AV九九| 女人被添高潮免费视频| xxx亚洲午夜天堂| 91狠狠综合久久| 黑人精品成人一区二区三区| 美国人人操人人操| 中文日本免费高清| 交换娇妻呻吟声不停中文字幕| 欧美性生活男人的天堂| 不卡中文字幕aⅴ在线| 久啪视频| 色天使AV天堂| 91亚洲狠狠色| 亚洲蜜臀精品视频久久| 免费男人的天堂| 色综九九九一区| 久久久久深夜无码| 国产精品午夜福利| 清纯唯美激情| 97超碰美女| 精品综合久久久久久五月天| 日韩福利电影网| 日本中文熟女视频| 涩综合导航| 日韩色欲久久一二三四区| 911av网站免费观看| 女人被男人桶爽视频网站| 天天色天天干天天射| 日本操嫩b网| www网站黄| 激情99| 国产视频一区二区三区久久亚洲天堂| 91在线免费观看处女| 久久男人网| 日韩欧美中文字| 91欧洲入口| 成年人黄色| 老司机深夜18禁污污网站| av绯色| 97久久视频| 射丝袜高跟鞋99| 欧美国产有色电影| 91丝袜人妻| 日韩欧美亚洲自拍偷拍| 久久久久久久久国产| 伊人嫩草| 欧美第一页| 亚洲中文国际强奸字幕| 精品人妻伦一二三区久久| 日本午夜福利视频| 少妇高潮喷水无套久久久久久| 老司机香蕉| 欧美18 在线观看| 久久精视频美日韩在线视频| julia高潮后不停追击中出| 超碰97玖玖爱| 色色97爱| 色黄色美女大长腿午夜视频| 九九碰九九爱97超碰| 激情图片亚洲色图| 伊人网在线点播| 蜜乳成人AV| 九九久久精品| 9999九九九久久久| 啊啊啊操死我| 能直接看AV的网站| 亚洲色图加勒比| 极品人妻少妇综合| 亚洲成人日韩小说| 久久免费中文字幕在线观看| 伊人久大| 久久无码成人| 人妻精品综合中文字幕在线 | 91中文精品日韩欧美在线| 怡红院久久老司机| 亚洲国产精品无码AV在线| 91网站18在线观看| 清纯唯美第一页| 亚欧日韩成人| 男插女青青影院| 天美传媒婬乱在| 国产又色又爽又舒服的三级视频| 伊人精品视频| 日本一区二区亚洲综合| 色五月激情网| 97超级色碰碰| 青青操综合网| 白 大 人妻 区 在线| 老司机午夜精品视频| 九九九九九九九九九国产精品| 91综合色噜噜| 天天干,夜夜爽| 91热色| 操逼操网| 亚洲的天堂网| 巨爆乳一区二区爆乳区| 国产久久一区二区三区野外在线| 玖玖久久久| 婷婷91| 精品丰满熟妇人妻一区| 乱伦AVxx| 欧美在线|亚洲| 一级特级aaaa毛片免费观看| 极品久久久久久久久久久久久久| 激情小说图片亚洲首页| 少妇毛片久久| 人人爱人人乐人人操| www.欧精品| 老熟妇乱轮| 欧美少妇一区二区三区| 少妇久久| 天天综合网91入口| 超清福利精品视频在线| 97色欧州| 激情无码日韩| 五月天欧美色图| 日韩黄色成人性爱| 天天色综合影视网| 日本在线一二| 探花视频免费观看国产专区| 男人的天堂成人的社区| 操操操五月天婷婷丁香影院| 青娱乐大香蕉| 国产综合网站在线播放 | 新视频sss国产| 亚洲第一狼人丝袜美女另类| 久久骚| 色婷婷亚洲婷婷| 久久无码精品| 色婷婷综合久久中文字幕雪峰| 精品无码一区二区三区| 一线黄色免费性爱片| 午夜后入| 色色色色网站| 亚洲久久久久| 97色涩| 日本123区操B视频| 综合网91| 9999亚洲精品| 色区久久| 女人与公拘交酡2020视频| 亚洲老司机123专区| 亚洲熟女av日韩熟女| 91亚洲情色| 99国产精品久久久久久久成人热| 亚洲色图日韩精品| 久久久久久久97| 国产熟妇一区二区| 美女啪欧美一区| 国产精品蜜乳AV| 97超碰69| 丰满人妻无码一区二区三区| 91麻豆天美国产欧美高潮| 激情自拍 校园春色| 国产第12页| 97欧美资源| 天天摸天天碰天天添青青| 亚洲精品日韩国产欧美| 人妻少妇久久中文字幕一区二区 麻豆 | 国产在线综合网| 美女让帅哥通她小鸡鸡| 玖玖人人爱| 亚洲一卡2卡3卡4卡乱码网站| 一本色道综合久久欧美日韩精品| 色噜噜人妻丝袜AV资源| 超碰久热| 再深点灬舒服灬太大了添视频| 伊色久人大在线| 国产丰满熟夫69mpp| 婷婷色导航| 成人小说视频在线精品欧美| 久久久精精精| 大乔未久88一区| 亚殴在线| 久久精品国产免费观看99| 肏逼视频日本| 色综合天天爱去电影网| 精品人妻一区二区三区视频| 黄页大片在线观看| 激情五月天视频| 国产久久av| 激情 欧美 亚洲 小说| 日本色日夜干| 久久久无码精品人妻二区| 狠狠亚洲| 91黑丝少妇| 色爱综合网| 噜噜噜无码AV一级一级久久影院| 亚洲欧美日韩免费电影| 国产午夜精品理论片一二三区区| 97碰碰色| 日日骚一区二区三区| 久久久精品一区二区| 亚洲欧洲日产国产综合网| 久久大香蕉手机高清| 久久激情视频| 亚洲一区日韩| 日韩一级片在线看| 久久无码电影| 操逼片中文| 日韩探花精品在线视频| 大香蕉综合在线| 久久偷拍人| 蜜臀精品1区2区| 中文伊人大香蕉视频| 亚洲男人天堂2019| 亚洲另类综合欧美| 七久久久| 色精品极品| 天天爱天天操| 少妇干B| 成人午夜小视频手机在线看| 精品午夜福利国产一区二区在线观看| 久草精品国产99| 婷婷伊人五月| 天天爽夜夜爽夜夜爽精| 精品国产一区二区三区在线播出| 蜜臀AV秘一区翔田千里| 午夜福利一区二区影院| 翔田千里一区二区三区奶水| 欧美精品一区二区少妇免费A片| 国产一区二区三三视频| 国产传媒操逼视频| 久久久亚洲欧美综合| 国产精品视频白浆免费| 手机看av网站在线看| 91狠狠综合久久| 猛交交| 欧亚乱色熟一区二区三四区| AV高清一区| 九九九九九九视频| 97天天插| 天天操天天舔| 日韩操啪| 日本精品无码三级网站| 国产精选三级在线观看| 色综合天天| 超碰97资源中文字幕| 伊人久久亚洲中文字幕不卡| 久久久少妇诱惑精品视频| 美女好片色日本| 国产肏逼网站| 亚洲一欧洲中文字幕在线| 一区在线观看中文字幕| 亚洲精品久久久久久久久豆丁网| 91撸色网 玖玖网 欧美| 欧美日韩97在线| 中文乱码字幕观看| 国产成人午夜视频网址| 翔田千里av一区二区三区| 91是天天| 欧美日韩中国x| 久久精品熟妇丰满人妻99| 中文字幕五月婷婷免费| 成人片在线播放| 日本加靬比网站发布页| 韩国嫰模上门援交视频| 爱爱动态60秒| 成人午夜小视频手机在线看| 亚洲色图91欧美日韩| 人妻丝袜肏逼| 亚州一区二区| 国产精品探花视频| 泰国AV在线观看| 美国三级日本三级久久99| 国产成人在线观看网址| 强奸乱伦动态污图免费| 99国产天美| 人人妻人人爽| 看一级特黄a大一片| 啊啊啊 在线观看| 成人夜夜| 激情五月天插| 久久这里都是精品| av天堂加勒比| 欧美另类精品xxxx| 高清不卡视频| 日日不卡av| 婷婷丁香五月天亚洲天堂网| 第四色色综合91| 欧美性性性| 一级久久性爱视频| 天堂在线一区二区| 亚洲本色精品一区二区久久| 国产无马av| 啊啊啊啊啊啊啊网址在线观看| 人妻色偷色噜| 亚洲国男人的天堂| 91操熟女视频| 多乙久久久久久| 欧美情色贴图| 免费视频在线一区二区不卡| 久久性爱视频| 欧美色97| 日本韩欧美在线播放a| 人妻黑丝袜电影| 成人av在线播放| 德国一二三不卡| 五十路熟女人妻一区二区三区四区五| 国产福利精品最新在线| 国产精品3| 黄片com.| 中国黄色特级精品一区二区三区片| 国产精品久久久久久亚洲色欲| 天天欧美欧美亚洲网| 国产欧美另类久久久精品课程| 99精品成人免费看| 色97综合中文字幕| 日韩av影片在线观看| 国产乱子伦一区二区三区免看| 成在线人在线观看视频| 久久国99999| 涩涩涩综合| 日韩少妇无吗| 亚洲av影音先锋| 91欧美巨乳| 久久精品国产72国产精品福利| 五月天亚洲网| 女人高潮大叫一级毛片| 日韩欧美麻豆 | av一区二区三区 中文| 中文字幕av一区二区三区人妻少妇 | 看免费的黄片| 97国产色图 | 超碰日韩美妻| 96久久精品一二三区色欲| 91在线国产后入风骚翘臀美女素人| 视频分类 国内精品| 婷婷人妻激情| 情侣开房子拍 日韩无码 女的很漂亮| 97精品网| 欧美曰韩国产精品| 婷婷丁香五月天亚洲天堂网| 色噜噜人妻av中文字幕| 免费观看欧美日韩操逼视频| 欧美性爱一区二区| 日逼五月天| 日韩av一级黄片| 欧美92| 久久九九一区二区三区成人| 国产av强奸美女| 久热精品在线| 日本美女性生活久久久久久久| 欧美性爱18观看| 少妇激情AV| 久久超碰爱| 精品毛片av一区二区| 国产蜜臀在线| 夜夜肏2021| 人人妻人人爽 97人人看碰人免费公开视频| 熟妇精品juliaannAV| 国产精品亚洲免费| 久久久久久网址| 色亚州人久干视频在线观看免费版| 超碰免费人人| 国产精品不卡一区二区电影| 97伦乱| 欧美日韩国第一区| 一区二区视频在线播放| 久久超碰日韩精品| 亚洲有码第一页| 欧美亚州手机在线| 久久直播国产| 久这精品中文在线观看视频| 欧美乱妇狂野欧美在线视频| 99精品久久| 日韩无码操逼片| 天天日天天看| 91高潮喷水美女| 人人喜人人妻| 蜜桃无码AV一区二区| 国产午夜精品理论片一二三区区| 欧美激情黑人| 亚射在线| av大香蕉| 99热99在线播放激情| 亚洲精品97| 精品人妻高清麻豆av| 91爰爱欧美| 熟女丰满人妻一区| 欧美一区二区三区日韩| 99这里只有精品国产| 性色aV一区二区三区噜噜| 亚洲少妇激情一区二区三区| 久久e6只有精品| 久久午夜伦| 九九黄色视频在线观看| 欧洲亚洲国产综合在线| 天美传媒AV在线播放| 超碰97人人乐| 东京热不卡视频| 亚洲网自拍| 日韩成人色图| 丁香五月av| 日本三级韩三级99久久| 国产AV激情无码久久无码 | 国产自偷自拍一区| 欧美黄片免费在线观看视频| 操逼无码操逼| 欧美色狠| 中文字幕熟女人妻丝袜| 清纯唯美激情| 色路综合| 91日韩网站| 国产超碰欧美| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 人妻献身系列第54部| 日本淫乱女一区二区三区视频| 无码粉嫩白虎一线天b区| 九九精品无码专区免费| 欧美激情激情xxxx欧美专区| 三级色影综合网| 国产精品久久泡妞网站| 老司机香蕉| 97鸡把在线视频| 国产成人五月天丁香花| 久久亚洲一区女同性恋中文字幕| 亚洲骚男同com| 天天性射网| 韩日欧亚a级| 欧美熟妇精品黑人巨大91| 午夜啊啊| 亚洲色人阁| 九九九九免费| 欧美精品三级黄片| 黄片视频观看| 操逼无码操逼| 偷拍亚洲熟女视频播放| 手机在线播放国产福利| 约操熟妇| 五月婷婷爱六月丁香色| 丁香五月天社区| 久草久热| 午夜福利区|