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

深入剖析HashiCorp Vault中的身份驗證漏洞(上篇)

安全 漏洞
在這篇文章中,我們將為讀者深入講解HashiCorp Vault中的兩個身份驗證漏洞。

[[346414]]

簡介

在這篇文章中,我們將為讀者深入講解HashiCorp Vault中的兩個身份驗證漏洞。實際上,我們不僅會介紹這兩個漏洞的利用方法,同時,還會演示如何在“云原生”軟件中找到這種類型的安全漏洞。這兩個漏洞(CVE-2020-16250/16251)均已得到了HashiCorp公司的妥善處理,并在8月份發布的1.2.5,1.3.8,1.4.4和1.5.1版本Vault中進行了修復。

Vault是一種廣泛使用的工具,用于安全地存儲、生成和訪問API密鑰、密碼或證書等機密信息。盡管它也能夠用作人類用戶的共享密碼管理器,但是它的功能卻主要是針對基于API的訪問進行優化的。Vault的應用場景包括為某些服務(Web服務器、數據庫或第三方資源(如AWS S3 bucket)等)提供臨時的登錄憑據。

使用像Vault這樣的中心化機密信息存儲設施能夠帶來許多安全優勢,例如集中審計,強制憑證輪換或加密數據存儲。然而,對于攻擊者來說,中心化的機密信息存儲也是一個非常值得關注的攻擊目標——一旦得手,攻擊者就能訪問各種重要的機密信息,從而可以訪問大部分的目標基礎設施。

在深入研究這些漏洞的技術細節之前,下一節將概述Vault的身份驗證架構及其與云提供商集成的方式。熟悉Vault的讀者可以跳過本節。

基于Vault的身份驗證架構

與Vault進行交互時,首先需要進行身份驗證;Vault支持基于角色的訪問控制,以管理對存儲的機密信息的訪問權限。在身份驗證方面,它支持可插拔的auth方法,范圍從靜態憑證、LDAP或Radius到完全集成到第三方OpenID Connect (OIDC)提供商或云身份訪問管理(IAM)平臺。對于在支持的云提供商上運行的基礎設施來說,使用云提供商的IAM平臺進行身份驗證是一個非常合乎邏輯的選擇。

下面,我們將以AWS為例進行介紹。我們知道,幾乎每一個在AWS中運行的工作負載都是以特定的AWS IAM用戶的身份來執行的。通過啟用和配置aws auth方法,您可以在某些IAM用戶或角色與Vault角色之間創建相應的映射。

想象一下,如果您有一個AWS Lambda函數,并希望讓它訪問存儲在Vault中的數據庫密碼。Vault管理員可以使用vault CLI為Lambda函數的執行角色分配一個vault角色,而不是在函數代碼中存儲硬編碼的憑證。

  1. vault write auth/aws/role/dbclient auth_type=iam \ 
  2.   
  3. bound_iam_principal_arn=arn:aws:iam::123456789012:role/lambda-role policies=prod,dev max_ttl=10m 

這將在名為dbclient的vault角色和AWS IAM角色lambda-role之間創建一個映射。這樣,就可以通過vault策略來授予dbclient角色對數據庫秘密的訪問權了。

當lambda函數執行時,它通過向/v1/auth/aws/login API端點發送請求,以通過Vault進行身份驗證。我將在后面介紹這個請求的具體結構,但現在只是假設該請求允許Vault驗證調用者的AWS IAM角色。如果驗證成功,Vault會將dbclient角色的臨時API令牌返回給lambda函數。現在,就可以使用該令牌從Vault獲取數據庫密碼了。根據數據庫后端的不同,這個密碼可以是一個靜態的用戶密碼組合,一個臨時的客戶端證書,甚至是一個動態創建的證書對

以這種方式使用Vault有一些不錯的安全優勢:lambda函數本身不需要包含引導憑證,而且每次訪問數據庫的憑證都是可以審計的。輪換舊的或被破壞的數據庫憑證非常簡單,并且可以集中執行。

然而,這種操作上的簡單性,完全是將復雜性隱藏在AWS iam auth方法中結果。那么,/v1/auth/aws/login API端點究竟是如何工作的,未經認證的攻擊者是否有辦法冒充隨機的AWS IAM角色呢?

sts:GetCallerIdentity

在其內部,Vault的aws auth方法支持兩種不同的認證機制:iam和ec2。在這里,我們感興趣的是iam,我們之前的Lambda示例中曾用過該機制。Iam認證機制是建立在名為GetCallerIdentity的AWS API方法之上的,它是AWS安全令牌服務(STS)的一部分。

顧名思義,GetCallerIdentity將返回IAM角色或用戶的詳細信息,其憑證被用于調用API。要了解Vault如何使用該方法對客戶進行身份驗證,我們需要了解AWS API如何進行身份驗證的。

AWS不是將某種形式的身份驗證令牌或憑據附加到API請求中,而是要求客戶端使用調用者的秘密訪問密鑰為(規范化的)請求計算HMAC簽名,并將此簽名附加到請求中。這種機制使得預先對請求進行簽名并將其轉發給另一方,從而實現一定程度的身份冒充成為可能。一個流行的用例是,賦予客戶端S3的文件上傳權限,而無需授予他們訪問具有寫權限的憑據的權限。

實際上,Vault aws認證機制就是這種技術的一個簡單變體。 

客戶端向STS GetCallerIdentity方法預先對一個HTTP請求進行簽名,并將其序列化版本發送給Vault服務器。Vault服務器將預簽名的請求發送到STS主機,并從結果中提取AWS IAM信息。這個流程的服務器端部分是由builtin/credential/aws/path_login.go文件的pathLoginUpdate函數實現的。

  1. func (b *backend) pathLoginUpdateIam(ctx context.Context, req *logical.Request, data *framework.FieldData) (*logical.Response, error) { 
  2.   
  3.     method := data.Get("iam_http_request_method").(string) 
  4.   
  5.     ... 
  6.   
  7.     // In the future, might consider supporting GET 
  8.   
  9.     if method != "POST" { 
  10.   
  11.             return logical.ErrorResponse(...), nil 
  12.   
  13.     } 
  14.   
  15.     rawUrlB64 := data.Get("iam_request_url").(string) 
  16.   
  17.     ... 
  18.   
  19.     rawUrl, err := base64.StdEncoding.DecodeString(rawUrlB64) 
  20.   
  21.     ... 
  22.   
  23.     parsedUrl, err := url.Parse(string(rawUrl)) 
  24.   
  25.     if err != nil { 
  26.   
  27.             return logical.ErrorResponse(...), nil 
  28.   
  29.     } 
  30.   
  31.     bodyB64 := data.Get("iam_request_body").(string) 
  32.   
  33.     ... 
  34.   
  35.     bodyRaw, err := base64.StdEncoding.DecodeString(bodyB64) 
  36.   
  37.     ...        
  38.   
  39.     body := string(bodyRaw) 
  40.   
  41.     headers := data.Get("iam_request_headers").(http.Header) 
  42.   
  43.     
  44.   
  45.     endpoint := "https://sts.amazonaws.com" 
  46.   
  47.     ... 
  48.   
  49.     callerID, err := submitCallerIdentityRequest(ctx, maxRetries, method, endpoint, parsedUrl, body, headers) 

該函數從存儲在數據中的請求正文中提取HTTP方法、URL、正文和標頭。然后調用submitCallerIdentity將請求轉發到STS服務器,并利用ParseGetCallerIdentityResponse來獲取和解析結果:

  1. func submitCallerIdentityRequest(ctx context.Context, maxRetries int, method, endpoint string, parsedUrl *url.URL, body string, headers http.Header) (*GetCallerIdentityResult, error) { 
  2.   
  3.     ... 
  4.   
  5.     request := buildHttpRequest(method, endpoint, parsedUrl, body, headers) 
  6.   
  7.     retryableReq, err := retryablehttp.FromRequest(request) 
  8.   
  9.     ... 
  10.   
  11.     response, err := retryingClient.Do(retryableReq) 
  12.   
  13.     responseBody, err := ioutil.ReadAll(response.Body) 
  14.   
  15.     ... 
  16.   
  17.     if response.StatusCode != 200 { 
  18.   
  19.             return nil, fmt.Errorf(..) 
  20.   
  21.     } 
  22.   
  23.     callerIdentityResponse, err := parseGetCallerIdentityResponse(string(responseBody)) 
  24.   
  25.     if err != nil { 
  26.   
  27.             return nil, fmt.Errorf("error parsing STS response"
  28.   
  29.     } 
  30.   
  31.     return &callerIdentityResponse.GetCallerIdentityResult[0], nil 
  32.   
  33.   
  34.   
  35.   
  36. func buildHttpRequest(method, endpoint string, parsedUrl *url.URL, body string, headers http.Header) *http.Request { 
  37.   
  38.     ... 
  39.   
  40.     targetUrl := fmt.Sprintf("%s/%s", endpoint, parsedUrl.RequestURI()) 
  41.   
  42.     request, err := http.NewRequest(method, targetUrl, strings.NewReader(body)) 
  43.   
  44.     ... 
  45.   
  46.     request.Host = parsedUrl.Host 
  47.   
  48.     for k, vals := range headers { 
  49.   
  50.             for _, val := range vals { 
  51.   
  52.                     request.Header.Add(k, val) 
  53.   
  54.             } 
  55.   
  56.     } 
  57.   
  58.     return request 
  59.   

buildHttpRequest函數會根據用戶提供的參數創建一個http.Request對象,并使用硬編碼常量https://sts.amazonaws.com來構建目標URL。

如果沒有這個限制,我們可以簡單地觸發對我們控制的服務器的請求,并返回調用者身份。

然而,由于完全缺乏對URL路徑、查詢、POST正文和HTTP標頭的驗證,所以這看起來仍然是一個非常有希望的攻擊面。下一節將介紹如何將這個安全缺陷變成一個認證繞過漏洞。

STS(調用方)身份盜用

我們的目標是欺騙Vault的submitCallerIdentityRequest函數,使其返回一個攻擊者控制的調用方身份。實現這個目標的方法之一是操縱Vault服務器,使其向我們控制的主機發送請求,從而繞過硬編碼的端點主機。通過查看buildHttpRequest方法的源代碼,我想到了兩種方法:

· 用于計算targetUrl的代碼,即targetUrl := fmt.Sprintf("%s/%s", endpoint, parsedUrl.RequestURI()) ,看起來在URL解析問題方面并不是很健壯。但是,嵌入偽造的用戶信息(https://sts.amazonaws.com/:foo@example.com/test)之類的技巧和類似的想法對健壯的Go URL解析器是行不通的。

· 即使Vault將始終創建一個指向硬編碼端點的HTTPS請求,攻擊者也可以完全控制Host http標頭(request.Host = parsedUrl.Host)。如果STS API前面的負載平衡器根據Host標頭做出路由決策的話,這可能就是一個問題,但針對STS主機的盲測并沒有取得成功。

在排除了簡單的方法后,我們還有另一種方法可以使用。Vault并沒有限制URL查詢參數。這意味著,我們不僅可以創建GetCallerIdentity的預簽名請求,還可以對STS API的任何操作創建請求。STS支持8個不同的操作,但沒有一個操作能讓我們完全控制響應。這時,我開始感到沮喪,于是決定看看Vault的響應解析代碼。

  1. func parseGetCallerIdentityResponse(response string) (GetCallerIdentityResponse, error) { 
  2.   
  3.         decoder := xml.NewDecoder(strings.NewReader(response)) 
  4.   
  5.         result := GetCallerIdentityResponse{} 
  6.   
  7.         err := decoder.Decode(&result) 
  8.   
  9.         return result, err 
  10.   
  11.   
  12. type GetCallerIdentityResponse struct { 
  13.   
  14.  XMLName                 xml.Name                 `xml:"GetCallerIdentityResponse"
  15.   
  16.  GetCallerIdentityResult []GetCallerIdentityResult `xml:"GetCallerIdentityResult"
  17.   
  18.  ResponseMetadata        []ResponseMetadata        `xml:"ResponseMetadata"
  19.   

我們可以看到,只要狀態代碼為200,就會對從STS接收到的每個響應調用parseGetCeller IdentityResponse。該函數將使用Golang標準XML庫將XML響應解碼成GetCallerIdentityResponse結構,如果解碼失敗則返回錯誤。

這個代碼有一個容易被忽略的問題:Vault從未強制驗證STS響應是否為XML編碼。雖然STS響應在默認情況下是XML編碼的,但是對于發送Accept:Application/json HTTP標頭的客戶端來說,它也能夠支持JSON編碼。

但是對于Vault來說,這就變成了一個安全問題,因為go XML解碼器有一個驚人的特性:解碼器會悄悄地忽略預期的XML根之前和之后的非XML內容。這意味著使用(JSON編碼的)服務器響應(如‘{“abc” : “xzy}’)調用parseGetCallIdentityResponse函數將會成功,并返回一個(空的)CallIdentityResponse結構。

小結

在本文中,我們為讀者介紹了Vault的身份驗證架構,以及冒用調用方身份的方法,在下一篇文章中,我們將繼續為讀者介紹利用Vault-on-GCP的漏洞的過程。

本文翻譯自:https://googleprojectzero.blogspot.com/2020/10/enter-the-vault-auth-issues-hashicorp-vault.html如若轉載,請注明原文地址。

 

責任編輯:姜華 來源: 嘶吼網
相關推薦

2020-10-17 10:44:24

漏洞

2021-07-19 10:10:15

身份驗證漏洞Windows Hel

2022-05-19 14:39:41

VMware漏洞惡意攻擊

2014-09-12 09:58:45

2012-02-20 09:55:41

ibmdw

2023-11-30 13:13:14

2010-09-06 11:24:47

CHAP驗證PPP身份驗證

2010-01-07 17:41:19

VB.NET驗證LDA

2025-04-25 07:00:00

身份驗證CISO無密碼

2010-07-17 00:57:52

Telnet身份驗證

2012-04-10 09:36:58

2022-11-14 08:17:56

2014-10-30 09:14:28

2011-02-21 10:54:45

2013-07-21 18:32:13

iOS開發ASIHTTPRequ

2021-10-06 14:36:36

身份驗證漏洞黑客

2024-08-06 16:00:06

2012-10-23 16:12:35

2022-10-31 10:00:00

2009-04-09 23:44:08

軟件身份驗證用戶
點贊
收藏

51CTO技術棧公眾號

亚洲综合一区二区| 国产一区二区三区四区五区美女 | 国模无码一区二区三区| 影音先锋亚洲电影| 国产亚洲xxx| 色姑娘综合天天| 小视频免费在线观看| 国产精品女同互慰在线看| 国产精品一区二区三区精品| 亚洲图片欧美日韩| 欧美日本在线| 亚洲三级黄色在线观看| 日本黄色www| 午夜欧美巨大性欧美巨大| 亚洲欧美另类小说| 欧美成人综合一区| 亚洲国产999| 久久国产精品99久久人人澡| 欧美一级高清免费播放| 免费国产羞羞网站美图| 欧美精美视频| 亚洲精品aⅴ中文字幕乱码| 国产日韩欧美久久| 国模套图日韩精品一区二区| 亚洲一区二区三区爽爽爽爽爽| 天堂√在线观看一区二区| 天天操天天干天天爽| 国产精品自拍在线| 成人久久久久爱| 久久久久久无码精品大片| 在线 亚洲欧美在线综合一区| www.国产一区| youjizz亚洲女人| 亚洲黄页网站| 亚洲电影免费观看高清| 无套内谢丰满少妇中文字幕| 国产亚洲欧美日韩精品一区二区三区| 精品成人国产在线观看男人呻吟| 国产在线视频综合| www.久久久久.com| 亚洲人成网站精品片在线观看| 午夜精品一区二区在线观看| 九色视频在线观看免费播放| 91麻豆精品一区二区三区| 国产伦精品一区二区三毛| a毛片在线免费观看| 激情综合色播激情啊| 国产精品高潮呻吟久久av无限| 色屁屁影院www国产高清麻豆| 最新亚洲一区| 午夜精品一区二区三区在线视频| 妺妺窝人体色www聚色窝仙踪| 欧美1区2区3区| 欧美超级乱淫片喷水| 性生交大片免费全黄| 奇米影视亚洲| 色999日韩欧美国产| 国产极品视频在线观看| 成人免费a**址| 中文字幕日韩综合av| 香蕉久久久久久久| 婷婷亚洲五月| 欧美成人精品在线| 精品在线免费观看视频| 一区在线播放| 欧美在线精品免播放器视频| 在线观看 亚洲| 日韩二区三区四区| 国产日韩av在线| 99热这里只有精| 菠萝蜜视频在线观看一区| 久久久99爱| 东凛在线观看| 亚洲欧美另类小说视频| 欧美视频在线观看视频| 精品国产第一福利网站| 欧美日韩综合色| 亚洲精品中文字幕乱码无线| 一区二区三区欧洲区| 亚洲爱爱爱爱爱| www.色天使| 日本午夜一区| 欧美国产日本在线| 少妇高潮av久久久久久| 久久狠狠亚洲综合| 国产精品日韩高清| 岛国视频免费在线观看| 亚洲人成精品久久久久| 女人喷潮完整视频| 久久精品97| 精品国产3级a| 天天操天天干天天操天天干| 亚洲在线久久| 欧美一级电影在线| 国产三级伦理片| 久久久影院官网| www亚洲国产| 欧美裸体视频| 91精品综合久久久久久| 特大黑人巨人吊xxxx| 91精品亚洲| 日本不卡视频在线播放| 国产视频一区二区三区四区五区| 26uuu色噜噜精品一区二区| 一本色道久久综合亚洲精品婷婷 | 亚洲国产精品久久艾草纯爱| 日韩欧美黄色大片| 97超碰成人| 最近2019年日本中文免费字幕| 久久精品美女视频| 精品一区二区在线观看| 欧美日韩精品久久| 青青草原av在线| 欧美精品xxxxbbbb| 免费毛片视频网站| 1024日韩| 亚洲精品日韩av| 亚洲xxxxxx| 色综合久久88色综合天天免费| 欧美人与性动交α欧美精品 | 神马午夜伦理影院| 欧美xoxoxo| 亚洲国产成人久久综合| 亚洲最大的黄色网址| 日本aⅴ精品一区二区三区| 精品伦精品一区二区三区视频| 日本三级在线视频| 精品1区2区3区| 国产高潮呻吟久久| 美女国产精品| 欧美日韩在线观看一区二区三区| 91av久久| 亚洲国产成人精品电影| 久久精品国产亚洲AV无码男同| 国产一区二三区| 欧美日韩视频免费在线观看| 国语自产精品视频在线看抢先版结局| 亚洲欧美福利视频| 亚洲欧美精品一区二区三区| 99视频在线精品| 青青草视频在线免费播放| 午夜日韩影院| 欧美激情视频一区二区三区不卡| 国产免费黄色录像| 亚洲乱码国产乱码精品精的特点| 天天久久综合网| 中文字幕一区二区三三 | 国产乱色精品成人免费视频 | 国产女人18毛片| 日韩区欧美区| 欧美精品999| 婷婷丁香一区二区三区| 五月激情六月综合| 久久久久久久久免费看无码| 可以免费看不卡的av网站| 欧美日韩亚洲免费| 中文字幕系列一区| 久久精品在线视频| 亚洲国产精品二区| 婷婷久久综合九色综合绿巨人 | 91精品久久久久久久久久不卡| 亚洲一区二区久久久久久| av在线免费播放| 精品成人佐山爱一区二区| 国产91av视频| 久久久美女毛片| 亚洲欧美国产中文| 欧美久久视频| 久久天天狠狠| a∨色狠狠一区二区三区| 日韩一区二区三区国产| 性网爆门事件集合av| 亚洲午夜成aⅴ人片| 男生草女生视频| 久久电影国产免费久久电影 | 久久精品色妇熟妇丰满人妻| 国产真实乱偷精品视频免| 国产一线二线三线女| 亚洲福利天堂| 91在线观看免费高清完整版在线观看| 激情图片在线观看高清国产| 亚洲免费伊人电影在线观看av| 中文字幕+乱码+中文| 一区二区三区四区蜜桃| 草草影院第一页| 国产一区二区三区在线观看精品 | 99久久伊人精品| 国产日韩欧美久久| 国产精品亚洲产品| 二级片在线观看| 亚洲色图美女| 999国产在线| 欧美与亚洲与日本直播| 久久99亚洲精品| 国产粉嫩一区二区三区在线观看| 日韩视频在线观看一区二区| 亚洲国产av一区二区三区| 亚洲欧美国产77777| 成年人免费观看视频网站 | 欧美二区在线观看| 五月婷婷亚洲综合| 一区二区三区在线影院| 日本人亚洲人jjzzjjz| 成人网在线免费视频| 一女二男3p波多野结衣| 先锋亚洲精品| 欧美黄网在线观看| 日韩欧美二区| 欧美乱偷一区二区三区在线| 91欧美极品| 91精品视频网站| 日韩欧美少妇| 欧美专区中文字幕| heyzo高清中文字幕在线| 久久精品99无色码中文字幕| 久久国产精品高清一区二区三区| 亚洲成人激情视频| 99在线观看免费| 欧美日韩高清在线| 中文字幕永久在线| 欧美日韩国产影院| 亚洲国产精一区二区三区性色| 亚洲日本在线天堂| 免费成人深夜夜行网站| 国产精品久久一级| 91视频免费在观看| 国产喷白浆一区二区三区| 久久人人爽人人爽人人片 | 日韩欧美中文字幕精品| 一级全黄裸体免费视频| 精品视频999| 中文字幕乱码人妻无码久久| 日韩欧美精品网站| 日韩精品在线观看免费| 午夜精品国产更新| 精品视频久久久久| 亚洲自拍偷拍麻豆| 九九热精彩视频| 亚洲综合图片区| 久久99久久久| 亚洲愉拍自拍另类高清精品| 久久精品一区二区三| 一区二区三区精品视频| 欧美日韩国产精品综合 | 中文区中文字幕免费看| 在线视频国内自拍亚洲视频| 久久精品偷拍视频| 欧洲中文字幕精品| 在线观看免费黄色小视频| 欧美午夜精品一区二区蜜桃| 制服丝袜在线一区| 欧美一区二区私人影院日本| 99热精品在线播放| 精品国内二区三区| 亚洲 欧美 自拍偷拍| 亚洲男人天堂手机在线| 国产色a在线| 日韩亚洲精品视频| 免费在线播放电影| 91精品国产高清自在线| 成人性生交大片免费网站 | 黄色国产精品视频| 日本中文在线一区| 看看黄色一级片| 国产91在线观看丝袜| 国产ts丝袜人妖系列视频| 国产拍欧美日韩视频二区| 疯狂撞击丝袜人妻| 亚洲成人免费在线观看| 中文字幕在线欧美| 911国产精品| 国产麻豆91视频| 亚洲护士老师的毛茸茸最新章节| 国产视频二区在线观看| 另类少妇人与禽zozz0性伦| av电影免费在线看| 国产精品一区二区三区成人| 99精品在免费线中文字幕网站一区 | 亚洲精选在线视频| 综合激情网五月| 欧美精选午夜久久久乱码6080| 成人免费视频国产| 亚洲性69xxxbbb| 羞羞电影在线观看www| 欧美专区在线视频| 日韩中文字幕视频网| 欧美13一14另类| 亚洲精品va| 欧美黄色免费影院| 国产精品亚洲视频| www亚洲色图| 亚洲国产精品久久不卡毛片| 又骚又黄的视频| 日韩av在线不卡| 国产一区久久精品| 日本道色综合久久影院| 亚洲精品18| 亚洲国产日韩欧美| 亚洲日本视频| 一起草最新网址| 国产日韩欧美综合一区| 日操夜操天天操| 欧美一区二区视频免费观看| 国产专区在线播放| 97欧美精品一区二区三区| 9999精品免费视频| 人禽交欧美网站免费| 在线成人h网| 又色又爽又黄视频| 国产欧美日产一区| 亚洲午夜18毛片在线看| 精品福利一区二区三区 | 91免费精品| 国产精品免费成人| 白白色亚洲国产精品| 欧美黑吊大战白妞| 欧美日本乱大交xxxxx| 国产小视频在线播放| 韩剧1988在线观看免费完整版| 电影中文字幕一区二区| 亚洲国产一区二区在线 | 无码国产精品一区二区高潮| 欧美激情在线一区二区| 91video| 日韩不卡在线观看| 国产经典三级在线| 超碰97在线播放| 午夜国产精品视频| 原创真实夫妻啪啪av| 亚洲乱码国产乱码精品精可以看| 国产在成人精品线拍偷自揄拍| 永久免费毛片在线播放不卡| 午夜精品久久久久久久久久蜜桃| 欧美精品一区二区视频| 国产亚洲在线观看| 精品人妻一区二区三区日产乱码卜| 午夜伦理一区二区| 无码国产精品一区二区色情男同 | 99精品一区二区三区| 精品少妇theporn| 亚洲福利在线视频| 麻豆免费版在线观看| 鲁鲁狠狠狠7777一区二区| 国产精品久久久久9999高清| 性欧美成人播放77777| 狠狠操狠狠色综合网| 青青青手机在线视频观看| 日本国产高清不卡| 精品久久久中文字幕| 看欧美ab黄色大片视频免费 | 成人亚洲一区二区一| 国产精品999久久久| 日韩精品视频三区| 四虎4545www精品视频| 亚洲午夜精品国产| 国产一区二区视频在线| 国产精品suv一区二区69| 日韩精品中文在线观看| 日本精品网站| 一级黄色免费在线观看| 成人免费观看视频| 中文字幕激情小说| 中文字幕国内精品| 高清在线一区二区| 久久成人福利视频| 久久精品一级爱片| 国产精品熟女久久久久久| 欧美人交a欧美精品| 亚洲另类av| 中文字幕一区二区三区四| 亚洲一区二区不卡免费| 青青草观看免费视频在线| 国产精品久久久久久影视| 欧美 日韩 国产一区二区在线视频| 一级欧美一级日韩片| 色偷偷一区二区三区| a篇片在线观看网站| 国产一区二区免费电影| 日韩专区欧美专区| 久久久99精品| 一本久久综合亚洲鲁鲁| 日韩在线亚洲| 日本a√在线观看| 亚洲一二三四久久| porn亚洲| 国产一区自拍视频| 久国产精品韩国三级视频| 日韩成人在线免费视频| 中文字幕日韩高清| 久久悠悠精品综合网| 黄色一级片免费的| 欧美日韩午夜剧场| 超碰在线网址| 日韩精品一区二区三区色偷偷 | 成人国产精品久久久网站| 欧美一级在线视频| 91精品国产66| 欧美亚洲精品一区二区| 亚洲欧洲成人av每日更新| 欧美精品少妇|