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

PHP代碼審計得這樣由淺入深地學

安全 應用安全
一篇關于PHP語言CMS的代碼審計文章,詳細記錄代碼審計的完整過程,學習代碼審計,不妨從這邊文章入手,認真閱讀完,相信一定可以有所收獲!

 以Emlog 6.0 beta版本為引,一篇關于PHP語言CMS的代碼審計文章,詳細記錄代碼審計的完整過程,學習代碼審計,不妨從這邊文章入手,認真閱讀完,相信一定可以有所收獲!

[[396282]]

序言

文章基本上完整記錄了筆者針對Emlog CMS審計過程,或許顯得繁瑣,但代碼審計的過程就是這樣,發現可能項,然后精心構造去驗證,這過程中我們會遇到很多次碰壁,堅持測試,思維活躍一些,基本都會有所收獲,誠摯希望后來者能夠耐心閱讀下去,當然最好也能夠有所啟發。

大家需要注意的一點是,代碼審計是為了學習并在SDL中避免發生類似的錯誤,同時也是幫助開源系統修復相關問題,并不是去為了獲得什么0day~

0x00 Emlog 6.0 beta

 

EMLOG 6.0

官網地址:https://www.emlog.net/

Emlog 6.0 beta下載地址:

https://www.emlog.net/download

由于官方限制論壇會員(注冊付費)才可下載,這里提供一個原版下載地址:https://www.lanzous.com/i1l5gad

文件校驗:

  1. 文件: C:\Users\stdy\Desktop\emlog_6.0.0.zip 
  2. 大小: 607725 字節 
  3. 修改時間: 2018年8月6日, 20:53:50 
  4. MD5: 7844FE6FEAE7AF68052DC878B8811FAC 
  5. SHA1: E06A050D2A0AA879DB9F5CFCAA4703B6AC7B8352 
  6. CRC32: 4963E489 

博主的博客就是基于此套博客系統,其實很多圈內大佬都在使用,對于本款CMS的審計文章卻并沒有,筆者就來以此CMS作為PHP代碼審計的封筆之作。

0x01 初步測試

首先,我們得先安裝!安裝成功后的首頁界面:

 

安裝成功

默認后臺登陸地址:./admin/

登陸成功后:

 

后臺界面

閑話一句,感覺6.0比5.3.1版本好看太多了~

安裝過后,我們應該盡可能全面搜集關于此CMS的信息,這對于我們審計代碼有很大的幫助。

所以,分析得到此CMS的大致結構,Emlog是一個 MVC 的設計模式,大致的結構如圖:

 

emlog結構

因此我們主要會分析 admin 和 include 文件夾下的文件。

數據庫表:

 

DATABASE

在根目錄的init.php 文件中

 

報錯等級

報錯等級指定為7:

  1. <?php 
  2. //禁用錯誤報告 
  3. error_reporting(0); 
  4.  
  5. //報告運行時錯誤 
  6. error_reporting(E_ERROR | E_WARNING | E_PARSE); 
  7.  
  8. //報告所有錯誤 
  9. error_reporting(E_ALL); 
  10.  
  11. error_reporting(7); 
  12. /* 
  13. 設置php錯誤檢測級別 
  14. E_ERROR - 致命性運行時錯 (1) 
  15. E_WARNING - 運行時警告(非致命性錯)(2) 
  16. E_PARSE - 編譯時解析錯誤 (4) 
  17. 1+2+4 = 7 
  18. */ 
  19. ?> 

0x02 使用漏洞掃描器

可能有朋友就會說你為什么要使用“漏掃”吶?不是代碼審計嗎?

這里要糾正一下這個觀點,漏掃其實就是一個自動化黑盒測試,在本地環境下,我們不會影響任何的業務。

通過漏掃出的漏洞能夠方便我們快速定位漏洞位置,這樣是一種高效的方式,這也是在團隊里的成員通過漏掃Get了百度的幾個高危漏洞給筆者的啟示。

這里使用了一款重型掃描器 AWVS ,得到的報告如下:

 

結果

不過在本地掃描時,使用的是 XAMPP windows10 PHP5.6的環境,所以導致漏洞報告中很多誤報,漏掃主要掃描出了幾個XSS漏洞和CSRF漏洞

所以我們首先驗證這兩類的漏洞

0x03 文章編輯器儲存性XSS

在后臺的編輯器處,編輯文章./admin/admin_log.php

 

編輯器XSS

成功發布后,來到首頁

 

emlogXSS

進入文章頁后

 

文章頁XSS

都彈窗了,這里大家可能要說沒法兒利用,但是emlog設計了 會員/作者 功能,在emlog中的某些模版中可以前臺注冊會員,會員登錄后可以編輯發表文章,評論等等功能。Emlog官方還提供了文章投稿插件,都是調用了官方默認的Kindeditor編輯器,這個編輯器自帶HTML編輯模式,就算不帶這個模式,攻擊者也可以抓包修改達到攻擊目的。

為什么前臺沒過濾吶?為了文章有支持HTML代碼輸出,所以對于kindeditor的保存輸出內容并沒有轉義。

 

emlog會員/投稿

修復建議:參考其他CMS做好文章內容關鍵詞的檢測,并做好過濾或者轉義

0x04 Uploadify SWF XSS

Emlog使用了 uploadify.swf 的方式上傳文件,文件路徑 /include/lib/js/uploadify/uploadify.swf

構造Payload:http://www.test.com//include/lib/js/uploadify/uploadify.swf?uploadifyID=00%22%29%29;}catch%28e%29{alert%281%29;}//%28%22&movieName=%22])}catch(e){if(!window.x){window.x=1;alert(document.cookie)}}//&.swf

效果,可無視瀏覽器filter:

 

SWF XSS

0x05 反射型XSS

此處的XSS主要發生在cookie上,因為某些頁面如 admin/admin_log,admin/sort.php,admin/link.php頁面需要在表單中添加了hidden屬性的token值,而這個token值直接從用戶的cookie中取得,導致了一個反射型XSS

攔截抓包修改cookie中的token值如下:

 

payload

效果:

 

COOKIE XSS

其次驗證了 CSRF 漏洞,這個是前臺的搜索框的CSRF根本沒什么價值

然后是管理員添加友情鏈接的XSS,經過驗證并不存在,后臺函數會限制字數

然后就是我們開始進行原始的代碼審計工作了,主要借用了Seay代碼審計工具和Rips,這種審計工具主要依靠正則匹配可能導致危險的php函數來作為可能存在漏洞的判斷,半自動化的方式,在一定程度上緩解了代碼審計的壓力。

0x06 基本函數

首先看了一下文件操作相關的函數,發現經常用到 View::getView 這一方法,

在include/lib/view.php 文件中,源碼如下:

  1. <?php 
  2. /** 
  3.  * 視圖控制 
  4.  * @copyright (c) Emlog All Rights Reserved 
  5.  */ 
  6.  
  7. class View { 
  8.  public static function getView($template, $ext = '.php') { 
  9.   if (!is_dir(TEMPLATE_PATH)) { 
  10.    emMsg('當前使用的模板已被刪除或損壞,請登錄后臺更換其他模板。', BLOG_URL . 'admin/template.php'); 
  11.   } 
  12.   return TEMPLATE_PATH . $template . $ext; 
  13.  } 
  14.  
  15.  public static function output() { 
  16.   $content = ob_get_clean(); 
  17.         ob_start(); 
  18.   echo $content; 
  19.   ob_end_flush(); 
  20.   exit; 
  21.  } 

同時作為權限控制的 LoginAuth::checkToken(),在 \include\lib\loginauth.php下約209行開始

  1. /** 
  2. * 生成token,防御CSRF攻擊 
  3. */ 
  4. public static function genToken() { 
  5.  $token_cookie_name = 'EM_TOKENCOOKIE_' . md5(substr(AUTH_KEY, 16, 32) . UID); 
  6.  if (isset($_COOKIE[$token_cookie_name])) { 
  7.   return $_COOKIE[$token_cookie_name]; 
  8.  } else { 
  9.   $token = md5(getRandStr(16)); 
  10.   setcookie($token_cookie_name, $token, 0, '/'); 
  11.   return $token; 
  12.  } 
  13.  
  14. /** 
  15. * 檢查token,防御CSRF攻擊 
  16. */ 
  17. public static function checkToken(){ 
  18.  $token = isset($_REQUEST['token']) ? addslashes($_REQUEST['token']) : ''
  19.  if ($token != self::genToken()) { 
  20.   emMsg('權限不足,token error'); 
  21.  } 

驗證了Rips掃描出的文件包含問題(第一次使用Rips),發現無法復現,因為Rips掃描的時候是以文件形式,并沒有參照程序的嚴格邏輯,導致的誤報!

來到 \admin\admin_log.php 文件,從第78行開始:

  1. //操作文章 
  2. if ($action == 'operate_log') { 
  3.     $operate = isset($_REQUEST['operate']) ? $_REQUEST['operate'] : ''
  4.     $pid = isset($_POST['pid']) ? $_POST['pid'] : ''
  5.     $logs = isset($_POST['blog']) ? array_map('intval', $_POST['blog']) : array(); 
  6.     $sort = isset($_POST['sort']) ? intval($_POST['sort']) : ''
  7.     $author = isset($_POST['author']) ? intval($_POST['author']) : ''
  8.     $gid = isset($_GET['gid']) ? intval($_GET['gid']) : ''
  9.  
  10.     LoginAuth::checkToken(); 
  11.  
  12.     if ($operate == '') { 
  13.         emDirect("./admin_log.php?pid=$pid&error_b=1"); 
  14.     } 
  15.     if (empty($logs) && empty($gid)) { 
  16.         emDirect("./admin_log.php?pid=$pid&error_a=1"); 
  17.     } 
  18.  
  19.     switch ($operate) { 
  20.         case 'del'
  21.             foreach ($logs as $val) 
  22.             { 
  23.                 doAction('before_del_log', $val); 
  24.                 $Log_Model->deleteLog($val); 
  25.                 doAction('del_log', $val); 
  26.             } 
  27.             $CACHE->updateCache(); 
  28.             if ($pid == 'draft'
  29.             { 
  30.                 emDirect("./admin_log.php?pid=draft&active_del=1"); 
  31.             } else
  32.                 emDirect("./admin_log.php?active_del=1"); 
  33.             } 
  34.             break; 
  35.         case 'top'
  36.             foreach ($logs as $val) 
  37.             { 
  38.                 $Log_Model->updateLog(array('top'=>'y'), $val); 
  39.             } 
  40.             emDirect("./admin_log.php?active_up=1"); 
  41.             break; 
  42.         case 'sortop'
  43.             foreach ($logs as $val) 
  44.             { 
  45.                 $Log_Model->updateLog(array('sortop'=>'y'), $val); 
  46.             } 
  47.             emDirect("./admin_log.php?active_up=1"); 
  48.             break; 
  49.         case 'notop'
  50.             foreach ($logs as $val) 
  51.             { 
  52.                 $Log_Model->updateLog(array('top'=>'n''sortop'=>'n'), $val); 
  53.             } 
  54.             emDirect("./admin_log.php?active_down=1"); 
  55.             break; 
  56.         case 'hide'
  57.             foreach ($logs as $val) 
  58.             { 
  59.                 $Log_Model->hideSwitch($val, 'y'); 
  60.             } 
  61.             $CACHE->updateCache(); 
  62.             emDirect("./admin_log.php?active_hide=1"); 
  63.             break; 
  64.  
  65.         ...//中間的代碼要驗證管理身份,故省略 
  66.  
  67.         case 'uncheck'
  68.             if (ROLE != ROLE_ADMIN) 
  69.             { 
  70.                 emMsg('權限不足!','./'); 
  71.             } 
  72.             $Log_Model->checkSwitch($gid, 'n'); 
  73.             $CACHE->updateCache(); 
  74.             emDirect("./admin_log.php?active_unck=1"); 
  75.             break; 
  76.     } 

那么我們嘗試越權刪除文章http://www.test.com/admin/admin_log.php?action=operate_log&operate=del&blog=29&token=994132a26661c8c244a91063c4701a7e 失敗了提示權限不足,來到\include\model\log_model.php 發現

  1. /** 
  2.  * 刪除文章 
  3.  * 
  4.  * @param int $blogId 
  5.  */ 
  6. function deleteLog($blogId) { 
  7.  $author = ROLE == ROLE_ADMIN ? '' : 'and author=' . UID; 
  8.  $this->db->query("DELETE FROM " . DB_PREFIX . "blog where gid=$blogId $author");  //這里和上一句限制了作者只能刪除自己的文章 
  9.  if ($this->db->affected_rows() < 1) { 
  10.   emMsg('權限不足!''./'); 
  11.  } 
  12.  // 評論 
  13.  $this->db->query("DELETE FROM " . DB_PREFIX . "comment where gid=$blogId"); 
  14.  // 標簽 
  15.  $this->db->query("UPDATE " . DB_PREFIX . "tag SET gid= REPLACE(gid,',$blogId,',',') WHERE gid LIKE '%" . $blogId . "%' "); 
  16.  $this->db->query("DELETE FROM " . DB_PREFIX . "tag WHERE gid=',' "); 
  17.  // 附件 
  18.  $query = $this->db->query("select filepath from " . DB_PREFIX . "attachment where blogid=$blogId "); 
  19.  while ($attach = $this->db->fetch_array($query)) { 
  20.   if (file_exists($attach['filepath'])) { 
  21.    $fpath = str_replace('thum-''', $attach['filepath']); 
  22.    if ($fpath != $attach['filepath']) { 
  23.     @unlink($fpath); 
  24.    } 
  25.    @unlink($attach['filepath']); 
  26.   } 
  27.  } 
  28.  $this->db->query("DELETE FROM " . DB_PREFIX . "attachment where blogid=$blogId"); 

這個越權漏洞不存在,同時看了下面的函數判斷也是做了類似的處理

到這里其實我們對于整個 CMS 的架構已經較為熟悉了,基本能根據對應函數功能,直接手動找到對應的函數位置。

令人傷心的是,通過 Rips 代碼審計工具得到的結果,一個都沒復現成功...

0x07 Seay輔助審計

相信很多人都知道法師的這款工具,主要還是因為中文,用著方便,但是完全依靠正則的方式去匹配函數,只能發現那些函數直接的控制漏洞,邏輯漏洞有時候可以根據逆推可以發現,但這種情況很少。

使用這款工具掃描出來共120個可能的情況(根據經驗98%以上都是沒法復現的),然后一個個排查,有的例如SQL語句反單引號這樣的,很容易就可以判斷給忽略,就不需要考慮。

在 /admin/store.php 看到這樣一串代碼:

 

store.php

這里我的思考是,如果在emlog官網有URL跳轉鏈接的話,那么就可以構造下載遠程任意的文件到網站,但是測試了官網沒有跳轉鏈接,那么我們嘗試下載別的插件(鏈接跳轉等),或者有黑客精心構造了一個插件或者模版,然后再利用,這也算是一個可行的方案。

此處需要管理員權限,作為代碼審計的一個參考思路,不是要發現什么0day,而是希望大家能夠在代碼審計方面有所收獲。

(1). SQL注入

對于SQL注入,Seay工具一直都沒準過,這里筆者推薦方式,使用全局搜索 $_GET[ 或 $_PSOT[,然后看看是否代入了SQL查詢,然后一一驗證。

然后我發現了這樣一個沒有過濾IP參數

 

IP參數

然后到 admin/comment.php 中查看

 

comment.php

再看 delCommentByIp($ip) 函數

 

IP參數sql

由此我們可以確定了SQL注入的存在

驗證如下:

 

SQL注入

(2).一個CSRF+任意文件刪除

$_GET[]型分析完以后,就尋找$_POST[]的,然后在admin/data.php文件中找到了如下代碼

 

data.php

這里我們發現,并沒有驗證toknen,那么可以構造csrf頁面,這里筆者就不演示了,直接BURP驗證一下任意文件刪除吧,關于CSRF,只要沒有調用上面基礎函數部分說到的 LoginAuth::checkToken() 方法的,都存在CSRF

 

CSRF+任意刪除

這里就成功刪除了文件

(3).TAG SQL注入

在POST參數中發現此處并沒有過濾,同時在 deleteTag() 函數中,代入了SQL查詢,因此又是一個SQL注入

 

tag sql

來看deleteTag()函數:

 

deletetag

又調用了getBlogIdsFromTagId()函數,同樣沒有過濾

 

getBlogIdsFromTagId

因此使用抓包驗證一下:

 

驗證

但是其他語句利用時候并沒有回顯,筆者不知道什么原因,沒仔細探究,但是可以采用時間盲注的方式。

至此,利用工具的半自動化審計已經結束,下面準備手工測試

0x08 手工測試

手工測試也不是單純的翻文件,應當以灰盒測試為主導,從邏輯、權限、敏感信息等方面入手

(1).后臺登陸存在暴力破解風險

在這里,我之前提到過的驗證碼未及時銷毀的歷史問題還存在,此處不再詳細敘述,請參考https://blog.csdn.net/dyboy2017/article/details/78433748

(2).報錯信息導致物理路徑泄漏

大家不要以為這是小事情,當sql注入存在的時候,我們有機會是可以直接寫shell文件,安全無小事

一個低權限的方式,在游客的條件下測試一下

 

物理路徑

payload:http://www.test.com/admin/attachment.php?action[]=

原因是:addslashes() expects parameter 1

(3).Cookie可計算

在include/lib/loginauth.php中134行開始

  1. /** 
  2.  * 寫用于登錄驗證cookie 
  3.  * 
  4.  * @param int $user_id User ID 
  5.  * @param bool $remember Whether to remember the user or not 
  6.  */ 
  7. public static function setAuthCookie($user_login, $ispersis = false) { 
  8.  if ($ispersis) { 
  9.   $expiration  = time() + 3600 * 24 * 30 * 12; 
  10.  } else { 
  11.   $expiration = null
  12.  } 
  13.  $auth_cookie_name = AUTH_COOKIE_NAME; 
  14.  $auth_cookie = self::generateAuthCookie($user_login, $expiration); 
  15.  setcookie($auth_cookie_name, $auth_cookie, $expiration,'/'); 
  16.  
  17. /** 
  18.  * 生成登錄驗證cookie 
  19.  * 
  20.  * @param int $user_id user login 
  21.  * @param int $expiration Cookie expiration in seconds 
  22.  * @return string Authentication cookie contents 
  23.  */ 
  24. private static function generateAuthCookie($user_login, $expiration) { 
  25.  $key = self::emHash($user_login . '|' . $expiration); 
  26.  $hash = hash_hmac('md5', $user_login . '|' . $expiration, $key); 
  27.  $cookie = $user_login . '|' . $expiration . '|' . $hash; 
  28.  return $cookie; 

可以看到此處的cookie都可以直接計算得到,只需要知道根目錄下config.php中的

  1. //auth key 
  2. define('AUTH_KEY','dx1&CH^En86GZnxd9CLO7GwC0Q5eYHKM450f598bbd148b6a62f7d263623e31c3'); 
  3. //cookie name 
  4. define('AUTH_COOKIE_NAME','EM_AUTHCOOKIE_VzfVniPWDqd1LM3BFocnrcjpAGH4lUbz'); 

即可。

(4).側邊欄存儲性XSS

為了同樣是為了支持HTML代碼的輸出,沒有轉義對應的腳本代碼標簽,導致了存儲性的XSS存在

側邊欄XSS

0x09 Getshell

(1).SQL注入拿到shell

如上所講有SQL注入的存在,同時可以獲取到物理路徑,那么就可以直接寫Shell

(2).后臺插件上傳zip

因為后臺可以直接上傳本地zip文件,這里我們去官網下載一個插件,同時把我們的shell文件(比如dyboy.php)加入zip,上傳安裝這個插件就可以了,然后shell地址為:http://www.test.com/content/plugins/插件名/dyboy.php

(3).后臺模版上傳zip

和插件同樣的原理,這里的shell地址為:http://www.test.com/content/templates/模版名/dyboy.php

(4).備份文件拿shell

后臺的數據功能處,先備份一個,然后下載到本地,加入SELECT "" into outfile 'D:\\Server\\htdocs\\safe\\dyboy.php';

然后導入備份恢復本地數據即可

這樣就在網站個目錄生成了一個dyboy.php的shell

0x0A 總結

EMLOG是一個非常小巧輕快的博客系統,運行占用資源非常低,所以非常適合博主用作博客用途,其實只要不開啟會員功能,沒有弱口令就沒有什么大的威脅。以此文章作為PHP代碼審計拋磚引玉,文章所述方法同樣適用于其他的CMS代碼審計和分析。

 

責任編輯:姜華 來源: DYBOY
相關推薦

2013-06-05 09:51:04

2013-03-25 11:51:42

php漏洞代碼審計php

2021-05-12 08:13:31

Zabbix 5.2php-fpm監控

2015-07-31 09:27:56

安全編碼代碼審計Python

2012-03-13 09:54:42

JavaScript

2020-12-02 08:30:27

Java Synchroniz并發

2009-10-26 13:45:39

linux Makef

2010-03-25 17:20:00

CentOS入門

2016-10-25 08:49:34

數據通信行業技能圖

2020-09-27 10:55:10

代碼Java字符串

2017-05-05 09:45:13

編程語言學習代碼

2015-06-03 09:07:46

白盒審計PHPPHP自動化審計

2020-10-25 19:58:04

Pythonic代碼語言

2019-10-17 11:42:18

前端程序員算法

2019-07-03 15:14:00

Oracle存儲結構

2022-12-06 08:29:01

2022-12-01 09:12:49

CodeQL自動化審計

2011-06-15 16:58:26

PHP

2013-06-19 09:27:51

2011-06-16 20:05:41

SEO
點贊
收藏

51CTO技術棧公眾號

国产精品一区二区精品| 欧美捆绑视频| 亚洲精品视频啊美女在线直播| 亚洲国产精品成人精品| 狠狠热免费视频| 伊人精品影院| 国产三级欧美三级日产三级99 | 无遮挡爽大片在线观看视频| 国产欧美日本一区二区三区| 成人免费视频视频在| 特级西西444www大胆免费看| 国内揄拍国内精品久久| 一区二区欧美日韩视频| 精品久久久久久无码人妻| 欧美韩国亚洲| 欧美日韩免费看| 日本特级黄色大片| 欧洲天堂在线观看| 粉嫩高潮美女一区二区三区| 国产精品私拍pans大尺度在线| 久久9999久久免费精品国产| 天天做天天爱天天综合网| 精品亚洲一区二区三区在线观看 | 中文字幕乱码人妻无码久久| 欧美福利一区| 日韩在线视频导航| 中文字幕免费高清| 欧美日韩看看2015永久免费| 在线电影一区二区三区| 国产高潮免费视频| 成人欧美大片| 黄色成人在线播放| 日韩成人三级视频| 最新国产露脸在线观看| 国产精品青草久久| 日韩精品一区二区三区丰满| 免费精品视频| 色94色欧美sute亚洲13| 日韩小视频在线播放| 搞黄网站在线观看| 中文字幕一区二区在线观看 | 精品免费在线| 亚洲欧美精品一区| 欧洲一级黄色片| 狠狠久久伊人| 亚洲国产精品成人av| www.四虎精品| 999在线精品| 日韩一级完整毛片| 午夜影院免费版| 大胆国模一区二区三区| 91精品国产高清一区二区三区蜜臀 | 国产免费一区二区三区网站免费| 另类ts人妖一区二区三区| 精品免费99久久| 年下总裁被打光屁股sp | 欧洲成人一区二区| 欧洲毛片在线| 国产三级一区二区| 亚洲精品欧洲精品| 黄色在线论坛| 亚洲综合一区二区| 国产精品入口芒果| 三级在线观看视频| 在线观看日韩精品| 中文字幕免费高清在线| 99国内精品久久久久| 91精品欧美综合在线观看最新| 国产福利精品一区二区三区| 精品国产一区二| 精品成人一区二区三区四区| 亚洲一区二区三区四区av| 欧美精品密入口播放| 亚洲午夜女主播在线直播| 精品一区二区三孕妇视频| 91麻豆精品国产91久久久平台| 久久久91精品| 国产成人精品av久久| 欧美亚洲一区二区三区| 国产精品一区电影| 午夜精品小视频| 91色综合久久久久婷婷| 亚洲高清不卡一区| 丝袜在线观看| 日韩欧美精品在线观看| 一女二男3p波多野结衣| jizz性欧美23| 亚洲天堂免费在线| a在线视频播放观看免费观看| 狠狠综合久久| 国产精品久久久久久网站| av在线亚洲天堂| 91蝌蚪porny| 正在播放一区| 性欧美freesex顶级少妇| 欧美日韩视频在线观看一区二区三区| 午夜诱惑痒痒网| 五月国产精品| 欧美日韩xxxxx| 狠狠人妻久久久久久| 狠狠色综合日日| 精品在线一区| av网址在线免费观看| 午夜精品福利在线| 久久久久久久久久一区二区| 欧美日韩另类图片| 精品国产一区av| 成人在线免费看视频| 国内一区二区在线| 蜜桃传媒视频第一区入口在线看| 福利在线视频网站| 日本韩国精品一区二区在线观看| 国产精久久久久| 日韩一区二区在线| 2019中文在线观看| 亚洲国产精品久久久久久久| 国产精品三级在线观看| 欧美日韩一道本| 一级毛片精品毛片| www.久久久久久.com| 欧美超碰在线观看| 99久久国产综合精品麻豆| 国内外成人激情免费视频| 97人人做人人爽香蕉精品| 亚洲黄色www网站| 精品爆乳一区二区三区无码av| 麻豆一区二区99久久久久| 久久精品国产精品青草色艺| 免费不卡av| 日韩一区二区三区观看| 欧美手机在线观看| 久久国产免费看| 视频一区免费观看| 中文字幕av一区二区三区佐山爱| 日韩av有码在线| 国产亚洲欧美久久久久| 国产精品一区二区果冻传媒| 中文网丁香综合网| 成人黄色毛片| 中文字幕亚洲字幕| 中文人妻熟女乱又乱精品| 久久久久久综合| 无码aⅴ精品一区二区三区浪潮| 国产精品香蕉| 性色av一区二区三区免费| 亚洲风情第一页| 亚洲第一狼人社区| 精品国产人妻一区二区三区| 激情欧美日韩| 国产伦精品一区二区三区照片 | 牲欧美videos精品| 97成人超碰免| 麻豆app在线观看| 欧美伊人久久久久久久久影院| 91网站免费视频| 蜜桃一区二区三区在线| 在线观看成人av电影| 精品中文在线| 欧美激情伊人电影| 丝袜视频国产在线播放| 日本高清无吗v一区| 亚洲一级理论片| 国产精品亚洲一区二区三区妖精| 91成人综合网| 妖精视频一区二区三区| 国产成人jvid在线播放| 无遮挡动作视频在线观看免费入口| 欧美视频一区二区在线观看| 亚洲视频重口味| 国产精品一二二区| 成人午夜精品久久久久久久蜜臀| 亚州国产精品| 国产精品久久久久久五月尺| 成人ww免费完整版在线观看| 亚洲国产精品成人av| 亚洲色成人www永久网站| 一区在线播放视频| 野战少妇38p| 麻豆精品网站| 国产精品无码乱伦| 国产66精品| 国产精品久久久精品| 久草中文在线观看| 亚洲精品久久久久中文字幕欢迎你 | 1024在线看片你懂得| 亚洲国产古装精品网站| 中国a一片一级一片| 亚洲综合色婷婷| 性少妇bbw张开| 国产一区二区三区在线观看精品| 我的公把我弄高潮了视频| 国语产色综合| 国产乱码精品一区二区三区中文| 播放一区二区| 国内精品久久久久影院 日本资源| 成人性生交大片免费看午夜 | 国产精品亚洲一区二区无码| 久久资源在线| 成人国产在线看| 精品美女久久| 国产免费一区| 成人豆花视频| 国产成人小视频在线观看| 国产黄色大片在线观看| 中文亚洲视频在线| 日本aaa在线观看| 日韩欧美国产高清| 亚洲视频一区二区三区四区| 欧美日韩国产在线看| 国产成人av免费在线观看| 久久午夜国产精品| 亚洲精品激情视频| 国产一区二区三区免费看 | 亚洲欧美日韩区| 亚洲AV无码国产精品午夜字幕 | 天堂成人在线视频| 9191久久久久久久久久久| 日本久久综合网| 午夜一区二区三区视频| 日韩欧美综合视频| 欧美韩国日本综合| 精品夜夜澡人妻无码av| 成人免费高清在线| 手机看片国产精品| 久久99精品久久久久久动态图 | 国产一区二区三区观看| wwwwww.色| 日韩制服丝袜av| 每日在线更新av| 日韩一区二区免费看| 免费观看亚洲视频| 欧美激情无毛| 亚洲av首页在线| 欧美一区不卡| av磁力番号网| 亚洲女同中文字幕| 日韩精品第1页| 欧美一区网站| 中国女人做爰视频| 亚洲精品国产成人影院| 一本一生久久a久久精品综合蜜 | 97久久超碰国产精品| 国产精品偷伦视频免费观看了| 国产专区欧美精品| aaaaaaaa毛片| 国产电影精品久久禁18| 师生出轨h灌满了1v1| 国产成+人+日韩+欧美+亚洲| 在线观看你懂的视频| 国产91精品露脸国语对白| 黑人巨大猛交丰满少妇| 国产+成+人+亚洲欧洲自线| 成人做爰69片免费| 成人av网址在线观看| 日本69式三人交| 久久婷婷综合激情| 一区二区精品免费| 国产精品盗摄一区二区三区| 黄色香蕉视频在线观看| 亚洲午夜精品久久久久久久久| 久久精品国产亚洲av香蕉| 天天色 色综合| 亚洲精品中文字幕乱码三区91| 91成人网在线| 国产一区二区在线播放视频| 日韩视频一区二区三区在线播放| 噜噜噜久久,亚洲精品国产品| 亚洲韩国日本中文字幕| 福利视频在线播放| 久久综合电影一区| 2018av在线| 国产精品露脸自拍| 国产在线不卡一区二区三区| 国产一区二区三区四区五区在线| 在线日韩网站| www亚洲国产| 99riav1国产精品视频| 国产精品乱码久久久久| 日本伊人色综合网| www.欧美com| 久久精品在线观看| 国产大学生自拍| 欧美日韩人人澡狠狠躁视频| 在线免费av片| 精品福利视频一区二区三区| 国产毛片在线看| 欧美成人中文字幕在线| 综合日韩av| 亚洲japanese制服美女| 国产精品一区二区av交换| 在线视频91| 亚洲免费网站| 五月天婷婷在线观看视频| 99精品热视频| 九九精品视频免费| 色哟哟国产精品免费观看| av免费观看在线| 亚洲欧美日韩视频一区| 天堂av最新在线| 国产精品久久久久免费a∨大胸| 一区二区亚洲视频| 亚洲精品久久区二区三区蜜桃臀| 伊人精品视频| 亚洲天堂网2018| 国产亚洲美州欧州综合国| 黄色一级视频免费| 欧美日韩免费一区二区三区| 香蕉久久国产av一区二区| 久久综合网hezyo| 精品三区视频| 蜜桃传媒视频第一区入口在线看| 国精品一区二区三区| 在线观看免费av网址| 久久久影视传媒| 国产亚洲精品久久久久久打不开 | 欧美残忍xxxx极端| 日韩久久一级片| 成人免费av在线| 免费三片在线播放| 欧美一区二区三区四区久久| av电影在线观看网址| 热久久免费视频精品| 久久影院资源站| 国产一区二区片| 国产麻豆成人精品| 久久人妻无码aⅴ毛片a片app | 久久中文视频| 冲田杏梨av在线| 国产肉丝袜一区二区| www亚洲视频| 日韩精品极品视频免费观看| 51精品在线| 国产精品一区二区三区不卡| 欧美日韩三级| 苍井空张开腿实干12次| 夜夜嗨av一区二区三区四季av | 成年女人18级毛片毛片免费| 国产成人综合亚洲网站| 人妻人人澡人人添人人爽| 欧美日韩一区二区三区高清| av在线播放网站| 国产精品自产拍在线观看中文| 日韩在线欧美| www.成人黄色| 亚洲免费在线视频| 亚洲精品成av人片天堂无码| 欧美精品一二区| 一区二区三区视频播放| a级免费在线观看| 99久久久精品| 日韩欧美在线观看免费| 中文日韩在线视频| 国产精品日本一区二区不卡视频| 欧美 国产 精品| 国产亚洲欧美精品久久久www| 欧美日韩国产成人在线91| 91在线视频| 2014国产精品| 亚洲欧洲日本一区二区三区| 精品国产av色一区二区深夜久久 | 久久久精品综合| 中文字幕日日夜夜| 九九精品在线视频| 国产精品一区二区中文字幕| 97在线免费公开视频| 国产精品网站导航| 精品国产999久久久免费| 欧美激情一区二区三区在线视频观看 | 欧美在线你懂的| 午夜免费福利在线观看| 亚洲综合成人婷婷小说| 精品二区视频| 精品国产无码在线观看| 欧美日韩国产另类不卡| sm国产在线调教视频| 精品无码久久久久国产| 三级亚洲高清视频| 中文字幕另类日韩欧美亚洲嫩草| 亚洲成人a**站| 少妇精品视频一区二区免费看| 一区二区精品在线| 成人免费毛片aaaaa**| 久久午夜鲁丝片| 欧美日韩国产二区| 精品中文一区| 97超碰人人看| 色老综合老女人久久久| 国产在线看片| 久久久久久久久久久久久久一区 | 女人黄色一级片| 日韩精品一区二区三区蜜臀 | 色菇凉天天综合网| 成年人网站在线| 欧美激情一区二区三区在线视频| 久久精品av麻豆的观看方式| 在线观看 中文字幕| 精品激情国产视频| 蜜乳av综合| 日本在线不卡一区二区| 欧美日韩一卡二卡|