999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于動態(tài)污點分析的棧溢出Crash判定技術

2018-04-19 07:37:26露平
計算機工程 2018年4期
關鍵詞:指令污染利用

,, , ,露平,

(四川大學 電子信息學院,成都 610065)

0 概述

隨著信息化時代的到來,互聯(lián)網(wǎng)的運用越來越廣泛,尤其是計算機軟件已經(jīng)成為世界經(jīng)濟、科技、軍事和社會發(fā)展的重要引擎,與此同時軟件的安全問題也日益突出[1]。軟件漏洞是安全問題的主要根源之一。近年來軟件漏洞數(shù)量呈現(xiàn)明顯上升趨勢,軟件漏洞能夠引發(fā)惡性的Web攻擊事件侵害公民權益,傳播廣泛的計算機病毒造成重大經(jīng)濟損失,實施高級可持續(xù)性攻擊引發(fā)國家安全事件等[2]。因此,對軟件漏洞的分析已經(jīng)成為計算機領域的重要研究熱點及難點。

當程序發(fā)生崩潰(Crash)時,安全研究人員需要進一步判定崩潰是由程序的內(nèi)部邏輯錯誤引起還是由外部輸入數(shù)據(jù)引起。如果是由外部輸入引起,那么這很可能是一個嚴重的崩潰,甚至是一個可利用的漏洞[3]。因此,分析Crash的可利用性,即判定Crash是否能夠被攻擊者所利用以及被利用后的危害程度是否足夠嚴重。分析崩潰的可利用性等級不僅為軟件異常分析提供重要依據(jù),還能夠有效提高漏洞挖掘速度。無論對于攻擊者還是防御者,這都是一項十分重要并且緊迫的工作。隨著計算機軟件的廣泛應用,如何快速有效地分析評估Crash的可利用性已經(jīng)成為當前漏洞挖掘與分析的關鍵問題之一。

本文介紹目前用于Crash分析領域的3種常見方法,利用動態(tài)二進制插樁工具Pin在Windows平臺實現(xiàn)一種基于動態(tài)污點分析技術的Crash可利用性自動化判定框架,并對若干已知漏洞的應用程序進行實驗驗證,與!exploitable工具的分析結果進行對比。

1 Crash可利用性分析方法

目前用于Crash可利用性分析的常見方法主要有3種,靜態(tài)分析以Microsoft發(fā)布的!exploitable工具[4]為代表,靜態(tài)分析與動態(tài)分析結合以二進制分析框架BitBlaze[5]為代表,動態(tài)分析以漏洞利用自動生成框架CRAX[6]為代表。

1.1 調(diào)用堆棧分析

2009年微軟安全工程中心基于微軟在Windows Vista開發(fā)過程中使用Fuzzing的經(jīng)驗創(chuàng)建了!exploitable工具,用于自動崩潰分析和安全風險評估。該工具通過比較調(diào)用堆棧對應的散列值分類崩潰,進而分析崩潰上下文的語義信息定義可利用性級別。它只依賴于Crash dump,而不是導致崩潰的輸入[7]。程序發(fā)生崩潰時,WinDbg加載MSEC.dll,使用!exploitable命令分析Crash是否可利用,首先整理所有崩潰并創(chuàng)建哈希值來確定崩潰的唯一性,其次查看崩潰類型并判定崩潰是否可以被惡意利用,然后分配崩潰可利用性等級:Exploitable(可利用),Probably Exploitable(可能可利用),Probably Not Exploitable(可能不可利用) or Unknown(未知)。

!exploitable工具易用性強,效率較高,可以極大地幫助安全研究人員節(jié)省分析崩潰的時間和精力。但是該工具具有較高的假陽性率,并且只能給出Windows平臺下準確的崩潰判斷,對于其他第三方軟件和一些邏輯復雜的崩潰,例如堆溢出、UAF等,準確率非常低[8]。

1.2 執(zhí)行跟蹤

BitBlaze是UC Berkely開發(fā)的基于二進制信息的分析平臺,該平臺主要用于確定崩潰時哪些寄存器和內(nèi)存地址來自攻擊者控制的輸入文件,并且切片Null指針查看起始位置來快速排除可利用性。該平臺支持精確的分析,結合了靜態(tài)和動態(tài)分析技術以及程序驗證技術以滿足普遍需求,有助于快速確定由基于文件變異的Fuzzing生成的特定崩潰是否可利用,以及確定崩潰產(chǎn)生的根本原因。

分析程序崩潰的根本原因,目前主要通過手動或使用調(diào)試器完成,使用BitBlaze可以簡化和加快進程,并且提供可重復性。BitBlaze運行在GuestOS的更底層,對目標程序有較好的透明性,但該平臺局部開源且不便于擴展,對于污點的設置同樣缺乏靈活性[9]。

1.3 端到端

2012年IEEE會議提出了基于AEG方法改進的漏洞利用自動化框架CRAX。它是一個基于S2E的符號執(zhí)行平臺。為了生成控制流劫持攻擊,檢測符號EIP及其他基于連續(xù)的寄存器和指針,提出了一種搜索最大連續(xù)符號內(nèi)存用于有效載荷注入的系統(tǒng)方法。

CRAX解決了沒有源代碼的大型軟件系統(tǒng)的漏洞利用自動生成,并且可以粗粒度地確定崩潰優(yōu)先級。然而CRAX未開源且耗時較AEG長,因為它進行的是整個系統(tǒng)的符號執(zhí)行而AEG只是在應用程序級別,只能通過減少在concolic執(zhí)行期間的約束數(shù)量進行時間優(yōu)化。

2 相關技術

動態(tài)污點分析技術是指將非信任來源的數(shù)據(jù)進行標記,并追蹤其在程序執(zhí)行過程中的傳遞,從而達到獲取關鍵位置與輸入數(shù)據(jù)關聯(lián)信息的分析方法[10]。動態(tài)污點分析能夠準確地獲取程序的執(zhí)行過程,有效地提高污點分析的精度,錯誤率較低,應用性較強。動態(tài)污點分析的主要過程包括3個階段,如圖1所示[11]。

圖1 動態(tài)污點分析過程

各階段的作用如下:

1)污點標記(污染源識別):正確識別污染的來源并進行標記。如果對象的值來源不可信,那么將該對象標記為污染的。

2)污點傳播:根據(jù)正確的污點傳播規(guī)則,將污點數(shù)據(jù)隨著程序的運行進行污點的標記及傳遞(或移除)。

3)安全策略檢測攻擊:通過制定合理的規(guī)則與策略,確定或者檢測出程序運行中存在的各種漏洞利用攻擊,如緩沖區(qū)溢出等[11]。

動態(tài)污點傳播分析一般采用虛擬執(zhí)行或者動態(tài)二進制插樁方式對污點數(shù)據(jù)進行記錄和跟蹤維護[11]。動態(tài)二進制插樁是指在不影響程序正常執(zhí)行結果的前提下,根據(jù)用戶需要在程序動態(tài)執(zhí)行過程中插入額外的分析代碼以監(jiān)控程序執(zhí)行過程[12]。隨著動態(tài)二進制插樁平臺的出現(xiàn),動態(tài)污點分析的實現(xiàn)和應用變得越加廣泛。本文提出的Crash可利用性自動化分析框架,進行動態(tài)污點分析的前提就是需要對目標程序進行動態(tài)二進制插樁。選用動態(tài)二進制插樁平臺Pin作為原型系統(tǒng),在此基礎上結合動態(tài)污點分析技術實現(xiàn)對Crash的可利用性判定。

Pin是Intel公司提供的二進制程序插樁工具,支持IA-32、Intel(R) 64和IA64架構上的Windows和Linux可執(zhí)行程序,具有易用、高效、可移植性以及健壯性等特點[13]。Pin采用動態(tài)編譯的方法插入探測代碼,并配合使用函數(shù)內(nèi)聯(lián)、寄存器重分配、指令調(diào)度等優(yōu)化方法,使得基于Pin開發(fā)的動態(tài)二進制插樁工具具有較高的運行效率[14]。Pin工具內(nèi)部含有即時編譯器、虛擬機和代碼緩存,插樁工具通過插樁接口函數(shù)與Pin進行交互[14],其整體架構如圖2所示。

圖2 Pin平臺框架

使用Pin進行動態(tài)污點分析能夠有效地實現(xiàn)自動化。Pin的指令級插樁主要通過函數(shù)INS_AddInstrumentFunction來實現(xiàn),它會自動在每執(zhí)行一條新指令時調(diào)用回調(diào)函數(shù)INS_InsertCall,并且在不影響原代碼正常執(zhí)行的同時將分析代碼插入原代碼序列中,進而生成一個新的代碼序列并自動切換代碼的控制權,使得整個分析過程自動化且高效進行[15]。使用Pin對目標程序進行二進制插樁的具體步驟如下:

1)調(diào)用PIN_Init()初始化Pin環(huán)境。

2)調(diào)用INS_AddInstrumentFunction(),分別聲明指令級插樁函數(shù)Instruction和鏡像級插樁函數(shù)ModLoad。其中,函數(shù)Instruction中定義了一個或多個回調(diào)函數(shù)INS_InsertCall,在每執(zhí)行一條新指令時均要調(diào)用INS_InsertCall函數(shù)執(zhí)行對當前指令的分析代碼;函數(shù)ModLoad則對整個輸入文件進行鏡像級插樁。

3)調(diào)用PIN_AddFiniFunction()聲明程序退出函數(shù)Fini,該函數(shù)用于在程序運行結束時輸出最終的崩潰可利用性判斷結果。

4)調(diào)用PIN_StartProgram()啟動程序。

本文以動態(tài)二進制分析平臺Pin為基礎,利用動態(tài)插樁技術和動態(tài)污點分析技術,實現(xiàn)了Crash的可利用性自動化判定框架。該框架暫不考慮保護機制的影響,如DEP、ALSR等。其整體架構如圖3所示。

圖3 框架整體結構

3 系統(tǒng)設計與實現(xiàn)

利用該框架進行Crash可利用性分析的具體流程如下:

1)調(diào)用污點標記模塊,將來自于不可信數(shù)據(jù)源的輸入數(shù)據(jù)標記為污染源。

2)調(diào)用Pin對目標程序Crash樣本進行二進制指令級插樁。

3)調(diào)用污點跟蹤模塊跟蹤每一條內(nèi)存/寄存器操作指令,判斷其是否引起污點傳播,并對被污染的內(nèi)存和寄存器進行標記,同時修改污點數(shù)據(jù)列表。

4)調(diào)用Crash可利用性判定模塊,對能夠改變程序控制流的call、jmp、ret指令判斷其目的地址/操作數(shù)是否已被標記,同時對進行讀寫內(nèi)存操作的mov指令判斷其操作的內(nèi)存地址是否可控以及是否操作污點數(shù)據(jù),由此給出判定結果。

3.1 污點標記模塊

污點標記是進行污點傳播分析的前提,其標記方法和結果將極大程度地影響污點傳播處理和污點信息存儲的效率[11]。污點標記模塊主要有2個功能:1)將目標程序的輸入數(shù)據(jù)作為污染源并為其全部添加污點標記;2)對于污點跟蹤模塊中的污點傳播,如果有污點數(shù)據(jù)污染了內(nèi)存/寄存器,則為其添加污點標記,如果已被污染的內(nèi)存/寄存器被非污點數(shù)據(jù)覆蓋則移除其污點標記。定義2個污點數(shù)據(jù)列表:addressTainted和regsTainted,分別用于存放被污染的內(nèi)存地址和寄存器。該模塊工作流程如圖4所示。

圖4 污點標記模塊工作流程

3.2 污點跟蹤模塊

通過污點標記模塊將不可信輸入數(shù)據(jù)全部標記為污染源后目標程序開始執(zhí)行。此時調(diào)用污點跟蹤模塊對程序進行指令級插樁,從而分析程序執(zhí)行過程中污點的傳播情況。分析時需要對每條指令做出如下判斷:1)這條指令是否是內(nèi)存/寄存器操作指令;2)如果是,這條指令是否引起了污點傳播。該模塊工作流程如圖5所示。

圖5 污點跟蹤模塊工作流程

3.3 Crash可利用性判定模塊

Crash可利用性判定模塊工作流程如圖6所示。

圖6 Crash可利用性判定模塊工作流程

一般情況下程序的代碼段是不可重寫的,攻擊者只能通過修改程序的輸入數(shù)據(jù)(如跳轉(zhuǎn)指令的目的地址、格式化字符串函數(shù)的參數(shù)等),來控制程序的執(zhí)行流從而進行攻擊操作[16]。此過程中涉及到2類危險指令的操作,分別是跳轉(zhuǎn)指令和讀寫內(nèi)存指令,該模塊通過檢測在程序崩潰點之前是否出現(xiàn)過這2類危險指令而給出Crash可利用性的判斷結果:Unknown(未知)和Exploitable(可利用),其中,Exploitable分為Normal(默認)和High。

根據(jù)上述2類危險指令,Crash可利用性判定規(guī)則如下:

1)跳轉(zhuǎn)指令:主要是指call、jmp及ret,它們能夠改變程序的控制流。程序正常運行時一般不會出現(xiàn)污點數(shù)據(jù)被用作跳轉(zhuǎn)指令的目的地址的情況,因此當call、jmp或ret指令的目的地址是一個被污染的內(nèi)存地址或寄存器時,表明攻擊者很可能已經(jīng)通過輸入數(shù)據(jù)改寫了這些目的地址,并嘗試獲取程序控制流來運行惡意的shellcode或繞過安全檢查等。

(1)call/jmp 指令:判斷call、jmp指令的目的地址是否是污點數(shù)據(jù)。對于call/jmp指令,其操作數(shù)可能是一個內(nèi)存地址也可能是一個寄存器,分別進行如下判斷:①對于call/jmp[MEM]指令,如果[MEM]已被污染則該崩潰“可利用”,特別地,對于[MEM]為[reg_base+offset],如果reg或reg所指向的內(nèi)存單元已被污染,則該崩潰“可利用”;②對于call/jmp REG指令,如果REG或者REG所指向的內(nèi)存單元[addr]已被污染,則該崩潰“可利用”。

(2)ret指令:判斷ret指令的目的地址是否是污點數(shù)據(jù)并確定污點目的地址中的可控字節(jié)數(shù)。ret指令沒有操作數(shù)但會跳轉(zhuǎn)到某個返回地址。首先從esp中獲取ret指令的返回地址,然后進行如下判斷:①如果返回地址所指向的內(nèi)存單元已被污染,則該崩潰“可利用”;②如果返回地址本身已被污染(如緩沖區(qū)溢出漏洞會覆蓋返回地址),則該崩潰“可利用”,此時還需要判斷該污點目的地址的可控字節(jié)數(shù),如果崩潰點之前有跳轉(zhuǎn)指令,其目的地址是污點數(shù)據(jù)且4個字節(jié)全部可控,那么通過這條跳轉(zhuǎn)指令就能得到對一個4 GB(232 Byte)內(nèi)存空間的控制權,這表明該崩潰具有極高的可利用性,因為攻擊者能夠在其中插入任意的shellcode進行攻擊。

2)讀寫內(nèi)存指令:指通過寄存器對內(nèi)存單元進行讀寫數(shù)據(jù)操作。攻擊者通常會將危險輸入數(shù)據(jù)寫入某塊內(nèi)存單元從而間接地獲取控制流,該過程不可避免地會進行讀寫內(nèi)存指令。如果讀取的內(nèi)存地址可控,或者對被污染的內(nèi)存單元或寄存器進行了寫操作甚至寫入的內(nèi)容是污點數(shù)據(jù),那么這條讀/寫內(nèi)存指令就極有可能被攻擊者所利用,例如用于覆蓋SEH(結構化異常處理)[17]等。

(1)讀內(nèi)存指令:判斷mov REG,[MEM]指令中MEM是否可控。讀內(nèi)存指令中[MEM]的表示形式可能是[reg_base + reg_index*scale + offset],如果reg_base或reg_index已被污染,進而獲取ebp的內(nèi)存地址,如果ebp的內(nèi)存地址也被污染,則該崩潰“可利用”。因為如果[MEM]的reg_base和reg_index中任意一個被污染,則內(nèi)存地址可控,也就意味著攻擊者能夠通過讀內(nèi)存指令將某個指定地址中的值寫入REG中,從而觸發(fā)讀內(nèi)存異常或引起程序崩潰甚至用于覆蓋SEH,此時進一步判斷ebp的內(nèi)存地址是否被污染,如果是則表明棧中的SEH可能已被修改,則該崩潰“可利用”。

(2)寫內(nèi)存指令:判斷mov[MEM],REG指令中REG是否是污點數(shù)據(jù),MEM是否可控。寫內(nèi)存指令中[MEM]的表示形式可能是[reg_base + reg_index*scale + offset],如果reg_base或reg_index已被污染,進而獲取ebp的內(nèi)存地址,如果ebp的內(nèi)存地址也被污染則該崩潰“可利用”。因為如果[MEM]的reg_base和reg_index中任意一個被污染,則內(nèi)存地址可控,若此時REG也是污點數(shù)據(jù),這就意味著攻擊者能夠通過寫內(nèi)存指令將任意數(shù)值通過REG寫入某個指定地址的值中,從而觸發(fā)讀內(nèi)存異常或引起程序崩潰甚至用于覆蓋SEH,此時進一步判斷ebp的內(nèi)存地址是否被污染,如果是則表明棧中的SEH可能已被修改,則該崩潰“可利用”。

4 實驗結果分析

本文的實驗對象為存在已知漏洞的CoolPlayer、Word等多個應用程序,實驗環(huán)境如表1所列,實驗結果如表2所列。其中,*表示標注為!exploitable工具的測試結果。以1號實驗為例,當CoolPlayer Portable 2.19.1試圖打開一個包含超過260 Byte的特定字符串的.m3u文件時,則會觸發(fā)棧溢出漏洞。構建引發(fā)該軟件崩潰的輸入數(shù)據(jù)如圖7所示。

表1 測試環(huán)境參數(shù)

表2 實驗結果對比

圖7 污染源文件

使用該框架和!exploitable工具分別進行崩潰可利用性判定的結果如圖8所示。

圖8 測試結果對比

該框架不僅能夠準確定位到發(fā)生崩潰的指令,還能檢測到引發(fā)崩潰的ret指令的返回地址被覆蓋為用戶輸入數(shù)據(jù),且根據(jù)返回地址中的可控字節(jié)數(shù)對該崩潰可利用性的高低進行進一步判定,準確度較!exploitable工具更高。

對表2的實驗結果分析如下:

1)該框架能夠準確定位到發(fā)生Crash的指令,并進一步判定可利用性高低,針對棧溢出類型漏洞的崩潰可利用性判定,相比!exploitable工具準確率較高。

2)當測試程序小巧且污染源文件較小時,該框架分析速度較快。但對于Word等較大程序,盡管污染源文件很小,該框架分析速度也明顯下降。

3)針對堆溢出、UAF、格式化字符串以及邏輯關系復雜的崩潰,該框架暫時無法準確有效地判定其可利用性。

4)動態(tài)污點分析針對數(shù)據(jù)流,并不能對控制流信息進行分析,往往難以發(fā)現(xiàn)與控制流相關的脆弱性,使得最終分析結果存在精度不高的問題。

5 方法比較

比較該框架與前文所提到的3種分析方法,如表3所示。

表3 對比分析

綜合上述分析可知,BitBlaze和CRAX這2種分析工具由于尚未完全開源,應用覆蓋范圍較窄,但對于程序崩潰可利用性判定研究具有重要的參考價值。目前主要利用!exploitable工具靜態(tài)分析Crash dump的方法初步判定Crash可利用性,然而該工具具有較高的假陽性率。本文提出的框架利用動態(tài)污點分析技術,便于擴展,針對棧溢出漏洞的可利用性判定準確率明顯高于!exploitable工具。

6 結束語

本文采用Windows下二進制插樁平臺Pin,提出了一種基于動態(tài)污點分析技術的Crash可利用性自動化判定框架。該框架能夠有效地檢測出可利用的崩潰并分配可利用性等級,準確分類棧溢出漏洞。但該框架主要存在2個問題:1)對于邏輯關系較為復雜的崩潰只能進行粗粒度的判斷,準確度較低;2)對于較大的程序或樣本,檢測時間開銷較大且收集的信息易重復,效率降低。

下一步將針對該框架的性能和效率進行優(yōu)化,增加對程序指令的識別覆蓋面,完善Crash可利用性判斷規(guī)則,避免污染缺失的情況,提高判定準確性;通過對內(nèi)存讀寫操作代碼的優(yōu)化,提高運行效率;結合動態(tài)符號執(zhí)行技術[18]分析異常指令后的多條路徑,提高路徑覆蓋率。

[1] 吳世忠,郭 濤,董國偉,等.軟件漏洞分析技術進展[J].清華大學學報(自然科學版),2012,52(10):1309-1319.

[2] MCGRAW G.Software security:building security in[M].Boston,USA:Addison-Wesley Professional,2006.

[3] KROHNHANSEN H.Program crash analysis:evaluation and application of current methods[EB/OL].[2017-06-05].https://www-esv.nhtsa.dot.gov/Proceedings/24/files/24ESV-000055.PDF.

[4] Microsoft.!exploitable crash analyzer——MSEC debugger extensions[EB/OL].[2017-06-05].http://msecdbg.codeplex.com.

[5] MILLER C,CABALLERO J,BERKELEY U,et al.Crash analysis with BitBlaze[J].Revista Mexicanade Sociología,2010,44(1):81-117.

[6] HUANG Shih-kun,HUANG Min-hsiang,HUANG Po-yen,et al.CRAX:software crash analysis for automatic exploit generation by modeling attacks as symbolic continua-tions[C]//Proceedings of the 6th International Conference on Software Security and Reliability.Washington D.C.,USA:IEEE Press,2012:78-87.

[7] WEINSTEIN D,SHIRK J.The history of the !exploitable crash analyzer[EB/OL].[2017-06-05].http://blogs.technet.com/b/srd/archive/2009/04/08/the-history-of-the-exploitable-Crash-analyzer.aspx.

[8] ZHANG Puhan,WU Jianxiong,XIN Wang,et al.Program crash analysis based on taint analysis[C]//Proceedings of the 9th International Conference on P2P,Parallel,Grid,Cloud and Internet Computing.Washington D.C.,USA:IEEE Press,2014:492-498.

[9] 葉永宏,武東英,陳 揚.一種基于細粒度污點分析的逆向平臺[J].計算機工程與應用,2012,48(28):90-96.

[10] 史大偉,袁天偉.一種粗細粒度結合的動態(tài)污點分析方法[J].計算機工程,2014,40(3):12-17.

[11] 宋 錚,王永劍,金 波,等.二進制程序動態(tài)污點分析技術研究綜述[J].信息網(wǎng)絡安全,2016(3):77-83.

[13] REDDI V J,JANAPA V,SETTLE A,et al.PIN:a binary instrumentation tool for computer architecture research and education[C]//Proceedings of Workshop on Computer Architecture Education.New York,USA:ACM Press,2004:1-7.

[14] 王 乾.基于動態(tài)二進制分析的關鍵函數(shù)定位技術研究[D].鄭州:信息工程大學,2012.

[15] 孔德光,鄭 烇,帥建梅,等.基于污點分析的源代碼脆弱性檢測技術[J].小型微型計算機系統(tǒng),2009,30(1):78-82.

[16] 黃 昭.一種改進的動態(tài)污點分析模型[D].武漢:華中科技大學,2011.

[17] WU Weimin,GUO Chaowei,HUANG Zhiwei,et al.Vulnerability exploitation technology of structured exception handling based on windows[J].Computer Engineering,2012,38(20):5-8.

[18] ZHANG Yufeng,CHEN Zhenbang,WANG Ji,et al.Regular property guided dynamic symbolic execution[C]//Proceedings of the 37th IEEE International Conference on Software Engineering.Washington D.C.,USA:IEEE Press,2015:643-653.

猜你喜歡
指令污染利用
聽我指令:大催眠術
利用min{a,b}的積分表示解決一類絕對值不等式
利用一半進行移多補少
堅決打好污染防治攻堅戰(zhàn)
當代陜西(2019年7期)2019-04-25 00:22:18
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產(chǎn)品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
堅決打好污染防治攻堅戰(zhàn)
利用數(shù)的分解來思考
Roommate is necessary when far away from home
對抗塵污染,遠離“霾”伏
都市麗人(2015年5期)2015-03-20 13:33:49
主站蜘蛛池模板: 九九线精品视频在线观看| 伊人久综合| 国产三级视频网站| 欧美精品色视频| 亚洲成a人在线观看| 五月激激激综合网色播免费| 日本妇乱子伦视频| 久久国产精品嫖妓| 日本一区二区三区精品视频| 国产小视频在线高清播放| 日韩精品无码不卡无码| 高清色本在线www| 欧美日韩精品一区二区视频| 夜精品a一区二区三区| 中文成人在线视频| 亚洲欧美天堂网| 亚洲天堂.com| 精品一区国产精品| 在线人成精品免费视频| 亚洲性色永久网址| 亚洲中文字幕日产无码2021| 日韩AV无码免费一二三区| 亚洲精品动漫| 免费人成网站在线高清| 亚洲色图欧美在线| 国产人在线成免费视频| 国产亚洲精久久久久久久91| 精品人妻无码中字系列| 中文字幕在线欧美| 亚欧成人无码AV在线播放| 日韩一区精品视频一区二区| 久久五月视频| 亚洲va精品中文字幕| 中文字幕资源站| 国产情侣一区二区三区| 欧美激情视频二区三区| 狠狠v日韩v欧美v| 亚洲一区免费看| 国产精品美女网站| 国产精品刺激对白在线| 国产在线观看人成激情视频| 国产十八禁在线观看免费| 综合人妻久久一区二区精品| 欧美不卡视频一区发布| 亚洲欧美在线精品一区二区| 2024av在线无码中文最新| 亚洲一区二区在线无码| 亚洲综合片| 四虎国产精品永久一区| 午夜精品久久久久久久无码软件 | 伊人色综合久久天天| 欧美一级在线| 97在线碰| 特级精品毛片免费观看| 女人18毛片水真多国产| 一级毛片在线免费看| 国产福利不卡视频| 国产一区二区三区夜色| 无码av免费不卡在线观看| 久久先锋资源| 天天摸夜夜操| 国产欧美日韩综合在线第一| 亚洲91在线精品| 日韩毛片在线视频| 伊在人亞洲香蕉精品區| 无码精品一区二区久久久| 国产精品无码制服丝袜| 欧美三级视频在线播放| 亚洲人成日本在线观看| 午夜少妇精品视频小电影| 婷婷成人综合| 色综合久久88| 92午夜福利影院一区二区三区| 人妻丰满熟妇αv无码| 日韩中文欧美| 国产精品性| 在线免费不卡视频| 精品综合久久久久久97超人| 国产九九精品视频| 91久久偷偷做嫩草影院电| 欧美精品啪啪一区二区三区| 在线观看免费AV网|