整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          CSRF攻擊與防御

          CSRF攻擊與防御

          自網(wǎng)絡(luò)

          CSRF是什么?

          (Cross Site Request Forgery, 跨站域請求偽造)是一種網(wǎng)絡(luò)的攻擊方式,它在 2007 年曾被列為互聯(lián)網(wǎng) 20 大安全隱患之一,也被稱為“One Click Attack”或者Session Riding,通常縮寫為CSRF或者XSRF,是一種對網(wǎng)站的惡意利用也就是人們所知道的釣魚網(wǎng)站。盡管聽起來像跨站腳本(XSS),但它與XSS非常不同,并且攻擊方式幾乎相左。XSS利用站點(diǎn)內(nèi)的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網(wǎng)站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進(jìn)行防范的資源也相當(dāng)稀少)和難以防范,所以被認(rèn)為比XSS更具危險(xiǎn)性。

          CSRF可以做什么?

          你這可以這么理解 CSRF 攻擊:攻擊者盜用了你的身份,偽裝成你發(fā)送惡意請求。CSRF能夠做的事情包括:以你名義發(fā)送郵件,發(fā)消息,盜取你的賬號(hào),甚至于購買商品,虛擬貨幣轉(zhuǎn)賬......造成的問題包括:個(gè)人隱私泄露以及財(cái)產(chǎn)安全。

          它這么厲害,那它的原理是什么?

          登錄受信任網(wǎng)站A,并在本地生成Cookie。
          在不登出A的情況下,訪問危險(xiǎn)網(wǎng)站B。
          看到這里,你也許會(huì)說:“如果我不滿足以上兩個(gè)條件中的一個(gè),我就不會(huì)受到CSRF的攻擊”。是的,確實(shí)如此,但你不能保證以下情況不會(huì)發(fā)生:
          1.你不能保證你登錄了一個(gè)網(wǎng)站后,不再打開一個(gè)tab頁面并訪問另外的網(wǎng)站。
          2.你不能保證你關(guān)閉瀏覽器了后,你本地的Cookie立刻過期,你上次的會(huì)話已經(jīng)結(jié)束。(事實(shí)上,關(guān)閉瀏覽器不能結(jié)束一個(gè)會(huì)話,但大多數(shù)人都會(huì)錯(cuò)誤的認(rèn)為關(guān)閉瀏覽器就等于退出登錄/結(jié)束會(huì)話了......)
          3.上圖中所謂的攻擊網(wǎng)站,可能是一個(gè)存在其他漏洞的可信任的經(jīng)常被人訪問的網(wǎng)站。

          詳細(xì)的原理介紹

          幾種常見的攻擊類型

          GET類型的CSRF

          這種類型的CSRF一般是由于程序員安全意識(shí)不強(qiáng)造成的。GET類型的CSRF利用非常簡單,只需要一個(gè)HTTP請求,所以,一般會(huì)這樣利用:

          <img src=http://####/csrf?xx=11 /> 

          在訪問含有這個(gè)img的頁面后,成功向http://wooyun.org/csrf?xx=11 發(fā)出了一次HTTP請求。所以,如果將該網(wǎng)址替換為存在GET型CSRF的地址,就能完成攻擊了。

          烏云案例

          POST類型的CSRF

          這種類型的CSRF危害沒有GET型的大,利用起來通常使用的是一個(gè)自動(dòng)提交的表單,如:

          <form action=http://####/csrf.php method=POST>
           <input type="text" name="xx" value="11" />
          </form>
          <script> document.forms[0].submit(); </script> 

          訪問該頁面后,表單會(huì)自動(dòng)提交,相當(dāng)于模擬用戶完成了一次POST操作。

          其他其他猥瑣流CSRF

          過基礎(chǔ)認(rèn)證的CSRF(常用于路由器):

          POC:

          <img src=http://admin:admin@192.168.1.1 /> 

          加載該圖片后,路由器會(huì)給用戶一個(gè)合法的SESSION,就可以進(jìn)行下一步操作了

          防御CSRF的策略

          在業(yè)界目前防御 CSRF 攻擊主要有三種策略:驗(yàn)證 HTTP Referer 字段;在請求地址中添加 token 并驗(yàn)證;在 HTTP 頭中自定義屬性并驗(yàn)證。下面就分別對這三種策略進(jìn)行詳細(xì)介紹。

          驗(yàn)證 HTTP Referer 字段

          根據(jù) HTTP 協(xié)議,在 HTTP 頭中有一個(gè)字段叫 Referer,它記錄了該 HTTP 請求的來源地址。在通常情況下,訪問一個(gè)安全受限頁面的請求來自于同一個(gè)網(wǎng)站,比如需要訪問 http://bank.example/withdraw?account=bob&amount=1000000&for=Mallory,用戶必須先登陸 bank.example,然后通過點(diǎn)擊頁面上的按鈕來觸發(fā)轉(zhuǎn)賬事件。因此,要防御 CSRF 攻擊,網(wǎng)站只需要對于每一個(gè)轉(zhuǎn)賬請求驗(yàn)證其 Referer 值,如果是以 bank.example 開頭的域名,則說明該請求是來自銀行網(wǎng)站自己的請求,是合法的。如果 Referer 是其他網(wǎng)站的話,則有可能是黑客的 CSRF 攻擊,拒絕該請求。
          這種方法的顯而易見的好處就是簡單易行,網(wǎng)站的普通開發(fā)人員不需要操心 CSRF 的漏洞,只需要在最后給所有安全敏感的請求統(tǒng)一增加一個(gè)攔截器來檢查 Referer 的值就可以。
          然而,這種方法并非萬無一失。Referer 的值是由瀏覽器提供的,雖然 HTTP 協(xié)議上有明確的要求,但是每個(gè)瀏覽器對于 Referer 的具體實(shí)現(xiàn)可能有差別,并不能保證瀏覽器自身沒有安全漏洞。使用驗(yàn)證 Referer 值的方法,就是把安全性都依賴于第三方(即瀏覽器)來保障,從理論上來講,這樣并不安全。事實(shí)上,對于某些瀏覽器,比如IE6 或 FF2,目前已經(jīng)有一些方法可以篡改 Referer 值。如果 網(wǎng)站支持IE6 瀏覽器,黑客完全可以把用戶瀏覽器的 Referer 值設(shè)為以 bank.example 域名開頭的地址,這樣就可以通過驗(yàn)證,從而進(jìn)行 CSRF 攻擊。
          即便是使用最新的瀏覽器,黑客無法篡改 Referer 值,這種方法仍然有問題。因?yàn)?Referer 值會(huì)記錄下用戶的訪問來源,有些用戶認(rèn)為這樣會(huì)侵犯到他們自己的隱私權(quán),特別是有些組織擔(dān)心 Referer 值會(huì)把組織內(nèi)網(wǎng)中的某些信息泄露到外網(wǎng)中。因此,用戶自己可以設(shè)置瀏覽器使其在發(fā)送請求時(shí)不再提供 Referer。當(dāng)他們正常訪問銀行網(wǎng)站時(shí),網(wǎng)站會(huì)因?yàn)檎埱鬀]有 Referer 值而認(rèn)為是 CSRF 攻擊,拒絕合法用戶的訪問。

          在請求地址中添加 token 并驗(yàn)證

          CSRF 攻擊之所以能夠成功,是因?yàn)楹诳涂梢酝耆珎卧煊脩舻恼埱螅撜埱笾兴械挠脩趄?yàn)證信息都是存在于 cookie 中,因此黑客可以在不知道這些驗(yàn)證信息的情況下直接利用用戶自己的 cookie 來通過安全驗(yàn)證。要抵御 CSRF,關(guān)鍵在于在請求中放入黑客所不能偽造的信息,并且該信息不存在于 cookie 之中。可以在 HTTP 請求中以參數(shù)的形式加入一個(gè)隨機(jī)產(chǎn)生的 token,并在服務(wù)器端建立一個(gè)攔截器來驗(yàn)證這個(gè) token,如果請求中沒有 token 或者 token 內(nèi)容不正確,則認(rèn)為可能是 CSRF 攻擊而拒絕該請求。
          這種方法要比檢查 Referer 要安全一些,token 可以在用戶登陸后產(chǎn)生并放于 session 之中,然后在每次請求時(shí)把 token 從 session 中拿出,與請求中的 token 進(jìn)行比對,但這種方法的難點(diǎn)在于如何把 token 以參數(shù)的形式加入請求。對于 GET 請求,token 將附在請求地址之后,這樣 URL 就變成 http://url?csrftoken=tokenvalue。 而對于 POST 請求來說,要在 form 的最后加上 <input type=”hidden” name=”csrftoken” value=”tokenvalue”/>,這樣就把 token 以參數(shù)的形式加入請求了。但是,在一個(gè)網(wǎng)站中,可以接受請求的地方非常多,要對于每一個(gè)請求都加上 token 是很麻煩的,并且很容易漏掉,通常使用的方法就是在每次頁面加載時(shí),使用 javascript 遍歷整個(gè) dom 樹,對于 dom 中所有的 a 和 form 標(biāo)簽后加入 token。這樣可以解決大部分的請求,但是對于在頁面加載之后動(dòng)態(tài)生成的 html 代碼,這種方法就沒有作用,還需要程序員在編碼時(shí)手動(dòng)添加 token。
          該方法還有一個(gè)缺點(diǎn)是難以保證 token 本身的安全。特別是在一些論壇之類支持用戶自己發(fā)表內(nèi)容的網(wǎng)站,黑客可以在上面發(fā)布自己個(gè)人網(wǎng)站的地址。由于系統(tǒng)也會(huì)在這個(gè)地址后面加上 token,黑客可以在自己的網(wǎng)站上得到這個(gè) token,并馬上就可以發(fā)動(dòng) CSRF 攻擊。為了避免這一點(diǎn),系統(tǒng)可以在添加 token 的時(shí)候增加一個(gè)判斷,如果這個(gè)鏈接是鏈到自己本站的,就在后面添加 token,如果是通向外網(wǎng)則不加。不過,即使這個(gè) csrftoken 不以參數(shù)的形式附加在請求之中,黑客的網(wǎng)站也同樣可以通過 Referer 來得到這個(gè) token 值以發(fā)動(dòng) CSRF 攻擊。這也是一些用戶喜歡手動(dòng)關(guān)閉瀏覽器 Referer 功能的原因。

          在 HTTP 頭中自定義屬性并驗(yàn)證

          這種方法也是使用 token 并進(jìn)行驗(yàn)證,和上一種方法不同的是,這里并不是把 token 以參數(shù)的形式置于 HTTP 請求之中,而是把它放到 HTTP 頭中自定義的屬性里。通過 XMLHttpRequest 這個(gè)類,可以一次性給所有該類請求加上 csrftoken 這個(gè) HTTP 頭屬性,并把 token 值放入其中。這樣解決了上種方法在請求中加入 token 的不便,同時(shí),通過 XMLHttpRequest 請求的地址不會(huì)被記錄到瀏覽器的地址欄,也不用擔(dān)心 token 會(huì)透過 Referer 泄露到其他網(wǎng)站中去。
          然而這種方法的局限性非常大。XMLHttpRequest 請求通常用于 Ajax 方法中對于頁面局部的異步刷新,并非所有的請求都適合用這個(gè)類來發(fā)起,而且通過該類請求得到的頁面不能被瀏覽器所記錄下,從而進(jìn)行前進(jìn),后退,刷新,收藏等操作,給用戶帶來不便。另外,對于沒有進(jìn)行 CSRF 防護(hù)的遺留系統(tǒng)來說,要采用這種方法來進(jìn)行防護(hù),要把所有請求都改為 XMLHttpRequest 請求,這樣幾乎是要重寫整個(gè)網(wǎng)站,這代價(jià)無疑是不能接受的。

          防御實(shí)例

          Sailajs框架中的JavaScript 代碼示例

          下面將以 JavaScript 為例,對上述三種方法分別用代碼進(jìn)行示例。

          1.驗(yàn)證 Referer

          // 從 HTTP 頭中取得 Referer 值
           var referer=req.headers.Referer; 
           // 判斷 Referer 是否以 test.example 開頭
           if((referer!=null) && (_.startsWith(referer, “test.example ”)){ 
           // 驗(yàn)證通過
           }else{ 
           // 驗(yàn)證失敗,返回錯(cuò)誤
           }

          2.驗(yàn)證請求中的 token

           var session=req.session;
          
           // 從 session 中得到 csrftoken 屬性
           var token=session.csrftoken; 
           if(token==null){ 
          
           // 產(chǎn)生新的 token 放入 session 中
           token=generateToken(); 
           token.csrftoken=token ; 
           return ....
           } else{ 
          
           // 從 HTTP 頭中取得 csrftoken 
           var token=req.headers.csrftoken; 
          
           // 從請求參數(shù)中取得 csrftoken 
           var xhrToken=req.param('csrftoken'); 
           if(token !=null && xhrToken !=null && token.equals(xhrToken)){ 
           return ...
           }else{ 
           return ... // ERROR
           } 
           }
          HTTP 頭中自定義屬性(網(wǎng)上例子)
          var plainXhr=dojo.xhr; 
          
           // 重寫 dojo.xhr 方法
           dojo.xhr=function(method,args,hasBody) { 
           // 確保 header 對象存在
           args.headers=args.header || {}; 
           
           tokenValue='<%=request.getSession(false).getAttribute("csrftoken")%>'; 
           var token=dojo.getObject("tokenValue"); 
           
           // 把 csrftoken 屬性放到頭中
           args.headers["csrftoken"]=(token) ? token : " "; 
           return plainXhr(method,args,hasBody); 
           };

          總結(jié)

          CSRF 是一種危害非常大的攻擊,又很難以防范。目前幾種防御策略雖然可以很大程度上抵御 CSRF 的攻擊,但并沒有一種完美的解決方案。一些新的方案正在研究之中,比如對于每次請求都使用不同的動(dòng)態(tài)口令,把 Referer 和 token 方案結(jié)合起來,甚至嘗試修改 HTTP 規(guī)范,但是這些新的方案尚不成熟,要正式投入使用并被業(yè)界廣為接受還需時(shí)日。在這之前,我們只有充分重視 CSRF,根據(jù)系統(tǒng)的實(shí)際情況選擇最合適的策略,這樣才能把 CSRF 的危害降到最低

          么是 CSRF 攻擊?

          跨站點(diǎn)請求偽造 (CSRF) 攻擊允許攻擊者偽造請求并將其作為登錄用戶提交到 Web 應(yīng)用程序,CSRF 利用 HTML 元素通過請求發(fā)送環(huán)境憑據(jù)(如 cookie)這一事實(shí),甚至是跨域的。

          與 XSS 一樣,要發(fā)起 CSRF 攻擊,攻擊者必須說服受害者單擊或?qū)Ш降芥溄?/span>。與 XSS 不同的是,CSRF 只允許攻擊者向受害者的來源發(fā)出請求,并且不會(huì)讓攻擊者在該來源內(nèi)執(zhí)行代碼。這并不意味著 CSRF 攻擊的防御變得不那么重要。正如我們將在示例中看到的,CSRF 可能與 XSS 一樣危險(xiǎn)。

          CSRF的背景

          Web 起源于查看靜態(tài)文檔的平臺(tái),很早就添加了交互性,在POSTHTTP 中添加了動(dòng)詞,<form> 在 HTML 中添加了元素。以 cookie 的形式添加了對存儲(chǔ)狀態(tài)的支持。

          CSRF 攻擊利用 Web 的以下屬性:cookie 用于存儲(chǔ)憑據(jù),HTML 元素(與 JavaScript 不同)被允許發(fā)出跨域請求,HTML 元素隨所有請求發(fā)送所有 cookie(以及憑據(jù))。

          CSRF 將所有這些放在一起。攻擊者創(chuàng)建了一個(gè)惡意網(wǎng)站,其中包含向受害者的來源提交請求的 HTML 元素。當(dāng)受害者導(dǎo)航到攻擊者的站點(diǎn)時(shí),瀏覽器會(huì)將受害者來源的所有 cookie 附加到請求中,這使得攻擊者生成的請求看起來像是由受害者提交的。

          它是如何工作的?

          • 它僅在潛在受害者經(jīng)過身份驗(yàn)證時(shí)才有效。
          • 攻擊者可以通過使用 CSRF 攻擊繞過身份驗(yàn)證過程進(jìn)入網(wǎng)站。
          • CSRF 攻擊在具有額外權(quán)限的受害者執(zhí)行某些操作而其他人無法訪問或執(zhí)行這些操作的情況下使用。例如,網(wǎng)上銀行。

          CSRF 攻擊分兩個(gè)主要部分執(zhí)行

          第一步是吸引用戶/受害者點(diǎn)擊鏈接或加載惡意頁面。攻擊者使用社會(huì)工程學(xué)來欺騙受害者。

          第二步是通過向受害者的瀏覽器發(fā)送偽造的請求來欺騙受害者。此鏈接會(huì)將看似合法的請求重定向到網(wǎng)站。攻擊者將擁有他必須尋找的受害者的價(jià)值觀或詳細(xì)信息;受害者會(huì)認(rèn)為該請求是合法的。攻擊者還將獲得與受害者瀏覽器相關(guān)聯(lián)的 cookie 的詳細(xì)信息。

          CSRF 的關(guān)鍵概念

          • 攻擊者向用戶訪問的站點(diǎn)發(fā)送惡意請求,攻擊者認(rèn)為受害者已針對該特定站點(diǎn)進(jìn)行了驗(yàn)證。
          • 受害者的瀏覽器針對目標(biāo)站點(diǎn)進(jìn)行身份驗(yàn)證,并用于路由目標(biāo)站點(diǎn)的惡意請求。
          • 在這里,受害者的瀏覽器或?qū)嵤┝?CSRF 預(yù)防方法的站點(diǎn)不會(huì)受到攻擊;受影響的網(wǎng)站是主要漏洞。

          如何防止跨站請求偽造(CSRF)?

          有幾種 CSRF 預(yù)防方法;其中一些是:

          • 在不使用 Web 應(yīng)用程序時(shí)注銷它們。
          • 保護(hù)您的用戶名和密碼。
          • 不要讓瀏覽器記住密碼。
          • 在您處理應(yīng)用程序并登錄時(shí),請避免瀏覽。

          反 CSRF Token

          阻止跨站點(diǎn)請求偽造 (CSRF) 的最常見實(shí)現(xiàn)是使用與選定用戶相關(guān)的令牌,并且可以在每個(gè)狀態(tài)下作為隱藏表單找到,動(dòng)態(tài)表單出現(xiàn)在在線應(yīng)用程序上。

          1. 這個(gè)Token,簡稱 CSRF Token

          工作原理如下:

          • 客戶端請求具有表單的HTML 頁面。
          • 為了響應(yīng)這個(gè)請求,服務(wù)器附加了兩個(gè)令牌。它將一個(gè)作為 cookie 發(fā)送,并將其他令牌保存在隱藏的表單字段中。這些令牌是隨機(jī)生成的。
          • 提交表單后,客戶端將兩個(gè)令牌都發(fā)送回服務(wù)器。cookie 令牌作為令牌發(fā)送,表單令牌在表單數(shù)據(jù)內(nèi)部發(fā)送。
          • 如果一個(gè)請求沒有兩個(gè)請求,則服務(wù)器不會(huì)響應(yīng)或拒絕該請求。

          試圖偽造請求的攻擊者將不得不猜測反 CSRF 令牌和用戶的身份驗(yàn)證密碼。一段時(shí)間后,一旦會(huì)話結(jié)束,這些令牌就會(huì)失效,這使得攻擊者難以猜測令牌。

          2. 同站點(diǎn) Cookie

          有一些 cookie 與來源或網(wǎng)站相關(guān)聯(lián),當(dāng)請求發(fā)送到該特定來源時(shí),cookie 會(huì)隨之發(fā)送。此類請求稱為跨域請求。在此過程中,cookie 被發(fā)送給第三方,這使得 CSRF 攻擊成為可能。

          3. 相同的站點(diǎn) Cookie 屬性

          • 為了防止 CSRF 攻擊,可以使用同站點(diǎn) cookie 屬性。它禁用第三方對特定 cookie 的使用。
          • 由服務(wù)器在設(shè)置cookie時(shí)完成;只有當(dāng)用戶直接使用 Web 應(yīng)用程序時(shí),它才會(huì)請求瀏覽器發(fā)送 cookie 。
          • 如果有人試圖從 Web 應(yīng)用程序請求某些東西,瀏覽器將不會(huì)發(fā)送 cookie。
          • 但是,它可以防止 CSRF 攻擊。

          這有一個(gè)限制,現(xiàn)代瀏覽器不支持同站點(diǎn) cookie,而舊瀏覽器不支持使用同站點(diǎn) cookie 的 Web 應(yīng)用程序。

          CSRF 示例

          <class=”word”>下面<class=”word”>我們有<class=”word”>解釋<class=”word”>一些<class=”word”>例子<class=”word”>CSRF :
          

          1. 使用 GET 請求:

          假設(shè)您已經(jīng)實(shí)現(xiàn)并設(shè)計(jì)了一個(gè)網(wǎng)站banking.com,以使用GET 請求執(zhí)行諸如在線交易之類的操作,現(xiàn)在,知道如何制作惡意 URL 的聰明攻擊者可能會(huì)使用 <img> 元素讓瀏覽器靜默加載頁面。

          包含惡意 URL的HTML 圖像元素示例:

          <img src="http://banking.com/app/transferFunds?amount=2500&destination=56789">
          

          2. 可以使用以下技術(shù)之一來做同樣的事情:

          • 通過發(fā)送包含 HTML 內(nèi)容的電子郵件
          • 通過在頁面上植入腳本或惡意 URL。

          3. 使用 POST 請求

          關(guān)于 HTTP POST 請求有一個(gè)普遍的誤解,認(rèn)為 CSRF 攻擊可以通過允許 HTTP POST 請求來防止,這實(shí)際上是不正確的。攻擊者可以使用HTML 或 JavaScript創(chuàng)建表單并使用自動(dòng)提交功能來提交 POST 請求,而無需用戶單擊提交按鈕。

          結(jié)論

          Cookie 很容易受到攻擊,因?yàn)樗鼈兪?/span>隨請求自動(dòng)發(fā)送的,允許攻擊者實(shí)施 CSRF 并發(fā)送惡意請求,CSRF 漏洞的影響還取決于受害者的權(quán)限,其 Cookie 與攻擊者的請求一起發(fā)送。

          雖然數(shù)據(jù)檢索不是 CSRF 攻擊的主要范圍,但狀態(tài)變化肯定會(huì)對被利用的 Web 應(yīng)用程序產(chǎn)生不利影響。因此,建議防止您的網(wǎng)站使用預(yù)防方法來保護(hù)您的網(wǎng)站免受 CSRF 的影響。

          鏈接:https://www.wljslmz.cn/1098.html

          版權(quán)歸作者所有,侵刪

          SRF:Cross Site Request Forgery(跨站點(diǎn)請求偽造)。

          CSRF 攻擊者在用戶已經(jīng)登錄目標(biāo)網(wǎng)站之后,誘使用戶訪問一個(gè)攻擊頁面,利用目標(biāo)網(wǎng)站對用戶的信任,以用戶身份在攻擊頁面對目標(biāo)網(wǎng)站發(fā)起偽造用戶操作的請求,達(dá)到攻擊目的。


          避免方法:

          CSRF 漏洞進(jìn)行檢測的工具,如 CSRFTester、CSRF Request Builder...

          驗(yàn)證 HTTP Referer 字段

          添加并驗(yàn)證 token

          添加自定義 http 請求頭

          敏感操作添加驗(yàn)證碼

          使用 post 請求


          主站蜘蛛池模板: 日韩精品中文字幕无码一区 | 一区二区三区电影在线观看| 精品一区二区三区免费观看| 精品久久一区二区| 亚洲成AV人片一区二区| 蜜桃AV抽搐高潮一区二区| 中文精品一区二区三区四区| 高清无码一区二区在线观看吞精| 精品视频一区二区三区| 亲子乱AV视频一区二区| 亚洲一区中文字幕久久| 国精产品一区一区三区免费视频 | 激情综合一区二区三区| 麻豆aⅴ精品无码一区二区| 无码精品人妻一区二区三区漫画| 久久精品无码一区二区日韩AV| 在线观看午夜亚洲一区| 精品不卡一区中文字幕 | 国产亚洲一区二区精品| 99久久精品费精品国产一区二区| 国产精品香蕉在线一区| 国产欧美色一区二区三区| 91视频国产一区| 麻豆精品久久久一区二区| 国产高清在线精品一区二区| 国产精品无码一区二区三区在| 亚洲国产美国国产综合一区二区 | 上原亚衣一区二区在线观看| 亚洲av无码一区二区三区天堂| 国产一区二区三区在线看片| 国产成人精品一区在线| 最美女人体内射精一区二区| 亚洲一区二区三区深夜天堂| 国产高清一区二区三区视频| 精品无码国产一区二区三区麻豆| 国产午夜精品一区二区三区嫩草| 精品亚洲一区二区| 日本免费一区尤物| 中文字幕一区二区三区人妻少妇| 免费人妻精品一区二区三区| 精品少妇人妻AV一区二区三区|