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

一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

安全 漏洞
之前在某廠的某次項目開發中,項目組同學設計和實現了一個“引以為傲”,額,有點擴張,不過自認為還說得過去的 feature,結果臨上線前被啪啪打臉,因為實現過程中因為一行代碼(沒有標題黨,真的是一行代碼)帶來的安全漏洞讓我們丟失了整個服務器控制權。

 之前在某廠的某次項目開發中,項目組同學設計和實現了一個“引以為傲”,額,有點擴張,不過自認為還說得過去的 feature,結果臨上線前被啪啪打臉,因為實現過程中因為一行代碼(沒有標題黨,真的是一行代碼)帶來的安全漏洞讓我們丟失了整個服務器控制權(測試環境)。多虧了上線之前有公司安全團隊的人會對代碼進行掃描,才讓這個漏洞被扼殺在搖籃里。

下面我們就一起來看看這個事故,啊,不對,是故事。

[[329963]]

背景說明

我們的項目是一個面向全球用戶的 Web 項目,用 SpringBoot 開發。在項目開發過程中,離不開各種異常信息的處理,比如表單提交參數不符合預期,業務邏輯的處理時離不開各種異常信息(例如網絡抖動等)的處理。于是利用 SpringBoot 各種現成的組件支持,設計了一個統一的異常信息處理組件,統一管理各種業務流程中可能出現的錯誤碼和錯誤信息,通過國際化的資源配置文件進行統一輸出給用戶。

統一錯誤信息配置管理

我們的用戶遍布全球,為了給各個國家用戶比較好的體驗會進行不同的翻譯。具體而言,實現的效果如下,為了方便理解,以“找回登錄密碼”這樣一個業務場景來進行闡述說明。

假設找回密碼時,需要用戶輸入手機或者郵箱驗證碼,假設這個時候用戶輸入的驗證碼通過后臺數據庫(可能是Redis)對比發現已經過期。在業務代碼中,只需要簡單的 throw new ErrorCodeException(
ErrorCodes.AUTHCODE_EXPIRED) 即可。具體而言,針對不同國家地區不同的語言看到的效果不一樣:

  • 中文用戶看到的提示就是“您輸入的驗證碼已過期,請重新獲取”;
  • 歐美用戶看到的效果是“The verification code you input is expired, ...”;
  • 德國用戶看到的是:“Der von Ihnen eingegebene Verifizierungscode ist abgelaufen, bitte wiederholen” 。(我瞎找的翻譯,不一定準)
  • ……

統一錯誤信息配置管理代碼實現

關鍵信息其實就在于一個 GlobalExceptionHandler,對所有Controller 入口進行 AOP 攔截,根據不同的錯誤信息,獲取相應資源文件配置的 key,并從語言資源文件中讀取不同國家的錯誤翻譯信息。

  1. @ControllerAdvice  
  2. public class GlobalExceptionHandler {  
  3.  
  4. @ExceptionHandler(BadRequestException.class)  
  5. @ResponseBody  
  6. public ResponseEntity handle(HttpServletRequest request, BadRequestException e){  
  7. String i18message = getI18nMessage(e.getKey(), request);  
  8. return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(Response.error(e.getCode(), i18message));  
  9. }  
  10.  
  11. @ExceptionHandler(ErrorCodeException.class)  
  12. @ResponseBody  
  13. public ResponseEntity handle(HttpServletRequest request, ErrorCodeException e){  
  14. String i18message = getI18nMessage(e.getKey(), request);  
  15. return ResponseEntity.status(HttpStatus.OK).body(Response.error(e.getCode(), i18message));  
  16. }  
  17. }  
一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

不同語言的資源文件示例

  1. private String getI18nMessage(String key, HttpServletRequest request) {  
  2. try {  
  3. return messageSource.getMessage(key, null, LanguaggeUtils.currentLocale(request));  
  4. catch (Exception e) {  
  5. // log  
  6. return key;  
  7. }  
  8. }  

基于注解的表單校驗(含自定義注解)

還有一種常見的業務場景就是后端接口需要對用戶提交的表單進行校驗。以“注冊用戶”這樣的場景舉例說明, 注冊用戶時,往往會提交昵稱,性別,郵箱等信息進行注冊,簡單起見,就以這 3 個屬性為例。

定義的表單如下:

  1. public class UserRegForm {  
  2. private String nickname;  
  3. private String gender;  
  4. private String email;  
  5. }  

對于表單的約束,我們有:

  • 昵稱字段:“nickname” 必填,長度必須是 6 到 20 位;
  • 性別字段:“gender” 可選,如果填了,就必須是“Male/Female/Other/”中的一種。說啥,除了男女還有其他?對,是的。畢竟全球用戶嘛,你去看看非死不可,還有更多。
  • 郵箱: “email”,必填,必須滿足郵箱格式。

對于以上約束,我們只需要在對應的字段上添加如下注解即可。

  1. public class UserRegForm {  
  2. @Length(min = 6, max = 20, message = "validate.userRegForm.nickname")  
  3. private String nickname;  
  4.  
  5. @Gender(message="validate.userRegForm.gender")  
  6. private String gender;  
  7.  
  8. @NotNull  
  9. @Email(message="validate.userRegForm.email")  
  10. private String email;  
  11. }  

然后在各個語言資源文件中配置好相應的錯誤信息提示即可。其中, @Gender 就是一個自定義的注解。

基于含自定義注解的表單校驗關鍵代碼

自定義注解的實現主要的其實就是一個自定義注解的定義以及一個校驗邏輯。 例如定義一個自定義注解 CustomParam:

  1. @Documented  
  2. @Constraint(validatedBy = CustomValidator.class)  
  3. @Target({FIELD, METHOD, PARAMETER, ANNOTATION_TYPE})  
  4. @Retention(RetentionPolicy.RUNTIME)  
  5. public @interface CustomParam {  
  6. String message() default "name.tanglei.www.validator.CustomArray.defaultMessage";  
  7.  
  8. Class<?>[] groups() default {};  
  9. Class<? extends Payload>[] payload() default { };  
  10.  
  11. @Documented  
  12. @Retention(RetentionPolicy.RUNTIME)  
  13. @Target({FIELD, METHOD, PARAMETER, ANNOTATION_TYPE})  
  14. @interface List {  
  15. CustomParam[] value();  
  16. }  
  17. }  

校驗邏輯的實現 CustomValidator:

  1. public class CustomValidator implements ConstraintValidator<CustomParam, String> {  
  2. @Override  
  3. public boolean isValid(String s, ConstraintValidatorContext constraintValidatorContext) {  
  4. if (null == s || s.isEmpty()) {  
  5. return true;  
  6. }  
  7. if (s.equals("tanglei")) {  
  8. return true;  
  9. else {  
  10. error(constraintValidatorContext, "Invalid params: " + s);  
  11. return false;  
  12. }  
  13. }  
  14.  
  15. @Override  
  16. public void initialize(CustomParam constraintAnnotation) {  
  17. }  
  18.  
  19. private static void error(ConstraintValidatorContext context, String message) {  
  20. context.disableDefaultConstraintViolation();  
  21. context.buildConstraintViolationWithTemplate(message).addConstraintViolation();  
  22. }  
  23. }  

上面例子只為了闡述說明問題,其中校驗邏輯沒有實際意義,這樣,如果輸入參數不滿足條件,就會明確提示用戶輸入的哪個參數不滿足條件。例如輸入參數 xx,則會直接提示:Invalid params: xx。

一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

這個跟第一部分的處理方式類似,因為現有的 validator 組件實現中,如果違反相應的約束也是一種拋異常的方式實現的,因此只需要在上述的 GlobalExceptionHandler中添加相應的異常信息即可,這里就不詳述了。 這不是本文的重點,這里就不詳細闡述了。

場景重現

一切都顯得很完美,直到上線前代碼提交至安全團隊掃描,就被“啪啪打臉”,掃描報告反饋了一個嚴重的安全漏洞。而這個安全漏洞,屬于很高危的遠程代碼執行漏洞。

[[329964]]

用前文提到的自定義 Validator,輸入的參數用: “1+1=${1+1}”,看看效果:

一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

太 TM 神奇了,居然幫我運算出來了,返回 "message": "Invalid params: 1+1=2"。

問題就出現在實現自定義注解進行校驗的這行代碼(如下圖所示):

一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

其實,最開始的時候,這里直接返回了“Invalid params”,當初為了更好的用戶體驗,要明確告訴用戶哪個參數沒有通過校驗,因此在輸出的提示上加上了用戶輸入的字段,也就是上面的"Invalid params: " + s,沒想到,這闖了大禍了(回過頭來想,感覺這里沒必要這么詳細啊,因為前端已經有相應的校驗了,正常情況下回攔住,針對不守規矩的用非常規手段來的接口請求,直接返回校驗不通過就行了,畢竟不是對外提供的 OpenAPI 服務)。

仔細看,這個方法實際上是 
ConstraintValidatorContext這個接口中聲明的,看方法名字其實能知道輸入參數是一個字符串模板,內部會進行解析替換的(這其實也符合“見名知意”的良好編程習慣)。(教訓:大家應該把握好自己寫的每一行代碼背后實際在做什么。)

  1. /* ......  
  2. * @param messageTemplate new un-interpolated constraint message  
  3. * @return returns a constraint violation builder  
  4. */  
  5. ConstraintViolationBuilder buildConstraintViolationWithTemplate(String messageTemplate);  

這個 case,源碼調試進去之后,就能跟蹤到執行翻譯階段,在如下方法中: 
org.hibernate.validator.messageinterpolation.AbstractMessageInterpolator.interpolateMessage。

一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

再往后,就是表達式求值了。 [圖片上傳失敗...(image-9239c-1591863495667)]

以為就這樣就完了嗎?

[[329965]]

剛開始感覺,能幫忙算簡單的運算規則也就完了吧,你還能把我怎么樣?其實這個相當于暴露了一個入口,支持用戶輸入任意 EL 表達式進行執行。網上通過關鍵字 “SpEL表達式注入漏洞” 找找,就能發現事情并沒有想象中那么簡單。

我們構造恰當的 EL 表達式(注意各種轉義,下文的輸入參數相對比較明顯在做什么了,實際上還有更多黑科技,比如各種二進制轉義編碼啊等等),就能直接執行輸入代碼,例如:可以直接執行命令,“ls -al”, 返回了一個 UNIXProcess 實例,命令已經被執行過了。

一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

比如,我們執行個打開計算器的命令,搞個計算器玩玩~

一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

我錄制了一個動圖,來個演示可能更生動一些。

一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

這還得了嗎?這相當于提供了一個 webshell 的功能呀,你看想運行啥命令就能運行啥命令,例如 ping 本人博客地址(ping www.tanglei.name),下面動圖演示一下整個過程(從運行 ping 到 kill ping)。

一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

豈不是直接創建一個用戶,然后遠程登錄就可以了。后果很嚴重啊,別人想干嘛就干嘛了。

[[329966]]

我們跟蹤下對應的代碼,看看內部實現,就會“恍然大悟”了。

一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權
一行代碼引來的安全漏洞,就讓我們丟失了整個服務器的控制權

經驗教訓

幸虧這個漏洞被扼殺在搖籃里,否則后果還真的挺嚴重的。通過這個案例,我們有啥經驗和教訓呢?那就是作為程序員,我們要對每一行代碼都保持“敬畏”之心。也許就是因為你的不經意的一行代碼就帶來了嚴重的安全漏洞,要是不小心被壞人利用,輕則……重則……(自己想象吧)

此外,我們也應該看到,程序員需要對常見的安全漏洞(例如XSS/CSRF/SQL注入等等)有所了解,并且要有足夠的安全意識(其實有時候研究一些安全問題還挺好玩的)。例如:

  • 用戶權限分離:運行程序的用戶不應該用 root,例如新建一個“web”或者“www”之類的用戶,并設置該用戶的權限,比如不能有可執行 xx 的權限之類的。本文 case,如果權限進行了分離(遵循最小權限原則),應該也不會這么嚴重。(本文就剛好是因為是測試環境,所以沒有強制實施)
  • 任何時候都不要相信用戶的輸入,必須對用戶輸入的進行校驗和過濾,又特別是針對公網上的應用。
  • 敏感信息加密保存。退一萬步講,假設攻擊者攻入了你的服務器,如果這個時候,你的數據庫賬戶信息等配置都直接明文保存在服務器中。那數據庫也被拖走了。

如果可能的話,需要對開發者的代碼進行漏洞掃描。一些常見的安全漏洞現在應該是有現成的工具支持的。另外,讓專業的人做專業的事情,例如要有安全團隊,可能你會說你們公司沒有不也活的好好的,哈哈,只不過可能還沒有被壞人盯上而已,壞人也會考慮到他們的成本和預期收益的,當然這就更加對我們開發者提高了要求。一些敏感權限盡量控制在少部分人手中,配合相應的流程來支撐(不得不說,大公司繁瑣的流程還是有一定道理的)。

畢竟我不是專業研究Web安全的,以上說的可能也不一定對,如果你有不同意見或者更好的建議歡迎留言參與討論。

 

責任編輯:張燕妮 來源: 博客園
相關推薦

2020-06-24 13:08:14

網絡安全網絡安全技術周刊

2019-08-26 10:19:39

2015-04-09 09:24:27

IT管理云計算管理

2009-01-08 19:06:00

服務器安全Web服務器

2013-04-24 09:43:30

2010-03-09 14:54:49

2021-06-02 07:43:42

服務器阿里云配置

2021-11-11 15:21:43

云計算安全技術

2010-03-17 15:54:42

Java線程控制權

2022-01-16 20:37:44

亞馬遜云科技AWS Glue

2015-02-06 09:20:33

2009-10-10 17:40:34

2010-01-20 10:38:54

2025-05-16 11:44:43

CSS模式樣式

2024-11-29 10:58:54

CSS代碼黑模式

2022-12-13 07:40:33

LinuxWeb服務器

2012-07-31 13:47:49

2013-01-30 09:16:39

云標準云服務

2016-11-10 07:43:24

安卓谷歌科技新聞早報

2017-04-05 11:10:23

Javascript代碼前端
點贊
收藏

51CTO技術棧公眾號

黄色网在线看| 最新中文字幕视频| 四虎精品成人影院观看地址| 偷拍欧美精品| 日韩欧美亚洲综合| 国产午夜精品一区| 欧美三级小视频| 日本国产亚洲| 日本一区二区三级电影在线观看| 国模吧一区二区三区| 伊人五月天婷婷| 精品美女在线观看视频在线观看 | 久久综合一区二区| 久国内精品在线| 日本精品一区在线| 尤物网址在线观看| 麻豆91小视频| 中文字幕亚洲色图| 三级视频中文字幕| 成人网视频在线观看| 日韩精品亚洲一区二区三区免费| 亚洲欧美国产一本综合首页| 97av视频在线观看| 黄色在线小视频| 日韩精品高清不卡| 在线午夜精品自拍| 不卡中文字幕在线观看| 国产原创视频在线观看| 国产成人免费在线视频| 欧美日本在线视频中文字字幕| a级大片免费看| 黑人玩欧美人三根一起进| 国产成人午夜精品影院观看视频 | 免费无遮挡无码永久在线观看视频| 久久99成人| 亚洲最大的成人av| 久久久久久草| 在线免费观看一级片| 中文字幕亚洲综合久久五月天色无吗'' | av在线亚洲一区| 亚洲自拍偷拍图区| 欧美不卡福利| 国产精品久久影视| 夜夜嗨一区二区| 一区二区在线视频播放| 手机免费看av网站| 91美女精品| 欧美国产精品劲爆| 伊人久久综合97精品| 亚洲国产日日夜夜| 97超级碰碰| 91国产丝袜播放在线| 国产精选一区| 91精品欧美一区二区三区综合在 | 鲁丝一区二区三区免费| 青青草视频在线观看免费| 天天做天天爱综合| 亚洲国产欧美精品| 成人在线激情网| av香蕉成人| 久久一区二区三区四区| 成人网在线视频| 国产午夜在线播放| 四虎国产精品免费观看| 亚洲精品美女久久| 在线视频日韩欧美| 欧美成人h版| 尤物在线观看一区| 亚洲精品美女久久7777777| 丰满肉嫩西川结衣av| 卡一卡二国产精品| 国产91对白在线播放| 天天鲁一鲁摸一摸爽一爽| 欧美激情极品| 欧美精品日韩精品| 免费在线观看毛片网站| 牛牛电影国产一区二区| 国产精品伦理在线| 欧美一区二区在线| 色偷偷在线观看| 国产精品资源在线看| 国产成人精品av| 亚洲久久在线观看| 激情综合亚洲| 欧美成年人视频网站欧美| 欧美另类z0zx974| 欧美男男freegayvideosroom| 69av一区二区三区| 一区二区三区免费播放| 欧亚在线中文字幕免费| 亚洲一区二区欧美日韩| 中国一级黄色录像| 日本高清在线观看wwwww色| 久久久不卡网国产精品二区| 国产欧美亚洲日本| 亚洲欧美激情另类| 国产电影一区在线| 91黄在线观看| 99久久精品日本一区二区免费| 日本美女视频一区二区| 日本三级韩国三级久久| 99热国产在线观看| 国产精品亚洲产品| 欧美在线一级va免费观看| 国产一级特黄aaa大片| 国产精品magnet| 久久久久久高潮国产精品视| 丰满少妇高潮久久三区| 欧美91大片| 欧美精品日韩三级| 精国产品一区二区三区a片| 91精品在线观看国产| 日韩视频精品在线| 中文字幕在线有码| 国产精品v欧美精品v日本精品动漫| 欧美成人精品激情在线观看| 99久久99久久精品国产| 一精品久久久| 欧美国产第一页| 国产亚洲成人精品| 国产一级久久| 国产精品女人久久久久久| 中文字幕日本人妻久久久免费| 另类欧美日韩国产在线| 91啪国产在线| 日韩在线观看视频一区二区三区| 99久久99久久久精品齐齐| 久久艳妇乳肉豪妇荡乳av| 国产永久免费高清在线观看| 中文av一区二区| 国产高清免费在线| 国产在线拍揄自揄拍视频| 丁香五六月婷婷久久激情| 日韩欧美在线免费观看视频| 欧美电影在线观看网站| 51久久夜色精品国产麻豆| 午夜诱惑痒痒网| 国产一区二区三区亚洲| 亚洲人成在线电影| 成年人二级毛片| 亚洲免费播放| 国产精品入口尤物| 性一交一乱一色一视频麻豆| 99国产精品99久久久久久| 日韩动漫在线观看| 99福利在线| 欧美日韩亚洲高清| 国产又黄又猛的视频| 高清精品xnxxcom| 中文字幕精品久久久久| 一区二区三区免费高清视频 | 玖玖爱视频在线| 风间由美一区二区av101| 亚洲偷熟乱区亚洲香蕉av| 日日噜噜夜夜狠狠久久波多野| 最新亚洲激情| 成人av电影天堂| 青青青草原在线| 亚洲免费观看高清| 亚洲乱码国产一区三区| av综合网址| 视频直播国产精品| 二区视频在线观看| 国产高清在线观看免费不卡| 日本一区视频在线| 日本不卡1234视频| 精品福利在线导航| av最新在线观看| 视频一区欧美日韩| 国产传媒一区| 国产秀色在线www免费观看| 日韩欧美一区二区在线| 四虎成人免费视频| 99久久久国产精品美女| 欧美孕妇与黑人孕交| www.国产精品视频| 国产精品久久久久天堂| 黄色a级片免费| 成人盗摄视频| 欧美成人免费在线视频| 亚洲天堂手机版| 久久久精品免费免费| 国产96在线 | 亚洲| 欧美经典影片视频网站| 色婷婷久久av| 波多野结衣理论片| 久久日韩精品一区二区五区| 色欲色香天天天综合网www| 日本亚州欧洲精品不卡| 久久久国产成人精品| 伊人久久成人网| 国产亚洲美州欧州综合国| 无罩大乳的熟妇正在播放| 国产精东传媒成人av电影| 欧美成人全部免费| www.我爱av| 亚洲精品免费在线观看| 51自拍视频在线观看| 91精品啪在线观看国产81旧版| 国产精品美女网站| 午夜激情在线观看| 欧美日韩国产综合视频在线观看| 久久亚洲无码视频| 日本欧美一区二区| 亚洲一区二区在线看| 福利精品在线| 久久久国产精品一区| 国产乱淫a∨片免费视频| 亚洲三级电影网站| 国产探花在线观看视频| 国内精品美女在线观看| 国产精品国产三级国产专区53| 女同视频在线观看| 亚洲国产精品成人av| 亚洲视频免费播放| 久久综合久色欧美综合狠狠| 欧美激情国产精品日韩| 国产日产一区| 国产日韩欧美视频在线| av免费在线观看网站| 欧美成人午夜电影| 日韩黄色在线视频| 久久亚洲精品小早川怜子| 青青草原成人网| 日韩欧美视频| av噜噜色噜噜久久| 51蜜桃传媒精品一区二区| 亚洲综合网av| 亚洲色图制服诱惑| 久久久久亚洲av无码专区首jn| 激情久久久久| 欧美二区三区在线| www.一区| 欧美激情奇米色| 免费在线国产| 777久久久精品| 国产午夜精品无码一区二区| 久久夜色精品国产噜噜av| 美女少妇一区二区| 欧美日韩视频| 欧美一二三四五区| 国产日韩欧美中文在线| 国语对白做受69| 成全电影播放在线观看国语| 日韩午夜在线播放| 亚洲天堂男人av| 亚洲免费在线播放| 久久久久久久久久久国产精品| 久久精品国产亚洲一区二区三区| www.欧美黄色| 欧美亚洲激情| 国产亚洲一区二区三区在线播放 | 国产精品国产自产拍高清av水多| 久久久久久久久免费视频| 亚洲第一视频网| 中文字幕自拍偷拍| 偷偷要91色婷婷| 91精品少妇一区二区三区蜜桃臀| 成人黄色小视频在线观看| 正在播放国产一区| caoporm在线视频| 亚洲国产免费看| 色乱码一区二区三区熟女| 日韩三级av| 亚洲尤物视频网| 99久久婷婷国产综合精品首页| 欧美极品少妇xxxxⅹ喷水| 一级毛片视频在线观看| 日韩精品在线免费观看| 国产国语亲子伦亲子| 欧美性欧美巨大黑白大战| 久久久久久久极品| 亚洲综合久久av| 黄视频网站免费看| 中文字幕不卡在线观看| 给我看免费高清在线观看| 国产成人精品网址| 九九九九九伊人| 久久99精品国产.久久久久| 白嫩少妇丰满一区二区| 日韩视频免费| 天堂8在线天堂资源bt| 亚洲一区二区三区| 亚洲日本精品一区| 日韩精品不卡一区二区| 欧美日韩亚洲一区二区三区四区| 国产精品nxnn| 国产高清精品一区二区三区| 日韩综合一区二区三区| 91天堂在线视频| 久久久加勒比| 91高清视频免费观看| 精精国产xxxx视频在线野外| 欧美精品18videos性欧| 国产三级伦理在线| 欧美激情视频网站| 婷婷av在线| 欧美国产中文字幕| 丝袜在线视频| 久久久噜噜噜久噜久久| 牛牛在线精品视频| 久久久久久网站| 国产免费拔擦拔擦8x高清在线人| 欧美精品成人91久久久久久久| 日本高清在线观看视频| 欧美韩日一区二区| 999av小视频在线| 97视频人免费观看| 345成人影院| 国产不卡精品视男人的天堂 | 日本一区二区三区免费乱视频 | 成人免费小视频| 国产精品国产三级国产传播| 国产精品久久久久久妇女6080| 青青青手机在线视频| 亚洲免费大片在线观看| 精品肉丝脚一区二区三区| 亚洲高清免费视频| 日韩精品在线观看免费| 日韩欧美综合在线视频| 乱子伦一区二区三区| 欧美日韩久久久久久| 国产精品欧美激情在线| 欧美刺激脚交jootjob| 少妇人妻精品一区二区三区| 亚洲美女av在线播放| √新版天堂资源在线资源| 日韩一区视频在线| 国产亚av手机在线观看| 青草热久免费精品视频| 欧美性www| 国产成人成网站在线播放青青| 亚州av日韩av| 亚洲午夜精品福利| 黄色av日韩| 欧美两根一起进3p做受视频| 另类的小说在线视频另类成人小视频在线 | 久热re这里精品视频在线6| 精品亚洲一区二区三区四区| 国产精品一区专区| 久久久久久久久久久国产精品| 国产精品麻豆视频| 在线看成人av| 欧美日韩一级二级| 好吊视频一区二区三区| 亚洲亚裔videos黑人hd| 亚洲第一图区| 国产盗摄xxxx视频xxx69| 欧美片网站免费| 欧美久久电影| 激情综合中文娱乐网| 国产原创精品在线| eeuss国产一区二区三区| 九一在线免费观看| 五月天一区二区三区| 97久久人国产精品婷婷| 亚洲精品网址在线观看| 亚洲电影视频在线| 国产欧美精品一区二区三区-老狼| 精品资源在线| 永久免费网站视频在线观看| 久久先锋资源| 制服丝袜av在线| 最近中文字幕一区二区三区| 国产中文字幕视频| 亚洲成人激情在线观看| 麻豆传媒视频在线观看| 国内精品久久久久久| 91成人app| 日韩久久精品一区二区三区| 亚洲黄页一区| 1314成人网| 亚洲欧洲三级电影| 夜夜爽妓女8888视频免费观看| 亚洲福利在线播放| 宅男在线观看免费高清网站| 国产精品美女主播| 日本成人a网站| 免费看毛片的网址| 国产成人精品免费视频网站| 三级黄色在线观看| 欧美午夜影院一区| 日本成人一区二区三区| 久久久久久美女| 一区三区自拍| 国产一二三四五| 久久精品免费观看| 五月婷婷欧美激情| 在线免费观看成人短视频| 天堂91在线| 欧美中文字幕在线播放| 老司机在线精品视频| 欧美精品卡一卡二| 成人免费的视频| 久久久久亚洲av片无码下载蜜桃| 4hu四虎永久在线影院成人| eeuss影院www在线播放| 国产成人av在线播放| 亚洲高清国产拍精品26u| 亚洲啪啪av|