精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

91精品动漫在线观看| 国产91在线视频蝌蚪| 亚洲美女色禁图| 亚洲精品自在久久| 亚洲另类第一页| 色呦呦网站在线观看| 成人av网址在线| 国产91精品在线播放| 欧美性x x x| 久久精品福利| 欧美剧在线免费观看网站| 久久国产精品网| 成人影院免费观看| 国产a久久麻豆| 国产精品白丝jk喷水视频一区| 激情高潮到大叫狂喷水| 国产一区二区三区亚洲| 欧美系列亚洲系列| 精品无码国产一区二区三区av| 黄色在线网站| 成人免费毛片a| 国产精品专区第二| 天堂中文在线网| 午夜国产精品视频| 中文字幕日本欧美| 中文在线永久免费观看| 99久久999| 在线观看一区二区视频| 日韩一级片免费视频| 永久免费av在线| 久久久久国产精品人| 成人欧美一区二区三区视频| 国产精品成人久久久| 亚洲啪啪91| 欧美裸体xxxx极品少妇| 美国黄色特级片| 亚洲裸色大胆大尺寸艺术写真| 日韩一区和二区| 亚洲天堂av一区二区| 日本久久免费| 日韩欧美大尺度| 毛片在线播放视频| 久久免费电影| 一区二区在线电影| 中文字幕黄色大片| 在线观看免费高清完整| 国产丝袜美腿一区二区三区| 久久一区二区三区欧美亚洲| 天天色综合久久| 成人毛片视频在线观看| 成人欧美一区二区三区在线观看| 99热这里只有精品3| 精品在线免费视频| 国产自产女人91一区在线观看| 成人黄色激情视频| 免费在线视频一区| 国产精品视频免费在线| 在线视频精品免费| 日本不卡高清视频| 国产欧美亚洲精品| 国产精品免费无遮挡| 久久成人免费日本黄色| 成人午夜黄色影院| 国产高中女学生第一次| 丁香激情综合国产| 国产精品一区二区a| 人妻丰满熟妇av无码区hd| 国产91精品免费| 精品视频高清无人区区二区三区| 天堂中文在线看| 26uuu国产电影一区二区| 免费日韩电影在线观看| 超碰在线国产| 亚洲三级在线看| 国产成人在线小视频| av剧情在线观看| 色网站国产精品| 亚洲老女人av| 国产精品毛片无码| 欧美精品一区二区精品网| 亚洲精品乱码久久久久久蜜桃图片| 精品国产午夜肉伦伦影院| 精品亚洲一区二区三区在线播放| 国产中年熟女高潮大集合| 成人羞羞网站| 色综合久久久888| 自拍偷拍欧美亚洲| 天堂精品中文字幕在线| 91精品免费看| 人妻视频一区二区三区| 久久久国产精品麻豆| 一区二区三区四区五区精品| 亚洲wwwww| 欧美性黄网官网| 在线观看日本www| 欧美成人专区| 中文字幕亚洲无线码a| 2018天天弄| 久久精品三级| 亚洲a在线观看| 欧洲天堂在线观看| 亚洲激情综合网| 亚洲乱码国产一区三区| 久久在线观看| 国产一区二区久久精品| 劲爆欧美第一页| 久久久噜噜噜| 国产高清在线一区二区| 搞黄视频免费在线观看| 一卡二卡三卡日韩欧美| 成人在线观看a| japanese色系久久精品| 一个人看的www久久| 免费又黄又爽又色的视频| 日韩av成人高清| 国产伦理一区二区三区| 午夜免费福利在线观看| 精品国产91乱高清在线观看| 91蝌蚪视频在线| 精品视频国产| 欧美亚洲成人网| av av片在线看| 国产精品欧美综合在线| 蜜臀av午夜一区二区三区| 无码国模国产在线观看| 色视频www在线播放国产成人| 国产成人精品片| 国产成人精品1024| 中文字幕人成一区| 素人一区二区三区| 亚洲品质视频自拍网| 日韩 欧美 亚洲| 国产成人免费在线观看| 在线国产99| 992tv国产精品成人影院| 日韩国产精品一区| 久久不卡免费视频| 大美女一区二区三区| 日本丰满大乳奶| 亚洲图片小说区| 日韩最新av在线| 在线免费观看日韩视频| 亚洲国产精品99久久久久久久久 | 亚洲高清一区二区三区| 亚洲第一成肉网| 久久久久久久久国产一区| 国产精品丝袜一区二区三区| 成人77777| 日本韩国欧美一区| 国产人妻大战黑人20p| 久久九九国产| 日韩国产美国| 99久久婷婷国产综合精品首页| 国产亚洲a∨片在线观看| 波多野结衣理论片| 日本一区二区三级电影在线观看 | 日韩女优av电影| 日本aⅴ在线观看| 国产福利精品一区二区| 亚洲精品国产suv一区88| 欧美精品影院| 国模精品视频一区二区| 婷婷综合激情网| 日韩欧美亚洲范冰冰与中字| 久久久久亚洲av成人无码电影| 三级在线观看一区二区| 日韩三级电影| 91成人短视频在线观看| 欧美精品中文字幕一区| 亚洲精品国产片| 黄色一区二区在线| 波多野结衣a v在线| 日韩高清国产一区在线| 中文字幕一区二区三区四区五区| 日韩成人在线看| 亚洲91精品在线观看| 国产最新视频在线| 制服.丝袜.亚洲.另类.中文| 久久久久久福利| 99国产一区二区三精品乱码| 性生交免费视频| 中文字幕午夜精品一区二区三区| 国产在线一区二区三区欧美| 大胆人体一区| 北条麻妃久久精品| 成人午夜视频一区二区播放| 精品日韩中文字幕| 美女网站视频色| 岛国一区二区在线观看| 日韩av一二三四| 亚洲一区色图| 精品在线视频一区二区| 深夜日韩欧美| 91国内产香蕉| 成人在线观看亚洲| 韩国成人一区| 国产黄大片在线观看| 伊人一区二区三区久久精品| 国产精品欧美久久久久天天影视| 亚洲国产sm捆绑调教视频| 亚洲av综合一区二区| 久久精品av麻豆的观看方式| 久久人人爽人人爽人人av| 不卡日本视频| 国产精品欧美久久| 欧美伊人亚洲伊人色综合动图| 97精品免费视频| wwwww在线观看免费视频| 日韩精品一区二区三区视频播放| 国产免费av一区| 一区二区三区.www| 亚洲图片第一页| 99久久婷婷国产综合精品| 91福利免费观看| 日韩黄色免费电影| 免费无码毛片一区二三区| 久久综合成人| 品久久久久久久久久96高清| 中文字幕一区图| 成人激情电影一区二区| 老司机成人影院| 久久免费少妇高潮久久精品99| 精品欧美色视频网站在线观看| 亚洲欧美变态国产另类| 亚洲国产成人精品一区二区三区| 精品1区2区3区| 成人免费毛片男人用品| 午夜久久久久久久久久一区二区| 亚洲 欧美 变态 另类 综合| 国产午夜亚洲精品午夜鲁丝片 | 成人性生交大合| 三日本三级少妇三级99| 日韩av成人高清| 日韩毛片在线免费看| 亚洲激情国产| 国产又粗又猛又爽又黄的网站| 五月婷婷六月综合| 亚洲一区二区三区加勒比| 国产麻豆一区二区三区精品视频| 久久久久一区二区三区| 久久婷婷国产| 国产精品嫩草在线观看| 成人h动漫精品一区二区器材| 92看片淫黄大片看国产片| 日韩毛片免费看| 国产在线日韩在线| 视频欧美精品| 91沈先生作品| 亚洲国产aⅴ精品一区二区| 91热福利电影| 韩国三级成人在线| 99视频国产精品免费观看| 欧美影院视频| a级国产乱理论片在线观看99| 亚州欧美在线| 97人人干人人| 成人福利一区| 久久成人资源| 国产欧美久久一区二区三区| 日韩在线导航| 999成人网| 日韩不卡视频一区二区| 欧美精品aa| 青青草精品视频在线| 午夜在线一区| av五月天在线| 激情文学综合插| 91人妻一区二区| av不卡在线播放| 成年人免费观看视频网站| 国产肉丝袜一区二区| 激情五月深爱五月| 亚洲色图19p| 日本一区二区三区四区五区| 欧美午夜视频一区二区| 毛片在线免费播放| 日韩一区二区在线看片| 天堂网在线中文| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 日韩国产在线看| 91社区在线高清| 欧美裸体男粗大视频在线观看| 黄毛片在线观看| 国产精品主播视频| 国产波霸爆乳一区二区| 欧美日韩视频一区二区三区| 日韩黄色片在线| 男女精品网站| 九九热99视频| 成人性色生活片免费看爆迷你毛片| 毛片网站免费观看| 亚洲欧洲日产国码二区| 国产精选第一页| 在线亚洲精品福利网址导航| 粗暴91大变态调教| 中文精品久久| 波多野结衣家庭教师在线| 91精品一区国产高清在线gif| 欧美黑人在线观看| 久久久www| 全球最大av网站久久| 国产在线久久久| 精品一区二区男人吃奶| 亚洲春色综合另类校园电影| 午夜亚洲福利| 超碰在线97免费| av资源站一区| 九九热视频在线免费观看| 亚洲成a人片在线不卡一二三区| 无码一区二区三区| 欧美1区视频| 超碰成人免费在线| 蜜臀av一级做a爰片久久| 中文字幕一区二区三区乱码不卡| 中文字幕精品综合| 中文字幕激情小说| 日韩视频在线永久播放| 国内精品在线视频| 韩国精品久久久999| 95精品视频| 日韩高清国产精品| 中文国产一区| 一级黄色大片免费看| 国产精品区一区二区三| 六月丁香婷婷综合| 亚洲精品一区二区三区蜜桃下载| 瑟瑟视频在线| 国产精品久久久久久av福利软件 | 国产在线观看网站| 国产69精品久久久久99| 日韩在线网址| 黄色a级在线观看| 免费不卡在线视频| 国产中年熟女高潮大集合| 亚洲福利一区二区三区| 国产chinasex对白videos麻豆| 中文字幕亚洲第一| 大胆人体一区二区| 蜜桃传媒一区二区| 99热在线精品观看| 免费看毛片的网站| 亚洲国产日韩a在线播放性色| 99久久免费国产精精品| 免费精品视频| 黄色录像a级片| 五月天一区二区| 欧美一级特黄aaaaaa| 久久久人成影片一区二区三区| 2020国产精品极品色在线观看| 水蜜桃在线免费观看| 国产呦萝稀缺另类资源| 国产天堂av在线| 日韩亚洲国产中文字幕欧美| 91一区二区三区在线| 92看片淫黄大片看国产片| 欧美一区二区| youjizz.com日本| 亚洲1区2区3区视频| 污视频网站在线播放| 欧洲中文字幕国产精品| gogogo高清在线观看一区二区| 国产真人无码作爱视频免费| 日本一区二区三区在线不卡 | 午夜dj在线观看高清视频完整版| 1卡2卡3卡精品视频| 亚洲小说区图片区| 西西大胆午夜视频| 欧洲日韩一区二区三区| 97在线观看免费观看高清| 成人国产精品一区二区| 狠狠88综合久久久久综合网| 91av在线免费| 欧洲激情一区二区| www在线免费观看视频| 国产精品久久久久免费| 亚洲欧美久久| 国产精品免费在线视频| 日韩欧美美女一区二区三区| 97蜜桃久久| 欧美精品七区| 九九九久久久精品| 久久精品视频9| 亚洲香蕉成视频在线观看| 亚洲伊人精品酒店| 99热亚洲精品| 国产女主播视频一区二区| 国产v在线观看| 91产国在线观看动作片喷水| 欧美日韩水蜜桃| 少妇愉情理伦片bd| 欧美日韩综合视频| 国产精品实拍| 欧美人xxxxx| 国产一区二区三区高清播放| 在线观看免费av片| 欧美成aaa人片免费看| 杨幂一区二区三区免费看视频| 亚洲三级在线视频| 色婷婷综合久久| 免费电影网站在线视频观看福利|