日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满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
返回資訊列表
精品人妻av在线播放| 国产色精品午夜大片| 亚洲图片 91| 一级毛片久久久久久久女人18| 亚洲网污污污污| 日本日皮视频逼| 亚洲无 码A片在线观看麻豆| 日日狠狠久久偷偷色综合免费| 搡老女人老91妇女老熟女| 91爰爱欧美| 亚洲一区二区性爱电影| 欧洲精品二区| 啊啊啊啊啊好大好舒服想要| 97在线精品| 人人看人人插| 日日夜夜摸| 情色五月天久久久| 蜜臀久久99精品久久综合| 久艾草在线精品视频在线观看| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 久久9999 | 天天干人人看综合| 黑人性欧美| 91久久久老司机| 亚洲无码99| 欧美成人A天堂片在线观看| 97国产精品在线观看| 嗯嗯嗯嗯啊啊啊好紧好大| 翔田千里无码中出中文字幕| 国产精品久久久| julia国产在线| 91天天爱| 啊啊啊 在线观看| 亚洲国产成人7777| 欧美日韩小说| wuyechaopeng| 亚洲在钱| 三级片大波波| 99xav| 久久天天性久久伊人| 八人操人人摸人人看| 欧美宗合网| 亚洲精品九九九九九九| 香蕉99秘 一区精品蜜桃臀| 99热日| 蘋果手機免費看成人Av| 91网站18+| 中文字幕无码不卡啪啪| 久久97视频| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 亚洲天天影视色综合| AND人妻系列| 插入综合网| 国产原创自拍| 观看视频图片一区二区三区| 亚洲综合图色在线| 五月天久久婷婷亚洲 | 国产白领连续中出在线观看| 看黑人AV不卡| 999国产精品999| 极品尤物在线观看| 欧美丝袜激情| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 色香阁在线| 九九色图| 在线观看一卡二卡| 91美女在线看| 偷拍综合亚洲| 中文字幕视频在线观看| 欧美天天| 自拍偷拍 日韩无码| 日韩黄色一区二区三区| 操少妇很爽av| 午夜精品久久久99热蜜桃的功能特点| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 91 综合网| 日本欧美不卡| 亚洲麻豆av一区二区| 家庭乱伦麻豆| 成人综合色网| 无码二级三级| 综合亚洲欧美精品日韩?v| 久久伊人最新网址视频| 国产精品一二三在线看| 啊…啊…操我用力操我| 国产成人主播| 神马麻豆福利院 | 久久久久久九九九九-美女久久久久久久-成人AV| 色穴精品| 人妻少妇无码 | 人人操人人干xxx| 国产精选三级在线观看| 美女主播色欲91抠b在线播放| 婷婷色香| 美女黄站| 97色碰| 伊人国产视频| 国产精品96久久久久久| 国产精品视频一区二区三区八戒| 国产精品自在自拍视频| 免费人人搞97| 国产精品久久久久婷婷二区次| 久久久97| 日韩精品国产精品五码一区二区| 欧美自拍偷拍综合图片| 综合熟女| 亚洲欧美日韩激情不卡| 97色插| 国内97干免费看| 日本一区不卡| 久久人妻视频| 天美传媒婬乱在| 欧美日韩在线国产在线| 校园春色欧美| 久操凹凸视频| 加勒比av官网在线| 多乙久久久久久| 色一射色一射| 91国产操逼视频| 久久99视频| 97精品综合久久网| 性色av大全| 欧美熟爽综合| 精品国模无码| 亚洲精品蜜桃久久久| 日本成人A片网站| 爆乳免费黄网站| 亚洲AV永久无码精品成人调教| 日本熟女免费視颖| 亚洲色悠悠久久88| 91人妻素女| 久干网| 高清有码一区二区| 欧美色图私拍91| 欧美91在线| 人人乐大香蕉| 久久久久国产精品久久久| 欧美亚洲日本激情在线| 97超碰伊人| 亚洲日韩少妇一道本视频| 国产成年女黄特黄| 人人妻人人操人人乐| 亚洲国产精品成人久久蜜臀| 欧美熟妇视频| 亚洲啪AⅤ永久无码| 久久熟女久| 久久亚洲AV成人精品无码| 黄久在线| 天天爱天天韩国日本牛牛牛牛 | 啪啪啪亚欧美视频| 97精品视频免费| 温婉少妇玩3p| 天天肏夜夜肏| 日本不卡三级网在线播放| 国产一级内射高清视频| 久久综合久色欧美综合狠狠| 91九色精品熟女内射| 伊人网高清| 精品久久久av| 浪人综合网| 青青青青青手机视频| 超碰久热| 欧美日韩黄片精品在线| 99xav| 秋霞蝌科网日本一区| 久久久999国产| 韩日精品四区| av最新免费中文字幕| 老鸭窝日丰县女人| 蜜伊人色综合97| 色色香蕉| 欧美日韩97| 久久日本熟妇熟色高清| 亚洲高潮少妇| 日韩在线观看中文字幕视频| 中文字幕亚洲永久精品| 色五月AV| 久久久极品| 九九热九九热| 亚洲无套久久嗯嗯| 国产剧情AV不卡在线观看| 老鸭窝成人免费毛片视频| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 啊啊啊男女| 国产四虎在线| 牛黄色久午久| 亚洲高清无码在线桃色| 日韩综合无码一区久久92| 综合激情一一91| 97超碰国产精品| 99re公开精品免费视频| 欧美色图片| 国产诱惑| 午夜精品久久久久| 亚洲情色一区三区| 丁香五月天社区| 欧美日韩性爱无码| 天天激情干| 婷婷色色五月天福利| 国产精品高潮久久AV| 熟女被操视频网址| 欧美日韩国内不卡| 日韩一级特黄av毛片| 国产精品九九九| 嗯嗯不要视频| 男人的天堂Va| 天天射日日干| 国产精品免费久久久久久久久久| 97爱亚洲| 99热伊人| 亚洲人妻久久| 91亚洲人| 久久国产乱子伦精品免费女,网站| 欧洲性人爱视频| 欧美在线 亚洲| 中文字幕精品久久久久人妻红杏ⅰ| 人妻天堂综合网| 乱欲一区二区| 欧美一级美片在线观看免费| 中文字幕三四区| 四虎884| 午夜欧美J进J出白浆流出久久久| 日韩人妻网站| 欧美日韩亚洲五月天婷婷| 5252色欧美在线| 欧美精品第四五页中文字幕在线观看| 亚州成人a∨| 色一射色一射| 日本不卡二三区| 日本91白丝| 色色亚洲| 亚洲熟妇自偷自拍另欧美| 丁香六月婷婷久久综合| 91黑丝少妇| 欧美日本久久精品一区 | 97操在线| 久久久久久久久久久精| 国产乱码久久久| 91精品人妻一品二品三品| 天天噜| 97干在线| 久操网址| 久99| 亚洲欧洲视频小说在线观看| 日本熟妇精品九九| 欧美性爱一区二区三区| 乱伦一区二区三区‘| 青青伊人这里只有精品| 曰韩av中文字幕专区| 天美麻豆精品视频99| 精品人妻一区二区免费蜜桃| 金典av| 国产亚洲日本| 日日摸日日弄日日拍| 啊啊啊草死我| 欧美老妇曰批的视频| 国产无马av| 色婷婷成人综合| Aa东京男人的天堂| 久久午夜鲁丝片| 人妻81p| 开心激情站| 色噜噜人妻丝袜AV资源| 97超碰伊人| 最近2018中文字幕在线高清第一页| 亚洲欧洲精品视频发布| 殴美牲| 亚洲黄a三级三级三级看三级| 日韩91网| 性做久久久久久久| 日韩人妻网站| 日韩福利电影网| 免费一级精品啪啪视频| 午夜福利区| 99久久99久久免费精品蜜臀| 亚洲天堂99| 国厂麻豆77q4| 乱伦一二三区| 97日本超碰综合| 大但人体久久久久| 色狠狠 - 百度| 91丝袜美女| 日本熟妇人妻一区二区三区| 日本不卡高清视频| 中文字幕AV片| 久久在线观看免费视频| 日本在线不卡123| 久久是精品| 国产一级137片内射麻豆| 色99视频| 美女性91| www.91色综合| 男女国产精品| renqi久久久久久久久久久久| AV天黑人| 探花精品视频| 国产又粗又长又大的视频| 亚洲一级特黄大片在线播放91| 97这里都是精品| 3P丝袜熟女 色综合| 唐山老熟妇露脸啪啪叫| 爱丝福利| 去干网最新版| 亚洲丝袜少妇在线| 国产欧美美女免费观看视频| 精品国产av一区二区三区四区入口| www超碰| 九七毛片九九毛片| 日本一区二区三区四区免费观看| 丝袜性亚洲| 黄片视频观看| 粉嫩久久久久| 国产乱人伦AVA麻豆软件.| 呦女网站| 五月天色综合| 1240青青草一区二区三区视频天爱| 日本在线激情一区二区三区| 亚州五月| 爱爱动态120秒| 亚洲精品国产拍免费91在线| 99热这里只有精品地址| 欧美东京热青青草| 国产男女无套97| 99人妻| 激情终合网| 国产主播福利| 亚洲drav色图| 色色激情| 日韩精品色呦呦| 久草视频制服诱惑| 国产不卡免费在线视频| 78精品在线| 中文高清一区二区的| 国产精品精品系列在线观看| 91 综合 色| 在线观看黄色电话| 少妇综合网| 丰满精品人妻少妇久久字幕| 久操精品网| 午夜美女福利视频| 69综合网| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 婷婷五月天小说| 2024年最新色情网站在线观看| 国产精品视频播放| 操人妻少妇中文| 岛国A V在线免费看| 日日黄色三级网站| 黄色av网站在线播放| 天天综合网~91综合网| 亚洲精品99| 少妇xx精品| 97视频在线播放| 久久久久久久国产| 大香蕉综合网| 九九干| 91亚洲网| 91丝袜人妻| 超碰97资源大奶| 少妇3P性爱自拍| 日韩小电影| 97超碰这里只有精品| 玖玖玖玖精品国产剧情| а√天堂资源官网在线资源| 久热大香蕉网站| 密桃99999| 欧美性爱在线无码| 入口操逼网站| 日韩黄色一区二区三区| 一级黄色视频网| 亚洲欧美激情另类色图| 中国女人内射6XXXXX| a片自拍直播视频| 超碰午夜| 亚洲综合校园春色| 97免费免费视频网| 国产人妻精品久久久一区二区三区 | 国产精品夜夜夜| 欧美一区二区三区大综合| 亚洲熟女中文字幕在线| 福利在线黄片| 99久久久er直播网址| 成人26uuu| 久久久91| 亚洲天天操| 欧日韩一二三f区| 91天天c| 久久久男人的天堂| 97超级色碰碰| 日韩99999| 午夜男人的天堂| 天天日夜干| 大学生美女口爆| 百度百度日本操逼| 人妻干天天| 国产一级不卡在线观看| 青草青草久热| Julia在线播放亚洲久久| 欧美激情综合色综合啪啪五月| 婷婷尹人大香蕉免费| www.狠狠干.coom | 久久岛国| 美女尤物人人操| 另类小色呦| 激情丁香婷婷| 久久综合女优| 久久熟女嫩草成人片免费| 超碰 欧美| 麻豆久久一区二区三区| 欧美成人A√在线一区二区| h4610国产人妻| 强奸乱亚洲| 亚洲aw毛茸茸在线| 日韩综合97P| 奶水 人妻 哺乳 在线| 国产午夜福利专区综合| 抽插无码高清一区| 又黄又粗又硬又长又大| 久久激情视频| 操逼视频色| 中文字幕在线观看二区三区| 中国黑人三级片网站上区| 欧美日韩国产色五月综合在线| 96一区二区| 一级@啪啪视频| 亚洲丁香花色| 色网综合网| 九久精品| 丁香五月电影| 日韩不卡网操逼中文字幕日韩| 少妇贴图| 日本熟妇人妻中出视频| 亚洲熟妇无码一区二区三区| 97在线播放| 精品九九国产无码| 久久久99久9| 无码人妻毛片丰满熟妇精品区| 天天看天天干| 日韩欧美视频青青| 中日韩久久久免费看| 国内毛片国产欧美拍| 丁香婷婷色五月| 亚洲熟女乱综合一区二区三区| 东京热大香蕉| 亚洲无码99| 久久九操在线观看| 精品人妻1区| 99青草| 欧美色图片色哟哟| 尤物一级在线免费观看| 久操视频在线| 丝袜美腿制服人妻二区中文字幕| 男人久久精品| 岛国毛片手机在线观看| 最新av在线| 91大神精品长腿在线观看网站| 五月婷婷丁香六月| 亚洲天堂资源在线| 91狠狠综合久久| 精品妇操一区二区三区| 欧美日韩国产三级黄色| 无码人妻系列少妇| 人妻少妇av在线观看| 91激情国产| 日韩激情中文字幕有码| 天天天堂影视日韩亚洲91| 亚洲国产精品有声| 一二三四视频在线社区中文字幕| 亚洲国产奇米影视久久| 60秒免费视频| 激情五月综合| 欧洲在线性爱视频| 亚洲 图片 欧美 色图| 精品美女久久久久| 欧美日本天堂| www网站黄| 五月天婷婷社区| 99热这里只有精品99| 91中文字幕制服丝袜免费视频| 99久久久久| 人人操人人肉久久精品| 日韩三级网址| 日韩av不卡在线看| 欧洲一区二区| 偷拍欧美激情| 人妻一二三区| 97亚洲色图| 九九久久久九九| 亚洲天天做日日做天天谢日日| 黑人与人妻| 国内毛片无码一级毛片| 国产h小视频在线观看免费| 色呦呦、国产精品| 国产三级中文有码在线视频| 熟女少妇一区二区三区| 91天美传媒精品| 岛国在线一区二区三区| 久久香蕉国产线看观看亚洲女人 | 嗯嗯啊啊啊好爽| 性欧美另类高清| 中文字幕乱妇免费视频| 亚熟在线| 岛国在线一区二区三区| 亚洲久久久| 亚洲精品 大香蕉| 97爱| 欧美日韩婷婷中文| 色婷亚洲五月在线观看| 精品人妻一区二区三区四区石在线| 好吊色一区| 人妻少妇被猛烈进入中| 91精片| 亚洲欧美一区二区不卡视频播放| 秋霞欧美性爰视频| 国产色图乱伦| 久久精品高清无码一区| 丰满少妇人妻久久久久久| 欧美偷拍区| 欧日韩一二三f区| 国产欧美一区二区| 欧美性爱视频免费一区一A| 撸无码不卡免费视频| 狠狠狠一区二区三区| 一级性爱啪啪视频| 黑丝制服中文字幕 | 人人人人人人少妇| 黄色片大香蕉| 久热色情精品| 蜜桃精品视频一区| 小电影欧美91| 亚洲欧美色图小说| 欧美在线观看综合国产| 国产欧美第五页| 男人的天堂激情| 亚洲揄拍网| 91精品国产91熟女| 国产成人无码啪| 日本在线激情一区二区三区| 中文字幕制服欧美久久一区| 欧美激情亚洲情色| 国产精品探花色| A片 AV一级在线播放观看免费| 麻豆久久久一区二区| 91AV天堂| 久久精品熟妇丰满人妻99| 久久久久亚洲AV无码专区少妇| 婷婷五月天成人| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 国产精品视频白浆免费| 四虎永久在线精品免费网址| 亚洲综合 欧美| 精品国产av一区二区三区四区入口| 午夜偷拍久久熟女| 人妻精品综合中文字幕在线| 色九久| 日本黄色大片一级视频免费麻豆| 免费综合亚洲中文| 日夜干射色啊| 亚洲高清视频在线免费观看| 日本久久99| 1204金沙人妻懂旧版免费| 亚洲色图A| 一本一道vs波多野结衣| 97超碰无码网| 亚洲激情视频| 9九九九九视频在线观看| 亚洲偷91色| 成人性爱视频在线看| 亚洲国产欧美日韩精品一区二区三区,国产一区二区三区在线看片,欧美性猛交 XXX | 国产精品一区二区黄片| 欧亚第一综合网| 91熟女视频网| 天天做日日做天天欢。| 欧美性爱一区二区三区四区 | 青青操在线亚洲视频观看欧美在线 | 色老久久| 亚洲一区二区三区AV无码 | 亚洲综合五月天婷婷丁香| 蜜臀99久久精品| 亚洲精品无码久久AV| 热热热热日日漂亮永久永久国产日| 精品午夜福利| 国产农村妇女一区二区| 九热中文字幕| 久超碰在| 国产日韩怡红院| 久久综合99| 亚洲一区二区中文字幕| 91精品91久久久中77777| 欧美综合色,www| 午夜高清成人在线视频| 久久久亚洲精品中文字幕人妻| 人人做人人妻人人夜视频| 色97欧美| 五月丁香网站| 97超碰精品图片| 狠狠中文字幕| 日本人妻丰满熟妇久久久久久| 亚州操操穴网| 韩国一级婬片A片无码天美| 蜜臀99999| 人人操人人摸人人看人人干| 欧美第二页午夜| 日本道久久综合色色| 亚洲少妇视频| 久久久久国产亚洲一区欧美色图日韩| 五月丁香黄色网| 精品97久久综合| 乱欲一区二区| 久久一区二区蜜桃| 久久久工口| 一级AV性爱| 91天天综合在线观看| 69精品人人人人| 99精品国产户外露出| 青青草色情网站视频| 凹凸视频在线观看伊人| 啊啊啊啊啊啊啊啊视频| 91丝袜美腿网站| 91无遮挡| 欧美超碰人妻97| 亚洲激情av| 26uuu最新| 色天堂综合| 偷窥自拍A片| 久久在线观看免费视频| 后入式视频国产自| 另类图片五月| 天天激情综合站| 99RE在线视频精品,这里只有精品| 午夜精品久久久久久久99蜜桃一| 91亚洲在线| 久久夜精品一区二区三区| 麻豆这里只有精品| 男人精品区| 加勒比伊人综合| 天美传媒国产原创中文字幕亚洲欧美另类 | 国产区日韩区在线观看| 亚洲图片 激情小说| 精品精品精品| 中文字幕亚洲热播人妻| 日本免费一区二区不卡| 国产传媒日本欧美专区| 久久丁香五月天| 国产中文精品一区二区在线观看| 国产精品不卡少妇白| 97一区二区三区视频| 亚洲精品色| 人人操人人操人人操人人操人人操人人人11.CM| 熟女少妇一区二区三区| 亚洲人91| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | nuu12国产麻豆精品| 青青操97| 色色色综合网| 超碰精品在线| 久久九九视频九九视频| 亚洲国产精品V?在线播放| 国产精品在线免费| 亚洲精品久久一区二区三区蜜桃臀| 久久久久久性爱视频| 欧美性爱系列| 无码日韩人妻av一| 三级激情网站| 亚洲另类欧美精品| 成人羞羞视频国产| 国产精品视屏| 久久久久久久久9| 亚州国产成人精品女人久久| 成人精品在线免费视频| 欧美色图20p| 精品人妻久久久| 亚洲,欧美,综合网| 啊啊啊啊啊啊啊在线| 欧美老妇综合网| 欧美性暴力猛交XXXX| 国内91熟女人妻丝袜天天精品视频在线 | 狠狠操官网| 欧美夜夜草视频| 欧美日韩大香蕉| 亚洲福利影院一区久久| 伊人骚琪琪亚洲天堂网站| 密臀国产在线| 97视频一区| 99少妇| 啊啊啊好大好深| 狠狠爱夜夜| 亚洲丝袜在线观看| 国产深夜福利| 超碰97人妻在线| 久热最新在线杭州| 日本不卡二区| 人妻夜夜爽天天爽三区麻豆AV网站| 一区二区三| 欧美天天射| 夜夜高潮夜夜爽夜夜爱爱一区| 欧美se综合| 亚洲欧美在线丝袜| av黄图片在线观看| 天天视频黄| ji熟女.com| 国产AV精久久| 成人a级高清视频在线观看| 亚洲一区二区三区播放在线| 日小BB小视频| 一级A啪啪啪啪| 色综合色| 天天摸夜夜摸| 欧美后入视频| 国产美女91| 春色91| 亚洲色图亚洲| 日韩亚洲中文有码视频| 粉嫩绯色AV一区二区在线| a在线视频免费观看| 另类天堂| 日本大香蕉| 玖玖大干人妻| 91色射| 色吧5亚洲| 东京热视频网| 综合激情五月丁香| 日本熟妇熟色97一本在线观看| 日韩ab网 | 中文在线久久字幕| 后入式999| 无码精品久久久久久亚洲| 免费黄色片。| 日本三级中国三级99人妇网站| 老女人爆菊| 国产白丝在线| 日韩有码专区| 黄人人操人人操| 激情久久久| 69综合网| 99久草| 伊人丁香五月婷婷| 亚洲性爱高潮影院| 97视频www| 啊啊啊在线看| 情趣丝袜无码操逼视频| 无码伊人久久大杳蕉中文无码| 人妻在线中出视频| 神马九九九| 欧美日韩大香蕉| 激情综合色| 四虎在线播放| 亚洲色欧美| 可以看的av| 久久一本大香蕉| 中文字幕人妻丝袜乱一区三区| 日韩熟女乱伦中出| 人妻加勒比东京热| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 四色永久成人网站| 国产人妻一区二区三区欧美毛片| 中文一区二区三区影院| 久久AV无码网址| 啊灬快c我灬啊灬用力灬啊灬-国产精品性做久久久久久-成人AV | 91爽啪| 夜夜操夜夜高潮夜夜爽国产精品区| 亚洲精品国产精品成人| 六月婷婷激情| 亚洲色图综合网| 啊啊啊啊啊啊在线观看| 国产亚州日韩欧美看片| 91少妇香蕉久久精品| 国产60页| 九九天堂| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 日本新免费二区三区| 国内毛片欧美香蕉精品| 无码9区| 好涩综合| 婷婷五月天av| 91 综合网| 日韩乱插| 一区二区首页| 蜜乳AV免费观看| 99热这里只有精| 久热一区二区| 亚洲AV免费在线| 亚洲另类色综合网站| JIZZJIZZ国产精品喷水| 男人成人黄色视频在线观看免费下载| 天天插夜夜操| 天天内射| 成人三一级一片aaa| 蜜桃丰满熟妇av无码区不卡| 免费观看国产不卡av| 九九九九精品一区| 国产精品永久免费10000| 日韩精品人妻中文字幕久久久| 国产拍偷精品网站| 奸色色 男人天堂 天天射| 久久精品一区二区| 亚洲情色第一页| 中文字幕第9页萱萱影音先锋| 97色冈| 自拍偷拍第26| 熟女一区二区三区| 日本www操操操| 性九九九九九九| 美日韩成人| 欧美天天综合网| 97天天做| 日韩不卡在线一区二区| 亚州色图欧美色图| 五月婷在线| 久久精品人妻一区| a人欧美综合天堂麻豆| 日韩欧美aⅴ综合网站发布| 中文字幕av丝袜| 婷婷操逼| 九九九久久久| 秋霞鲁丝午夜无码一区二区三| 国产女人操逼视频| 中文字幕一区二区无码成人| 国产精品久久久亚洲一区| 亚洲黄片免费在线播放| 东京热不卡视频| 99自拍视频| 大香蕉一级黄色片久久| 97精品久久久久中文字幕| 中文字幕日本久久| 国内毛片热久久思思热| 加勒比海成人视频网| 日韩成人精品中文字幕| 国产一国产一级毛片古装| 欧美乱妇狂野欧美在线视频| 国产欧美日韩在线不卡第一页| 国产一级高清免费观看| 大肉棒导航| 艹少妇网站| 97天天摸天天爽| 啊啊啊啊啊啊啊啊啊啊在线观看| 国产视频不卡在线观看| 麻豆综合一区av| 超碰9 7女人 | WWW黄片COM| 乱操乱伦AV| 97久久超碰日韩精品| 日han少妇无码| 人人操人人狠狠操| 老司机深夜18禁污污网站| 国产精品一区二区麻豆| 伊人久久大香蕉线AV五月天| 国产精品嫩草影院免费| 欧差乱伦二三| 亚洲清纯综合| 中文字幕诱惑制服人妻丝袜美丝袜美 | 亚洲成人激情小说视频| 97在线欧| 噜噜噜久久亚洲精品色情| 99热精品在线| 超碰成人最新最好看| 亚洲人天堂| 91蜜臀人妻中文字幕在线| 91网18| 国内精品不卡无毒99999| 围产精品一区二区三区视频播放| 欧美一区二区三区不卡高清视频| 五十路熟女,国产欧美精品区一区二区三区| 国产天天骚| av无码精品久久久久| 搞中出久久| 丝袜美腿av女优在线| 96精品一区| 欧美激情亚洲情色| 超碰天天久久79| 久久av色| 97国产色综合| 亚洲成人av色网| 影音先锋中文字幕日本好一区二区| 加勒比在线观看一区二区| 热99re69精品8在线播放| 91欧美www| 老鸭窝日丰县女人| 超碰97欧美日韩| 男人的天堂欧美| 欧美久久婷| 看看小穴| 无码一区二区三区四区五区六区七区八区九区十区视频 | 无码不卡八戒| a亚洲欧美色欲| 97综合久久| 中文字幕97| 死我十八禁| 久久九操在线观看| 最新av在线| 久插综合| Aa东京男人的天堂| 好舒服视频| 麻豆天美在线喷水AV| 熟妇视频一区二区三区在线观看| 九九热精品在线| 人妻啊啊人妻啊啊| 97人肏| 一区 欧美 日韩 麻豆| 麻豆久久久久久久久丝袜| 日han少妇无码| 欧美欲色| 91男人天堂网| 嗯嗯啊啊日韩精品| 亚洲图片视频小说| 蜜汁欧美| 69精品| 外站AV在线| 百度百度日本操逼| 国产亚洲精品A在线观看下载| 狠狠色伊人亚洲综合网站色| 亚洲va有码在线天堂| 狠狠色噜噜狠狠狠狠狠色综合久久| 国产一区二区啪啪视频| 偷看洗澡一二三区美女| 亚洲天堂,男人| 九九玖玖精品| 日欧毛片久久| 干妹子| 99热在线播放| 亚洲欧美综合| 久久久久久亚洲Av无码| 日韩欧美俄罗斯A片| 成人网址在线观看| 一区久久久二区| 麻豆国产成人精品| 熟女少妇视频| 天天影视色香欲综合网小说| 青娱乐亚洲自拍| 日本熟女中文| 五月天综合网| 久久99干一本高清| 日韩97P| 中国乱伦一区二区| 天天爽天天操| 久久婷婷欧美| 欧美日韩小说| 变态乱伦伪娘灌肠一区二区| 影音先锋新男人| 激情五月婷婷| 色网在线| 日韩内| 天天摸夜夜添无码小视频| 丰满人妻av一区二区三区| 欧洲射精91| A一级色女| 国产综合色精品在线观看| 久9re热视频这里只有精品| 午夜福利成人免费视频| 一区二区精品更新提醒| 国产97/欧美| 国产操伦| 婷婷导航| 日韩精彩视频| 亚洲成a人v欧美综合天堂下载 | 老熟妇乱轮| 亚洲最新中文字幕免费| 美女啊啊啊啊pc| 东北操逼| 亚洲性爱电影| 天天干少妇| 人妻丰满熟妇av无码区蜜桃| 日韩在线性爱免费视频| 九九无码| 亚洲综合色图欧美| WWW操逼| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 99re6久热只有精品6在线直播| se吧提供国产乱老熟视频胖女人| 激情综合五月| 图色综合网| 97超碰站| 992这里有精品| 欧洲大香蕉| 99色热国产视频精品| 亚洲天堂性爱| 先锋女优在线观看视频| 一区二区三区高清天码| 精品国产网站| 国产91精品在线免费| 欧美日韩性爱精品| 夜夜夜夜爽| 日本色色视频网站| 午夜性| 久九九九九九九九热| 免费看A片毛毛片在线播| 欧美久久婷婷| 粉嫩av平台| 国产精品对白内射| 97视频播放| 伊人久久婷婷| 欧美激情内射| 日本护士高潮| 南澳成人一级片在线播放| 日韩乱伦影音先锋| 欧美综合 站| 人人看黄色视频| 视频在线观看一二三区| 大香蕉一级黄色片久久| 久久精品小视频| 久久久久久久91| 亚洲天堂热| 中文字幕青青草| 嗯啊不要在线观看嗯啊| 久久久月天| www.99热| 欧美高清色| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 99热8| 91快色色色色色| 女同性恋中文字幕| 狠狠狠狠狠| 精品久久久久久久| 97一区二区蜜臀| 综合伊人激情| 夜夜骑操视频| 自拍偷拍2025在线观看| 久9综合在线| 天天日日夜夜| 国产久久久| 久超超碰| 激情抓乳插进去啪啪啪日韩| 粉嫩小泬久久久一区二区| 亚洲成a人在线观看久| 91亚.色| 又黄又爽在线观看视频 | 天天天天天天天天综合| 日韩乱伦影音先锋| 亚洲少妇自拍中文字幕懂色| 亚洲国产精品久久久久久久久久| 国内毛片欧美香蕉精品| 国精综合一二三区影视| 国产亚洲色婷婷久久99精品91葵花宝典| 新视频sss国产| 国产 v乱码一区二| 四虎影视精品| 青青草啪啪网| 国产精品久久久久久久久久梁医生| 色网综合网| 亚洲色五月| 精品蜜乳AV免费观看| 韩日精品福利视频一区不卡在线免 | 9久久精品| 99久久久无码| 色噜噜人妻丝袜a∨先锋影| 久久久性爱| A男人的天堂| AV 少妇 人妻 偷拍| 日韩无码一级黄色av片| 人妻少妇久久| 色女网日韩| 欧美久久人体| 人人污日韩一区二区| 最新的亚洲无吗| 97视频在线| 亚洲少妇自拍中文字幕懂色| 中文高清一区二区的| 国产麻豆福利av在线播放| 精品国产Av无码久久久伦古装| 夜草欧美| 91在线综合网| 色综合久久88色综合久久天天| 国产又黄又爽| 97操碰| 欧美熟女妇同| 鲁鲁色综合网| 欧美婷婷五月天| 日本性爱视频一级| 欧美激情内射| 中文字幕综合人妻| 99久久这里只有精品| 翔田千里av一区二区三区| 日韩啊V| 亚洲综合在线91| 玖玖爱综合网| 日韩紧密久久| 日韩有码一区三区| 午夜福利1区2区3区| 成人久久久| 亚洲精品熟妇1区2区3区。| 久久欧洲| 一区=区三区视频| 婷婷五月天影院| 亚洲日韩美国人妻| 日韩在线地址一| 人妻激情视频| 一区二区视频你懂的| 欧美在线色图| Julia在线播放亚洲久久| 中文自拍欧美影视| 国产h片在线观看视频| 国产午夜精品在线观看| 夜夜爽夜夜操| 伊色久人大在线| 人妻无码视频一区二区三区久久| 蜜臀久久在线视频| 操少妇很爽av| 亚洲色欲天天人妻无码系列专区| 东京热男人的天堂精品| a级免费在线观看| 懂色Av| 中英熟女操女| 女人综合网| 精品福利| 91精品国产91久久青草| 日日躁夜夜躁狠狠躁超爽| 色九九久九九| 色约约一区=区三区| 亚洲精品久久一区二区三区蜜桃臀| 日日夜夜模| 日本熟妇精品九九| 欧美性爱一区| 国产白丝在线| 亚洲欧美日韩国产丝袜自拍中文| 欧美熟女激情| 国产美女91视频| 性站 | 97碰在线视频| Julia在线播放亚洲久久| 亚州伊人色综台| 熟女人妻久久中文字幕一二区| 天天综合亚在线| 一区二区三区网站日日骚| 久久大香蕉手机高清| 熟妇熟女一区二三区| 日日夜夜噜| 新视频sss国产| 福利大香蕉| 成人性交免费视屏| 超碰色大香蕉| 2019天天干| 国产精品久久久久久久AV大片| 内射老妇BBWX0C0CK| 精品成人亚洲午夜电影| 91精品人妻电影| 欧美自拍偷拍免费观看| 婷婷五月激情综合| 久久国色天香香蕉| 国产精品欧美激在线| 国产精品久久久久999| 91精品国产高清久久久久久,亚洲成人| 黄在线| 人妻加勒比东京热| 欧美亚洲20p| yy少妇精品久久| 91欧美色| 天天谢天天干| 欧美性爱1080p| 色色色网站| 亚州中文字幕超碰97| 丝袜狠狠草尤物 91| 日韩久射综合| 国产精品久久久久久久电影渣男| 久久中日麻豆| 小草三级久久观看| 久久久久亚洲一区女同性恋中文字幕| 国产精品动态一区二区三区四四| 欧美天天影院| 黑人精品XXX一区一二区| 国产av美女被艹的乱叫|