精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用doop識別最近commons text漏洞的污點信息流

安全
本文基于筆者對doop靜態程序分析框架源代碼和規則學習,并結合對目前漏洞公開技術細節的學習,修改增強doop app only模式下的分析規則后,實現通過doop工具識別commons text rce漏洞(CVE-2022-42889)。

一、doop靜態分析框架簡介

1. doop靜態分析框架簡介

doop靜態分析框架由希臘雅典大學plast-lab Yannis Smaragdakis團隊設計開發,目前看是一款開源領域的比較先進的程序靜態分析框架,一些程序靜態分析論文的理論也有通過doop的規則實現后實驗。

doop整體架構簡單明了,符合通常靜態代碼漏洞掃描工具掃描器內核的設計思路。架構上由groovy寫的調用程序“粘合”在一起,通過調用fact-generator和datalog分析器,得出自動化的分析結果。

下面是筆者畫的doop整體架構圖,包含doop中一些關鍵的組件模塊:

圖片

2. doop工作流程

  1. doop的fact generator模塊會對輸入進行解析(例如jar包的解析或者類的resolve從而加載進必要的類信息到內存中)
  2. 調用soot、wala等工具生成jimple IR,在此基礎上生成后續分析引擎需要的facts文件。而后doop使用LogicBlox(目前doop已不維護)或者Soufflé(開源的datalog分析引擎)
  3. 基于facts文件和既定的datalog分析規則文件進行分析,得到最終的程序分析結果。

doop支持對java源碼及字節碼的分析,不過源碼的jdk版本受限,建議直接使用字節碼進行分析。

doop核心是其實現的一套datalog分析規則,其中包含了由粗糙到精細的context-insensitive、1-call-site-sensitive、1-call-site-sensitive+heap的豐富的靜態程序分析策略等等等,同時通過在addons中添加了額外的對信息流分析、對spring等生態框架、對java反射特性的支持,十分強大。

以上是對doop的架構和功能的簡單介紹,jar包信息的解析、規則的預處理、編譯執行和解釋執行、程序的并發設計或者由于大量sootclass加載造成的內存溢出問題等一些細節由于篇幅限制不在此介紹。

二、commons text rce漏洞簡介

先對該漏洞進行簡單介紹。

Apache Commons Text是一款處理字符串和文本塊的開源項目,之前被披露存在CVE-2022-42889遠程代碼執行漏洞,這個漏洞目前網上的分析文章比較多,在此不做復述。該漏洞原理上有點類似log4j2,當然影響不可相比,其代碼中存在可以造成代碼執行的插值器,例如ScriptStringLookup(當然這里提到這個插值器是因為我們目標就是分析這一條sink污點流),同時沒有對輸入字符串的安全性進行驗證導致問題。

圖片

借用網上公開的poc觸發ScriptStringLookup中的代碼執行,使用commons text 1.9版本 :

圖片

完整的漏洞調用棧如下:

圖片

從調用棧可以看出,通過調用commons text的字符串替換函數,可以調用到ScriptStringLookup類的lookup方法,從而調用scriptEngine.eval執行代碼。可以看出該條漏洞鏈路較淺,但鏈路關鍵節點也涉及了接口抽象類的cast、輸入字符串的詞法分析狀態機以及各種字符串的處理函數,作為實驗對象非常合適。

三、commons text rce污點信息流的doop識別規則

我們選取上述二中commons text中

org.apache.commons.text.StringSubstitutor replace函數作為source,ScriptEngine eval函數作為sink。

doop設置app only模式去進行分析,doop在app only模式下會將!ApplicationMethod(?signature)加入isOpaqueMethod(?signature),這樣一些分析不會進入jdk的類中,可以大大提高doop的分析效率。依據萊斯定理,靜態程序分析難以達到完全的完備(truth或者perfect),也是盡可能優化sound。類似在企業級的SAST部署使用也是如此,也需要在掃描精度、掃描速度以及實際可用性中進行取舍或者平衡,所以doop的app only模式下在個人看來更接近實際嵌入到devsecops中的輕量級靜態代碼漏洞掃描的應用。

3.1 doop的datalog分析規則簡單介紹

由于涉及doop app only規則的改造,首先先簡單介紹doop使用的datalog規則。

doop目前維護使用開源的Soufflé分析datalog規則。datalog是聲明式的編程語言,也是prolog語言的非圖靈完備子集,所以本質上也是建立在形式邏輯中的一階邏輯上。所以基礎概念也是命題推導,在Soufflé的形式上就是表現為關系(relation)。

如下例子:

圖片

很明顯可以看出該例子通過datalog定義的關系邏輯實現相等關系的自反性、對稱性和傳遞性,首先定義了equivalence關系,該關系可以由rel1和rel2關系蘊涵得到,而equivalence的a需要滿足關系rel1,b需要滿足關系rel2。具體語法和高階特性可以通過souffle-lang.github.io網站進行了解。

3.2 doop配置使用簡單介紹

doop可以通過gradle去編譯使用,需要提前在類unix系統中借助cmake編譯安裝Soufflé,doop的具體安裝使用可以在https://github.com/plast-lab/doop-mirror中了解。

對doop的命令行使用進行簡單,分析,有幾個關鍵的命令參數,-i參數接受需要分析的文件(例如jar包),-a參數配置分析策略(例如是選擇context sensitive還是context insensitive),--app-only參數配置開啟doop的app only模式,--information-flow開啟doop的信息流分析模式(可以用來做污點分析),--platform設置分析需要的jdk平臺,--fact-gen-cores配置生成facts的并發性。

本文使用的doop命令參數:

-a context-insensitive --app-only --information-flow spring --fact-gen-cores 4 -i docs/commons-text.jar --platform java_8 --stats none

3.3 重新編譯打包commons text

這是我最初使用doop分析commos text的方法,主要為了盡可能減輕的對原生規則的侵入。doop在使用jackee進行分析事,分析入口的確定及一些mockobject的構建都需要依賴于對springmvc注解的識別。

下載commons text的源碼,自定義兩條class和method注解TestctxTaintedClassAnnotation、TestctxTaintedParamAnnotation:

圖片

注解實現為一個空注解,主要是為了標注一下我們的source,將注解打到對應的class類和方法:

圖片

重新編譯打包為jar包,得到2中命令參數-i的commons-text.jar。

3.4 改造doop app only下的規則

doop的污點信息流識別依賴于指針分析結果,同時也依賴污點轉移函數。doop中已經預置了多條污點轉移函數,其中包含了字符串、鏈表、迭代器等基礎類方法。

ParamToBaseTaintTransferMethod(0, "<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.Object)>").
ParamToBaseTaintTransferMethod(0, "<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.String)>").
ParamToBaseTaintTransferMethod(0, "<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.StringBuffer)>").
ParamToBaseTaintTransferMethod(0, "<java.lang.StringBuffer: java.lang.StringBuffer append(java.lang.CharSequence)>").
ParamToBaseTaintTransferMethod(0, "<java.lang.StringBuffer: java.lang.StringBuffer append(char[])>").
ParamToBaseTaintTransferMethod(0, "<java.lang.StringBuffer: java.lang.StringBuffer append(char)>").
BaseToRetTaintTransferMethod("<java.lang.Float: float floatValue()>").
BaseToRetTaintTransferMethod("<java.lang.String: byte[] getBytes(java.lang.String)>").
BaseToRetTaintTransferMethod("<java.lang.String: char charAt(int)>").
BaseToRetTaintTransferMethod("<java.util.Enumeration: java.lang.Object nextElement()>").
BaseToRetTaintTransferMethod("<java.util.Iterator: java.lang.Object next()>").
BaseToRetTaintTransferMethod("<java.util.LinkedList: java.lang.Object clone()>").
BaseToRetTaintTransferMethod("<java.util.LinkedList: java.lang.Object get(int)>").
BaseToRetTaintTransferMethod("<java.util.Map: java.util.Set entrySet()>").
BaseToRetTaintTransferMethod("<java.util.Map$Entry: java.lang.Object getValue()>").
BaseToRetTaintTransferMethod("<java.util.Set: java.util.Iterator iterator()>").
BaseToRetTaintTransferMethod("<java.lang.String: char[] toCharArray()>").
BaseToRetTaintTransferMethod("<java.lang.String: java.lang.String intern()>").

然而其中沒有包含String split函數的污點轉移規則,需要添加上:

BaseToRetTaintTransferMethod("<java.lang.String: java.lang.String[] split(java.lang.String,int)>").

如上述,doop自有的jackee規則肯定沒有包含我們自定義的注解,所以需要在EntryPointClass、Mockobj等關系定義中添加對我們自定義的class污點注解的識別。

EntryPointClass(?type) :-
   //...
   Type_Annotation(?type, "org.apache.commons.text.TestctxTaintedClassAnnotation");
//...
MockObject(?mockObj, ?type) :-
  //...
   Type_Annotation(?type, "org.apache.commons.text.TestctxTaintedClassAnnotation");

同時也需要添加param污點的注解。doop需要通過這些注解識別分析入口方法,構建污點mockobj,建立初始的指向關系等。

//...
mainAnalysis.VarPointsTo(?hctx, cat(cat(cat(cat(?to, "::: "), ?type), "::: "), "ASSIGN"), ?ctx, ?to) :-
  FormalParam(?idx, ?meth, ?to),
  (Param_Annotation(?meth, ?idx, "org.springframework.web.bind.annotation.RequestParam");
  Param_Annotation(?meth, ?idx, "org.springframework.web.bind.annotation.RequestBody");
  Param_Annotation(?meth, ?idx, "org.apache.commons.text.TestctxTaintedParamAnnotation");

為了確保方法的可達性,我們還添加了

ImplicitReachable("") :- isMethod("").但后續看不一定有必要,僅供參考。

通過注解我們在規則中定義了source,接下來需要定義sink,我們將ScriptEngine的eval方法定義為sink:

LeakingSinkMethodArg("default", 0, method) :- isMethod(method), match("<javax.script.ScriptEngine: java.lang.Object eval[(].*[)]>", method).

正如前述,由于是在app only下,doop下通過OpaqueMethod關系過濾了jdk類的識別,這樣會導致相應的上述預置的污點轉移函數無法完成污點轉移,所以需要另外定制規則流去將轉移函數包含進數據流分析過程。

于是需要定義

OptTaintedtransMethodInvocationBase關系。

.decl OptTaintedtransMethodInvocationBase(?invocation:MethodInvocation,?method:Method,?ctx:configuration.Context,?base:Var)
OptTaintedtransMethodInvocationBase(?invocation,?tomethod,?ctx,?base) :-
  ReachableContext(?ctx, ?inmethod),
//Reachable(?inmethod),
  Instruction_Method(?invocation, ?inmethod),
  (
  _VirtualMethodInvocation(?invocation, _, ?tomethod, ?base, _);
  _SpecialMethodInvocation(?invocation, _, ?tomethod, ?base, _)
  ).

在此基礎上,為了完成新的污點轉移,doop需要根據以下自定義規則分析出返回值的類型信息。

.decl MaytaintedInvocationInfo(?invocation:MethodInvocation,?type:Type,?ret:Var)
MaytaintedInvocationInfo(?invocation, ?type, ?ret) :-
  Method_ReturnType(?method, ?type),
  MethodInvocation_Method(?invocation, ?method),
  AssignReturnValue(?invocation, ?ret).
.decl MaytaintedTypeForReturnValue(?type:Type, ?ret:Var, ?invocation:MethodInvocation)
MaytaintedTypeForReturnValue(?type, ?ret, ?invocation) :-
  MaytaintedInvocationInfo(?invocation, ?type, ?ret),
  !VarIsCast(?ret).

基于以上的污點轉移過程分析規則,應用到污點變量的轉移分析規則中。

VarIsTaintedFromVar(?type, ?ctx, ?ret, ?ctx, ?base) :-
  //mainAnalysis.OptTaintedtransMethodInvocationBase(?invocation,?method,?base),
  mainAnalysis.OptTaintedtransMethodInvocationBase(?invocation,?method,?ctx,?base),
  MaytaintedTypeForReturnValue(?type, ?ret, ?invocation),
  BaseToRetTaintTransferMethod(?method).
  //mainAnalysis.VarPointsTo(_, _, ?ctx, ?base).

同時也需要重新定義LeakingSinkVariable關系,因為我們這里自定義的sink方法也是Opaque方法,這樣才能識別到我們的ScriptEngine 的eval方法。

LeakingSinkVariable(?label, ?invocation, ?ctx, ?var) :-
  LeakingSinkMethodArg(?label, ?index, ?tomethod),
  mainAnalysis.OptTaintedtransMethodInvocationBase(?invocation,?tomethod,?ctx,?base),
  //mainAnalysis.VarPointsTo(_, _, ?ctx, ?base),//here problem
  ActualParam(?index, ?invocation, ?var).

從上面規則的定義可以看出,改造的流程還是比較清晰的,并且通過關系的名字,這些關系的含義和用途也很容易理解。添加這些自定義規則到我們的doop分析中運行,在結果中可以看出,doop完成了對commons text的污點信息流的識別。

在結果集中的LeakingTaintedInformation.csv文件中可以找到我們需要捕捉到的souce-sink流。

default default <<immutable-context>> <org.apache.commons.text.lookup.ScriptStringLookup: java.lang.String lookup(java.lang.String)>/javax.script.ScriptEngine.eval/0 <org.apache.commons.text.StringSubstitutor: java.lang.String replace(java.lang.String)>/@parameter0

LeakingTaintedInformation.csv給出了污點信息。包括污點的標簽(這里是默認的default,可以自定義),sink方法的調用信息,該sink方法對應的污點源頭souce信息。

如上圖可以看出,

org.apache.commons.text.lookup.ScriptStringLookup: 

java.lang.String lookup(java.lang.String)中調用到

javax.script.ScriptEngine.eval,并且污點的源頭是

org.apache.commons.text.StringSubstitutor: 

java.lang.String replace(java.lang.String)方法的參數@parameter0。

同時,在結果集中的AppTaintedVar.csv文件也可以看到具體的應用代碼中由于污點傳播過程中的被污染的變量.以上面commons text 漏洞執行方法棧中的

org.apache.commons.text.StringSubstitutor的resolveVariable為例:

圖片

可以看出方法中被污染的入參variableName、buf,還有resolver,以及$stack7等(這是經過soot生成jimple的過程中SSA pack部分優化新增的棧變量)。

圖片

基于這兩個結果集基本可以看出漏洞的觸發流程或者說污點的傳播過程(雖然不是特別直觀),如果需要也可以再搭配生成的CallGraphEdge.csv去更方便的進行分析。

四、總結

doop直接用來分析大型項目需要一定的計算資源,并且無論是規則的定制還是分析結果查看都不是特別直觀,畢竟它的設計初衷就是一款分析框架,用在實際漏掃漏洞挖掘中可能需要進一步包裝修改 。但可以看出,doop作為一款優秀的開源靜態分析框架,在算法上毋庸置疑是比較先進和豐富的,而且基于開源的算法規則,我們可以任意去定制我們需要的分析邏輯。其與codeql在設計思路也較為相近,將程序信息提取后生成數據庫,開放查詢接口,將程序分析轉變為數據關系的查詢,因此可以擴展出更多的用途。

責任編輯:龐桂玉 來源: vivo互聯網技術
相關推薦

2023-10-18 07:09:31

AIGC瀏覽器

2017-04-13 12:01:54

數據監測信息流

2010-11-18 12:36:13

距離矢量協議路由交換

2010-07-07 12:14:01

路由選擇協議

2011-11-07 09:50:30

2024-03-08 08:50:01

信息流系統緩存

2025-09-26 08:18:23

2021-09-28 18:54:26

信息流大數據人工智能

2021-07-20 09:28:41

信息系統實踐

2011-05-23 10:25:25

高砂鑒臣化工信息化

2017-12-01 13:13:39

AI網易傳媒信息流

2017-03-27 18:08:52

2011-12-26 13:27:58

2022-12-12 16:23:54

華為

2017-11-14 16:59:47

新浪微博深度學習

2019-02-28 15:03:50

廣告

2021-12-26 19:04:51

漏洞Logback系統

2013-07-19 09:36:04

struts2struts2漏洞
點贊
收藏

51CTO技術棧公眾號

国产熟妇搡bbbb搡bbbb| 狠狠噜天天噜日日噜| 国产精品尤物视频| 亚洲v在线看| 亚洲精品美女免费| 奇米影音第四色| 黄色成人在线网| 国产午夜精品一区二区三区嫩草| 成人免费福利在线| 国产 日韩 欧美 在线| 青青草国产成人a∨下载安卓| 日韩一级高清毛片| 国产裸体舞一区二区三区| 蜜芽在线免费观看| 91视频.com| 亚洲在线视频福利| 波多野结衣视频免费观看| 一个色综合网| 一本色道久久综合狠狠躁篇怎么玩| 永久免费黄色片| 免费观看欧美大片| 一区二区三区色| 亚洲欧美一区二区原创| 熟妇人妻av无码一区二区三区| 男女激情视频一区| 91av在线播放| www青青草原| 波多野结衣在线观看一区二区| 精品福利在线导航| 久久久福利影院| 另类一区二区| 色综合久久久久网| 无码 制服 丝袜 国产 另类| 国产精品刘玥久久一区| 国产日韩欧美不卡| 欧美极品色图| 性xxxfllreexxx少妇| 国产99久久久久久免费看农村| 国产精品极品美女在线观看免费| 在线观看中文字幕视频| 狠狠综合久久av一区二区老牛| 久久久91精品国产| 最新日韩免费视频| 成人系列视频| 中文字幕亚洲二区| 女人裸体性做爰全过| 国产麻豆一区二区三区精品视频| 日韩精品免费电影| 艳妇乳肉亭妇荡乳av| 成人h动漫精品一区二区器材| 69精品人人人人| 制服丝袜中文字幕第一页 | 97在线视频人妻无码| 久久久精品午夜少妇| 国产91精品久久久久久| 亚洲久久在线观看| 99xxxx成人网| 韩国一区二区电影| yjizz国产| 久久亚洲精选| 国产精品国模在线| 中国老头性行为xxxx| 奇米精品一区二区三区在线观看| 国产精品91免费在线| 久久久久久亚洲av无码专区| 久久婷婷亚洲| 国产精品日韩专区| 一区二区日韩在线观看| 韩国理伦片一区二区三区在线播放| 国产一区二区视频在线观看| 国产精品区在线观看| 国产精品自在欧美一区| 国产精品v欧美精品v日韩| 国产综合在线播放| 久久久久亚洲蜜桃| 亚洲欧美日韩另类精品一区二区三区 | 日韩一区二区欧美| 老熟妇高潮一区二区三区| 国产一区美女| 热99久久精品| 91尤物国产福利在线观看| 国产精品一区二区在线播放| 国产精品加勒比| 神马亚洲视频| 国产精品看片你懂得| 国产女主播av| 伊人成综合网站| 91精品国产一区二区三区| 丰满人妻一区二区三区免费视频棣| 超碰97久久| 在线观看免费高清视频97| 国产人妻精品一区二区三区不卡| 激情视频一区二区三区| 日韩免费观看视频| 99热这里只有精品99| 91香蕉视频在线| 中文字幕在线亚洲三区| av影视在线| 欧美日韩精品高清| xxxxxx黄色| 午夜免费一区| 欧美有码在线观看视频| 国产精品嫩草影院桃色| 久久午夜羞羞影院免费观看| 波多野结衣三级在线| 小h片在线观看| 91麻豆精品国产无毒不卡在线观看| www.日本高清| 欧美色综合网| 国产九九精品视频| 亚洲av片在线观看| 亚洲精品欧美激情| 熟妇人妻va精品中文字幕| 中文字幕一区二区三区中文字幕| 国产亚洲xxx| 亚州国产精品视频| 国产毛片一区二区| 亚洲日本理论电影| 制服丝袜专区在线| 精品国产三级a在线观看| 成人性生交大片免费看无遮挡aⅴ| 国产真实久久| 成人在线视频福利| 国产在线视频资源| 精品国产91久久久久久| 久久发布国产伦子伦精品| 成人同人动漫免费观看| 欧美主播福利视频| 涩涩视频免费看| 亚洲最新在线观看| 中文字幕资源在线观看| 色88久久久久高潮综合影院| 国产成人精品免高潮费视频| 视频一区二区免费| 一区二区三区四区在线免费观看| 色一情一区二区三区| 不卡中文字幕| 国产精品国产福利国产秒拍 | 免费av中文字幕| 97精品国产露脸对白| 日韩一级片一区二区| 国产精品久久免费视频| 色老头一区二区三区在线观看| 午夜精品一区二| 久久久久久99久久久精品网站| 国产v片免费观看| 加勒比色老久久爱综合网| 久久久久国产视频| 狠狠综合久久av一区二区| 亚洲自拍与偷拍| 国产人妻精品午夜福利免费| 黄色亚洲精品| 国产丝袜不卡| 成人午夜视屏| 国产一区二区三区免费视频| 波多野结衣mp4| 国产精品素人视频| 久久6免费视频| 欧美在线观看天堂一区二区三区| 91青草视频久久| 四虎影院观看视频在线观看| 精品国产一区二区三区久久影院 | 亚洲激情婷婷| 久久国产一区| 日韩毛片在线| 日韩视频免费看| www.五月激情| 精品久久久久久中文字幕一区奶水| av av在线| 国产一区二区三区久久| 日韩精品久久久| 亚洲日本中文| 欧美精品久久久久a| 香港一级纯黄大片| 欧美日韩在线电影| 青青草原免费观看| 91小视频在线| 五月天视频在线观看| 在线精品一区| 色乱码一区二区三在线看| 国产精品一区二区三区av | 永久免费精品视频网站| 亚洲国产aⅴ精品一区二区| 97热在线精品视频在线观看| 岛国视频免费在线观看| 欧美精品一级二级三级| 一级片免费网址| 国产精品三级视频| 性农村xxxxx小树林| 久久蜜桃精品| avove在线观看| 一区二区三区韩国免费中文网站| 91免费在线视频网站| 天堂网在线最新版www中文网| 中文字幕精品一区二区精品| 黄色a在线观看| 欧美日韩一卡二卡三卡| 国产在线成人精品午夜| 国产精品无人区| 欧美xxxxx少妇| 免费高清在线视频一区·| 可以看毛片的网址| 日韩欧美伦理| 久久综合一区| 中文字幕一区二区三区中文字幕| 国产精品久久久久久久久久东京 | 亚洲成人av一区二区三区| 永久免费毛片在线观看| 成人免费高清视频在线观看| 亚洲视频第二页| 美女黄网久久| 日本欧美视频在线观看| 天堂网在线观看国产精品| 欧美精品中文字幕一区二区| 日本精品在线播放| 国产精品成人播放| 激情aⅴ欧美一区二区欲海潮| 欧美理论电影在线观看| 免费av不卡| 中文字幕精品久久| 久久久资源网| 日韩久久精品成人| 精品国产va久久久久久久| 欧美色图在线观看| 精品不卡一区二区| 午夜一区二区三区视频| 欧美精品乱码视频一二专区| 国产精品久久久久久久久图文区 | 日韩国产一区二区| 欧美精品一区二区三区四区五区| youjizz亚洲| 91亚色免费| 日韩精品久久久久久久软件91| 国产免费一区视频观看免费| 欧美日韩五区| 国产成人一区二区三区小说| 原纱央莉成人av片| 欧美在线一级视频| 性欧美xxx69hd高清| 久久久人成影片一区二区三区| av观看在线| 久久久国产精品免费| av中文在线| 在线播放日韩专区| 成a人片在线观看www视频| 亚洲欧美在线看| 久久久pmvav| 亚洲新中文字幕| eeuss影院在线播放| 伊人成人开心激情综合网| 国产精品一二三区视频| 中日韩午夜理伦电影免费 | 欧美人在线观看| 亚洲丝袜一区| 午夜精品久久久久久99热| 超碰资源在线| 91av在线免费观看视频| 成人免费看视频网站| 国产成人一区二区| 欧美亚洲福利| 97视频中文字幕| 欧美黑人巨大videos精品| 免费看成人午夜电影| 欧美一区三区| 9999在线观看| 亚洲电影成人| 37pao成人国产永久免费视频| 日韩电影在线观看网站| 成人av毛片在线观看| 国产传媒一区在线| 日本一级片在线播放| 国产三级三级三级精品8ⅰ区| 免费观看特级毛片| 亚洲精品va在线观看| 五月天综合在线| 91国内精品野花午夜精品| 国产一区二区在线播放视频| 精品不卡在线视频| 国产小视频免费在线网址| 日韩视频在线一区| 成人福利电影| 国产精品狼人色视频一区| 精品国产一区二区三区性色av| 高清国产一区| av一区二区在线播放| 小泽玛利亚av在线| 久久久久免费| 久久黄色一级视频| 久久久久久免费网| 丰满少妇被猛烈进入一区二区| 婷婷夜色潮精品综合在线| 怡春院在线视频| 亚洲成人精品久久| 色哟哟免费在线观看| 亚洲91精品在线| 国产黄色精品| 久久一区二区三区欧美亚洲| 久久久久美女| 成人在线免费播放视频| 成人一区二区三区| 日本精品久久久久中文| 精品久久久久久久久国产字幕| 一区二区不卡视频在线观看| 亚洲精品在线不卡| 高清电影在线观看免费| 国产在线观看一区二区三区| 图片婷婷一区| 激情五月六月婷婷| 久久精品国产第一区二区三区| 色婷婷精品久久二区二区密| 亚洲视频香蕉人妖| 成年人视频免费| 亚洲国产精品热久久| 91最新在线视频| 成人网在线视频| 欧美日韩国产在线观看网站| 性欧美大战久久久久久久| 国产一区二区剧情av在线| 国产精品情侣呻吟对白视频| 欧美日韩激情美女| 亚洲欧美激情国产综合久久久| 日韩在线观看av| 国产电影一区二区三区爱妃记| 久久久99爱| 一本久道久久久| 香蕉视频污视频| 一区二区三区日韩在线观看| 国产乱叫456在线| 日韩亚洲欧美成人| 影视一区二区三区| 欧美日韩在线观看一区二区三区| 亚洲先锋成人| 黄色国产在线视频| 亚洲综合色自拍一区| 国产免费的av| 久久手机免费视频| 91丨精品丨国产| 一区二区三区我不卡| 美女视频网站久久| 国产第一页精品| 欧美久久久久中文字幕| 中文日本在线观看| 成人黄色短视频在线观看| 久久一级电影| 中文字幕 欧美日韩| 亚洲欧美日韩电影| av中文在线观看| 欧美日韩国产成人高清视频| 一区二区三区四区精品视频| 激情成人开心网| 成人h动漫精品一区二区| 国产中文字字幕乱码无限| 亚洲国产91色在线| 欧产日产国产精品视频 | 国内自拍偷拍视频| 亚洲综合成人在线视频| 日本黄色大片视频| 日本电影亚洲天堂| 欧美手机视频| 久久综合桃花网| 亚洲一级二级在线| 亚洲人在线观看视频| 国产97色在线|日韩| 日韩精品二区| 青娱乐精品在线| 精品成人乱色一区二区| 国产一区二区三区不卡在线| 国产区精品视频| 欧美欧美全黄| 亚洲久久久久久久| 欧美日韩黄色一区二区| 97caopron在线视频| 久久综合伊人77777麻豆| 美女视频网站黄色亚洲| 久久国产精品波多野结衣| 日韩精品在线视频美女| 国产精品久久久久久吹潮| 中文字幕色呦呦| 久久一区二区三区四区| 91亚洲国产成人久久精品麻豆| 久久久久久国产精品三级玉女聊斋 | 欧美一级欧美三级在线观看| 黄色漫画在线免费看| 亚洲第一综合| 成人一级视频在线观看| 久久久久亚洲视频| 久99九色视频在线观看| 免费电影一区二区三区| 亚洲天堂伊人网| 欧美日韩视频免费播放| 秋霞影院午夜丰满少妇在线视频| 国产伦视频一区二区三区| 日本在线不卡一区| 久草视频中文在线| 一区二区福利视频| 给我免费播放日韩视频| 992kp快乐看片永久免费网址| 亚洲一区二区在线观看视频| 99se视频在线观看| 久久99精品久久久久久久久久|