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

基于BPTT算法的webshell檢測研究?

2020-05-15 05:19:38先正鍇
計算機(jī)與數(shù)字工程 2020年2期
關(guān)鍵詞:檢測方法模型

先正鍇 甘 剛

(成都信息工程大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 成都 610225)

1 引言

隨著因特網(wǎng)技術(shù)飛速發(fā)展和日益普及,服務(wù)器安全問題日益嚴(yán)峻,甚至嚴(yán)重威脅到網(wǎng)絡(luò)服務(wù)的正常運(yùn)行。webshell是遠(yuǎn)程攻擊者上傳的網(wǎng)頁腳本(asp,jsp,php,CGI)文件,在這其中使用php的情況占多數(shù)。攻擊者上傳webshell到目標(biāo)服務(wù)器后,系統(tǒng)命令被執(zhí)行。webshell是一個網(wǎng)頁源代碼查看代碼,可以插入惡意腳本(iframe等),上傳文件各種攻擊,將導(dǎo)致如服務(wù)器和數(shù)據(jù)庫泄漏。并且可以以此為跳板,向網(wǎng)頁傳輸更多的文件甚至上傳一個更大功能更全的webshell。

機(jī)器學(xué)習(xí)擁有減少傳統(tǒng)惡意代碼檢測方法所需的大量人工工作量的能力,以及提高webshell檢測和分類準(zhǔn)確性的能力。在分析webshell的時候,機(jī)器學(xué)習(xí)模型在標(biāo)記為webshell的數(shù)據(jù)集上進(jìn)行訓(xùn)練,在任何一種情況下,模型都可以學(xué)習(xí)類之間的差異化特征,從而能夠形成一個模型,然后據(jù)此去推斷模型所屬是白樣本還是黑樣本,并且具有很高的準(zhǔn)確性,對于新型的webshell檢測是一個很好的構(gòu)想。

相比于動態(tài)分析方法,靜態(tài)分析消耗的時間和資源代價更小,機(jī)器學(xué)習(xí)方法模型在靜態(tài)分析的基礎(chǔ)上,僅需要opcode作為輸入,擁有極大的優(yōu)勢。

本文主要設(shè)計包括兩種基于深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的新方法并進(jìn)行比較。一種方法是通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)從灰度圖像中學(xué)習(xí)。從文件中提取灰度圖像,其中CNN可以從其本地圖像模式獲得webshell的結(jié)構(gòu)特征。另一種方法是通過長短期記憶(LSTM)從操作碼序列中學(xué)習(xí)。其中LSTM可以學(xué)習(xí)有關(guān)惡意代碼序列和模式的特征。但是在實際實驗中,一些webshell可能隱藏在很大的文件中,混入正常代碼或者其他隱藏方式,導(dǎo)致操作碼序列很長,從而在LSTM訓(xùn)練時可能會有梯度消失的情況出現(xiàn),因此我們采用基于子序列的截斷反向傳播算法來解決這個問題。實驗結(jié)果驗證了此方法具有更好的效果。

2 webshell混淆

安全防護(hù)軟件對能夠執(zhí)行命令或者代碼的函數(shù)比如eval、assert、system等特別敏感,一句話木馬不做加密變形處理容易被查殺,因此衍生出了多種多樣變形逃逸方式。

2.1 字符串和運(yùn)算符變形改變特征碼

普通的繞過方法,利用字符串函數(shù)或者操作符等,對關(guān)鍵字符串進(jìn)行多次加密、編碼、分割等操作后,再進(jìn)行拼接組合然后運(yùn)行。大部分的腳本語言中都包含有操作符。不同的操作符對應(yīng)的對象不同,操作功能也不盡相同。這使得代碼變形有了更大的發(fā)揮空間。

<%

Function MorfiCoder(Code)

MorfiCoder=Replace (Replace (StrReverse(Code),“/*/”,“”“”),“*”,vbCrlf)

End Function

Execute MorfiCoder(“)/*/z/*/(tseuqer lave”)

%>

這段代碼在被訪問運(yùn)行的時候,“)/*/z/*/(tseuqer lave”會被轉(zhuǎn)換為“eval request(/*/z/*/)”,變成后門文件,這樣來逃避通過特征碼來查殺,目前市面上絕大多數(shù)webshell都是以這種動態(tài)解碼方法或者類似方法進(jìn)行變形來繞過檢測。

2.2 編碼和加解密方式加密特征碼

普通的加密方法可以使用自帶的加密函數(shù)例如base64、urlencode、str_rot13等進(jìn)行編碼和加密。這些加密關(guān)鍵字對防護(hù)軟件十分敏感,對于函數(shù)眾多的php來說,有多重編碼和轉(zhuǎn)換方法,也有多種加密方法。

除了系統(tǒng)提供的函數(shù),還可以自己定義加密函數(shù)進(jìn)行加密,常見的有可逆和不可逆加密兩種方法。可逆加密即是旨在繞過查殺,當(dāng)鏈接的時候,通過制定加密函數(shù)即可獲取原文。不可逆加密即是通過RSA等密碼學(xué)非對稱加密算法進(jìn)行加密,當(dāng)攻擊者連接時,需要自己提供私鑰以此來解密出明文執(zhí)行。不可逆加密的好處是即便shell被發(fā)現(xiàn),也無法解密出明文。

2.3 利用php函數(shù)的特性

部分特有的特性或者函數(shù),可以用來進(jìn)行代碼變形,常見的有preg_replace、create_function和動態(tài)函數(shù)執(zhí)行以及序列化和反序列化等。這些也屬于基于字符串的變形而衍生出來的方式,最終還是調(diào)用eval之類的關(guān)鍵函數(shù)。除了這些普通特性,一些高級特性也能夠被利用于webshell上,比如反射機(jī)制,和動態(tài)函數(shù)執(zhí)行的方式十分的相似,將后門代碼放到/**/注釋中,然后利用類的反射機(jī)制獲取到,最后執(zhí)行動態(tài)函數(shù)。這種方法的代碼可以以任意一種格式存在,靈活度非常高。

隨著技術(shù)的更新,webshell的特性和使用方式也會越來越多,其利用方式和造成的危害也會更加嚴(yán)重。相信不久的將來動態(tài)學(xué)習(xí)的方法會在web?shell檢測領(lǐng)域發(fā)揮關(guān)鍵性的作用。

3 相關(guān)工作

3.1 webshell檢測方法

目前通過特征對webshell進(jìn)行檢測的方式主要有兩種,一種是靜態(tài)檢測,利用特征和文件相關(guān)特性異常的比較。第二種是動態(tài)檢測,通過訪問狀態(tài)、行為模式等進(jìn)行對比。多數(shù)Webshell會通過偽裝成一些普通的網(wǎng)頁文件來躲避檢測。

傳統(tǒng)及現(xiàn)有的檢測方法如下。

3.1.1 靜態(tài)檢測[9]

靜態(tài)檢測是通過提取代碼的典型特征值,對于webshell來說,典型的就是一句話木馬,攻擊者會對其進(jìn)行各種各樣的變形以逃避檢測。此外,對于一些高危函數(shù),可以去觀察它的修改時間同其他作比較。這種檢測方法主要是盡量預(yù)先設(shè)置規(guī)則去匹配惡意代碼的主要特征,常見的一些方法有正則表達(dá)式、文件時間聚類以及關(guān)聯(lián)度和語義分析等等。

因為是基于規(guī)則,所以對已知類型的木馬具有很好的查殺效果和速度。不過在漏報誤報方面有很大的局限性,十分依賴規(guī)則庫的性能。并且對于新型的webshell木馬查殺效果很不理想,很多攻擊者稍微有針對性的進(jìn)行改動即可繞過。

3.1.2 動態(tài)檢測

動態(tài)監(jiān)測實現(xiàn)原理類似沙箱機(jī)制,當(dāng)webshell上傳到服務(wù)器后,攻擊者在執(zhí)行后門的時候會表現(xiàn)出動態(tài)特征。我們在webshell的分析層修改底層函數(shù)去hook可疑的危險函數(shù),檢測代碼運(yùn)行過程中是否去調(diào)用了這些危險函數(shù),或是在腳本調(diào)用這些函數(shù)的時候進(jìn)行分析,判斷該腳本是否為非法用戶的shell。

不過動態(tài)檢測在部署時可能會需要重新編譯或者修改配置文件等,對于小型服務(wù)器效果顯著,對于大型批量式部署則會比較麻煩。

3.1.3 日志分析

當(dāng)攻擊者鏈接webshell的時候不會留下系統(tǒng)日志記錄,但是會有相關(guān)的訪問鏈接記錄。日志分析就是根據(jù)webshell的訪問規(guī)律和正常文件訪問規(guī)律不同,其主要特征例如訪問次數(shù)比較少,訪問總數(shù)也比較少,并且該頁面文件與網(wǎng)站其他頁面無相關(guān)聯(lián),也就是無其他頁面指向webshell頁面。這種方法類似數(shù)據(jù)分析,在訪問量到一定的級別時利用相關(guān)設(shè)計能夠有很大的參考價值。

日志分析也有一些缺點,在誤報方面依舊存在問題,并且當(dāng)訪問量足夠大的時候,相關(guān)方法的檢測能力和效率較低。

3.1.4 統(tǒng)計學(xué)

除了之前幾個方法以外,webshell在加密或者混淆的同時,會表現(xiàn)出一些統(tǒng)計學(xué)方面的特征,這方面典型的代表就是NeoPi。其主要檢測方法為信息熵、最長單詞、重合指數(shù)、特征和壓縮。統(tǒng)計學(xué)主要針對加密和混淆,所以它對經(jīng)過處理后的模糊代碼具有不錯的檢測效果,相反對于原生未經(jīng)過加密混淆的webshell,檢測效果的表現(xiàn)沒有那么良好。

3.2 Opcode在webshell中的應(yīng)用

當(dāng)Zend虛擬機(jī)解析php,執(zhí)行一段代碼時,一般會經(jīng)歷以下4個步驟:

1)Scanning(Lexing),將PHP代碼轉(zhuǎn)換為語言片段(Tokens);

2)Parsing,將tokens轉(zhuǎn)換成簡單有意義的表達(dá)式;

3)Compilation,將表達(dá)式編譯成Opcodes;

4)Execution,Zend引擎接下來順次執(zhí)行 Op?codes。

PHP是運(yùn)行在Zend虛擬機(jī)之上的,PHP中的Opcode則屬于字節(jié)碼。這里PHP的opcode就指的是Zend虛擬機(jī)能識別的指令。Opcode是可以由Zend虛擬機(jī)執(zhí)行的單個操作的數(shù)字標(biāo)識符,php掃描了人可讀代碼后并將其嵌入到tokens中之后,這些tokens在解析階段被組合在一起,這些小表達(dá)式又被編譯或轉(zhuǎn)換為操作碼。操作碼是Zend VM作為一個單元執(zhí)行的指令,最終會在一個數(shù)組中逐個執(zhí)行并運(yùn)行。

VLD(Vulcan Logic Dumper)是一個PHP 擴(kuò)展,在Zend引擎中通過hook的方式輸出PHP腳本生成的中間代碼(執(zhí)行單元)。因此我們使用VLD提取樣本中的Opcodes,最常見的一句話木馬實際運(yùn)行情況下的操作碼:

<?php@eval($_POST['password']);?>

它的opcode輸出如下

op return operands

BEGIN_SILENCE ~0

FETCH_R $1 '_POST'

FETCH_DIM_R $2 $1,'password'

INCLUDE_OR_EVAL $2,EVAL

END_SILENCE ~0

RETURN 1

php webshell實際上也只是一段php代碼,通過加密混淆手法,最終執(zhí)行了一些特定的操作,比如執(zhí)行命令、列出目錄、上傳和查看文件等。如果使用傳統(tǒng)靜態(tài)檢測方法,直接對人們編寫的源代碼進(jìn)行檢測,那么會有很多因素影響檢測結(jié)果。但是當(dāng)我們在Opcode層面對webshell進(jìn)行檢測則可以繞過這些混淆方法。

4 神經(jīng)網(wǎng)絡(luò)研究設(shè)計與實踐

4.1 CNN分析設(shè)計

CNN作為典型的深度神經(jīng)網(wǎng)絡(luò),廣泛應(yīng)用于計算機(jī)視覺領(lǐng)域和圖像相關(guān)任務(wù)。典型應(yīng)用用于通過多個卷積層和池化層來處理輸入數(shù)據(jù)的手寫數(shù)字識別。每個卷積層輸出一組特征映射,而每個特征映射表示通過一個特定卷積濾波器提取的高級特征。并且匯集層主要使用局部相關(guān)原理來完成下采樣,因此后續(xù)卷積層可以從更全局的角度提取特征。這大大減少了重量參數(shù)的數(shù)量和訓(xùn)練深度網(wǎng)絡(luò)的計算。

為了滿足CNN對輸入數(shù)據(jù)的要求,我們首先對灰度圖像進(jìn)行預(yù)處理。當(dāng)CNN執(zhí)行像圖像分類這樣的任務(wù)時,它會獲取具有相同大小的輸入圖像數(shù)據(jù)。由于web文件具有不同的文件大小,各種灰度圖像大小也存在很大差異,因此有必要對所有灰度圖像進(jìn)行標(biāo)準(zhǔn)化。

保證模型訓(xùn)練過程的實用性還需要對文件大小規(guī)定一個上限。為了盡可能地保留原始結(jié)構(gòu)我們使用了通用圖像縮放算法,其中文件字節(jié)代碼被解釋為一維“圖像”并且被縮放到規(guī)定的大小,這是一種有損數(shù)據(jù)壓縮。使用圖像縮放算法主要是為了盡可能地降低數(shù)據(jù)中存在的空間模式的失真。與在進(jìn)行分類之前將Opcode文件轉(zhuǎn)換為2D圖像的方法相比,這種方法更加簡便,不需要規(guī)定圖像的高度和寬度。將Opcode文件轉(zhuǎn)換為字節(jié)流也保留了原始文件中字節(jié)碼的順序,原始Opcode文件的這種順序表示它很容易應(yīng)用在循環(huán)神經(jīng)網(wǎng)絡(luò)體系結(jié)構(gòu)上。

我們使用OpenCV計算機(jī)視覺庫將每個原始webshell文件縮放到10,000字節(jié)的大小-即在縮放之后,一個webshell樣本對應(yīng)于一個1字節(jié)值的序列。圖1是多個webshell文件的二維灰度圖像。

圖1 opcode文件的灰度圖像表示示例

4.2 LSTM分析設(shè)計

Ocode序列實際上反映了文件的代碼邏輯和執(zhí)行邏輯。因此,我們可以使用LSTM挖掘與它們的高級惡意行為相對應(yīng)的序列特征。

在操作碼序列提取過程中,操作碼集的大小將影響操作碼序列的平均長度。為了使操作碼所表示的信息更加有效,需要對其大小進(jìn)行控制并制定一個最佳的范圍。因此,我們用詞匯表來表示web?shell文件的文本和指令,統(tǒng)計它們的出現(xiàn)評率,對低于一定頻率的進(jìn)行刪除。把詞匯表里面的每個詞匯的頻率作為特征,使用隨機(jī)森林模型分類,得到所有特征重要性的排名,選擇具有最佳特征重要性的詞匯表。最后,從操作碼集中提取操作碼序列。到目前為止,這些操作碼序列在被用作神經(jīng)網(wǎng)絡(luò)的輸入之前應(yīng)該被數(shù)字化;我們使用one-hot編碼方式,它只需要進(jìn)行映射變換就可以獲得稀疏向量,如[0,0,0,1,0,……,0]其狀態(tài)位表示僅包含一個非零元素的狀態(tài)。每個操作碼都有一個獨(dú)特的表示。

4.2.1 截斷反向傳播TBPTT

不僅是操作碼集,輸入序列過長也會影響LTSM的訓(xùn)練效果。本文使用截斷反向傳播時間(TBPTT),它增加了時間窗口約束來限制錯誤反向傳播操作的最大距離。因此,錯誤傳播和梯度計算僅在窗口中執(zhí)行,并且窗口之外的節(jié)點的權(quán)重不會更新。與標(biāo)準(zhǔn)BPTT(或完全BPTT)相比,它通過犧牲一小部分精度來提高計算效率,當(dāng)反向傳播距離太長時,標(biāo)準(zhǔn)BPTT計算效果較差。此外,截斷的BPTT還可以快速適應(yīng)長度大的序列中的一些新生成部分。總體而言,截斷BPTT方法更加合理且有效。

我們提出了一種基于截斷BPTT算法的LSTM實現(xiàn)。由于梯度僅在窗口中傳播,首先將操作碼序列劃分為多個子序列,其中每個子序列的長度等于截斷的BPTT的窗口長度。對于每個子序列,我們只做一個完整的BPTT,它等于對整個序列進(jìn)行截斷的BPTT而沒有交叉窗口劃分。這樣還可以讓一系列子序列同時進(jìn)行訓(xùn)練。利用此方法我們的訓(xùn)練速度可以達(dá)到之前的3倍以上。圖2顯示了序列長度為6,誤差反向傳播為3的步驟圖。

圖2 TBPTT步驟圖

其中本文所使用BPTT算法過程如下:

4.2.2 滑動窗口數(shù)據(jù)增強(qiáng)策略

此外神經(jīng)網(wǎng)絡(luò)應(yīng)用到分類時,常常會出現(xiàn)類不平衡問題。對于webshell更是如此,往往大型網(wǎng)站里面web文件成千上萬,和其中一些webshell差別巨大。并且對于webshell也有很多種類型,其中被廣泛運(yùn)用的一句話木馬和一些少見的留后門方式數(shù)據(jù)集差距很大,于是我們采用數(shù)據(jù)增強(qiáng)策略來避免數(shù)據(jù)集的不同對后期的訓(xùn)練學(xué)習(xí)造成影響。

因為長度很長的兩個子序列之間沒有重合的部分,所以提出了滑動窗口來對長度比較大的序列進(jìn)行分割。窗口長度等于BPTT的窗口長度,我們使用控制滑動窗口的大小來控制生成子序列的多少。如果窗口越大,那么子序列的數(shù)量越少,反之越多。我們用表示類總樣本,βi代表總樣本數(shù),αij表示單個樣本長度,其中j∈(0,…βi),χ表示滑動窗口長度。如果我們要把類總樣本擴(kuò)展到s,那么我們首先計算出當(dāng)前滑動窗口步長di:

而且因為步長的最小值設(shè)置為1,所以對于總樣本數(shù)還有上限設(shè)置:

4.3 數(shù)據(jù)提取處理

我們的實驗數(shù)據(jù)來自github的一些開源的php項目和一些收集的webshell項目。在預(yù)處理(重復(fù)度處理)之后,它包含2,738個不同的php源代碼,1,132個標(biāo)記為黑名單代碼,1,606標(biāo)記為白名單代碼。接下來,我們對代碼樣本進(jìn)行一些處理以便后面進(jìn)行訓(xùn)練。使用VLD擴(kuò)展從代碼里面提取出opcode,然后根據(jù)php文檔里面的opcode列表進(jìn)行相應(yīng)的序列化轉(zhuǎn)換。最后,進(jìn)行對樣本數(shù)據(jù)的二類化標(biāo)簽,用0代表白樣本代碼,1代表惡意代碼。

4.4 實驗配置與結(jié)果

第一個模型將卷積層的輸出連接到密集層,然后通過softmax激活連接到輸出層,將每個輸入分類為九類webshell中的一個,如圖3所示。此CNN-基于方法使用每個webshell類的局部模式對op?code文件的一維表示進(jìn)行分類,并且是圖像分類中非常成功的神經(jīng)網(wǎng)絡(luò)架構(gòu)。

圖3 卷積神經(jīng)網(wǎng)絡(luò)(CNN)模型

第二種模型,在循環(huán)層的頂部之前應(yīng)用遞歸神經(jīng)網(wǎng)絡(luò)層也就是長短期記憶模塊(LSTM),然后將循環(huán)層的輸出饋送到輸出層將輸入分類為九個webshell類之一。我們在卷積層的頂部應(yīng)用一個前向LSTM層,其中LSTM中單元從頭到尾鏈接。

圖4 (CNN+LSTM)模型

本實驗總共使用了三種深度學(xué)習(xí)配置作為對比,第三種用于與第二種作對比檢驗基于子序列的截斷反向傳播方法效果:所有模型都具有三個卷積層,每層中的節(jié)點數(shù)通過其在交叉驗證過程中的性能來選擇。為了實現(xiàn)更穩(wěn)健的準(zhǔn)確度測量,我們使用五折交叉驗證。數(shù)據(jù)集被混洗并分成五個相等的部分,每個部分具有與主數(shù)據(jù)集大致相同的類分布。對于具體選擇的深度學(xué)習(xí)配置,我們將五個部分中的每一個設(shè)置為左側(cè)部分,在另外4個部分上訓(xùn)練一個模型并記錄其中樣本的預(yù)測。然后匯總所有五個部分的預(yù)測,并使用它們來計算所選深度學(xué)習(xí)配置的性能。

除了使用平均分類準(zhǔn)確度來顯示模型的性能之外,還通過其針對每個類別的平均F1分?jǐn)?shù)來評估模型的性能。F1值報告任何一個類別上的模型的性能作為該類別的precision和recall的調(diào)和平均值,并且平均F1值將對每個同等重要的類別的性能進(jìn)行處理。

表1 使用5倍交叉驗證程序的不同深度學(xué)習(xí)配置的平均準(zhǔn)確度和F1值

最終的深度學(xué)習(xí)模型的參數(shù)如下:所有型號都有三層卷積層,帶有整流線性單元(ReLU)激活功能;三層濾波器的數(shù)量分別為30,50和90。對于CNN模型,卷積層的輸出連接到256個單元的密集層,然后反饋到輸出層。對于具有LSTM的CNN,我們將卷積層的輸出連接到一個LSTM層,每個LSTM層具有128個隱藏單元;然后,LSTM層的輸出連接到輸出層。這些模型都是使用帶有Tensor?flow后端的Keras庫實現(xiàn)。

采用5倍交叉驗證過程,通過Adam優(yōu)化方法修改模型的權(quán)重,用0.001的學(xué)習(xí)速率最小化交叉熵。因為對于傳統(tǒng)的隨機(jī)梯度下降在訓(xùn)練中學(xué)習(xí)率并不會發(fā)生變化,Adam算法可以計算梯度的一階矩估計和二階矩估計,從而對不同的參數(shù)可以擁有獨(dú)立的學(xué)習(xí)率。

表1顯示了3種不同深度學(xué)習(xí)配置的平均準(zhǔn)確度和F1值。

根據(jù)結(jié)果可知,幾乎所有的檢測都達(dá)到了95%以上的準(zhǔn)確度,其中使用反向截斷滑動窗口算法的CNN-LSTM-TB具有最佳的F1分?jǐn)?shù)和驗證數(shù)據(jù)的最佳準(zhǔn)確度。

5 結(jié)語

本文分析了webshell的一些流行變形方式,然后介紹了現(xiàn)今常見的一些webshell的檢測方法。最后提出了使用了反向截斷滑動窗口算法的神經(jīng)網(wǎng)絡(luò)方法來對webshell進(jìn)行檢測,通過不同深度學(xué)習(xí)框架對經(jīng)過處理后的惡意后門進(jìn)行檢測,實驗結(jié)果表明相關(guān)算法及神經(jīng)網(wǎng)絡(luò)模型對webshell有著極高的檢測準(zhǔn)確度,并且F1值也十分出色,驗證了我們的構(gòu)想。傳統(tǒng)的檢測方法對已知類型的web?shell有著不錯的檢測效果,但是人力成本和商業(yè)成本花費(fèi)開銷巨大。并且對于未知類型的檢測是重中之重,往往造成巨大危害后果的就是少數(shù)躲過檢測的新型變種,除了神經(jīng)網(wǎng)絡(luò),我們還可以嘗試使用其他算法或者訓(xùn)練模型來進(jìn)行檢測。

猜你喜歡
檢測方法模型
一半模型
“不等式”檢測題
“一元一次不等式”檢測題
“一元一次不等式組”檢測題
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
3D打印中的模型分割與打包
小波變換在PCB缺陷檢測中的應(yīng)用
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
主站蜘蛛池模板: 国产区在线看| 亚洲中文无码av永久伊人| 日韩中文字幕亚洲无线码| 亚洲啪啪网| 无码专区在线观看| 97视频精品全国免费观看 | 在线网站18禁| 中文字幕第1页在线播| 啪啪永久免费av| 2021最新国产精品网站| 欧洲一区二区三区无码| 美女裸体18禁网站| 欧美精品在线免费| 国产av剧情无码精品色午夜| 成人精品视频一区二区在线 | 欧美a网站| 国产v欧美v日韩v综合精品| 特级做a爰片毛片免费69| 国产玖玖视频| 亚洲青涩在线| 亚洲高清中文字幕| 在线观看免费黄色网址| 久久精品中文字幕免费| 黄色一级视频欧美| 日本伊人色综合网| 欧美国产视频| 欧美性精品不卡在线观看| 国产精品亚洲αv天堂无码| 免费国产高清精品一区在线| 老司机久久精品视频| 香蕉视频在线观看www| 欧美一区精品| 99热国产这里只有精品无卡顿"| 亚洲AV无码不卡无码| 亚洲色图另类| 亚洲天堂2014| 久久久久久国产精品mv| 国产区人妖精品人妖精品视频| 精品视频在线观看你懂的一区| 激情無極限的亚洲一区免费| 国产在线91在线电影| 亚洲激情区| 囯产av无码片毛片一级| 国产偷国产偷在线高清| 中日韩欧亚无码视频| 日韩高清中文字幕| 午夜高清国产拍精品| 亚洲男人天堂2020| 亚洲V日韩V无码一区二区| 国产乱子伦视频三区| 一本色道久久88亚洲综合| 麻豆精品在线| 欧美成人精品一级在线观看| 97se亚洲综合不卡| 99人体免费视频| 波多野结衣一区二区三区88| 成人av专区精品无码国产| 亚瑟天堂久久一区二区影院| 最新无码专区超级碰碰碰| 欧美日本在线| 67194在线午夜亚洲| 国产成人三级在线观看视频| 免费在线观看av| 日韩无码精品人妻| 国产精品露脸视频| 亚洲人人视频| 成人va亚洲va欧美天堂| 国产一区自拍视频| 久久国产乱子伦视频无卡顿| 亚洲一区二区黄色| 亚洲天堂久久| 亚洲综合激情另类专区| 九色在线视频导航91| 一级成人a做片免费| 国产99在线| 久久综合九色综合97婷婷| 任我操在线视频| 中文字幕亚洲乱码熟女1区2区| 欧美在线导航| 成人第一页| 精品三级网站| 亚洲欧洲美色一区二区三区|