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

使用 gosec 檢查 Go 代碼中的安全問題

安全 應用安全
像其他語言一樣,Go 也有它的長處和短處(如安全缺陷)。這些缺陷可能會因為語言本身的缺陷加上程序員編碼不當而產生,例如,C 代碼中的內存安全問題。

Go 語言 寫的代碼越來越常見,尤其是在容器、Kubernetes 或云生態相關的開發中。Docker 是最早采用 Golang 的項目之一,隨后是 Kubernetes,之后大量的新項目在眾多編程語言中選擇了 Go。

[[344882]]

像其他語言一樣,Go 也有它的長處和短處(如安全缺陷)。這些缺陷可能會因為語言本身的缺陷加上程序員編碼不當而產生,例如,C 代碼中的內存安全問題。

無論它們出現的原因是什么,安全問題都應該在開發過程的早期修復,以免在封裝好的軟件中出現。幸運的是,靜態分析工具可以幫你以更可重復的方式處理這些問題。靜態分析工具通過解析用某種編程語言寫的代碼來找到問題。

這類工具中很多被稱為 linter。傳統意義上,linter 更注重的是檢查代碼中編碼問題、bug、代碼風格之類的問題,它們可能不會發現代碼中的安全問題。例如, Coverity 是一個很流行的工具,它可以幫助尋找 C/C++ 代碼中的問題。然而,也有一些工具專門用來檢查源碼中的安全問題。例如, Bandit 可以檢查 Python 代碼中的安全缺陷。而 gosec 則用來搜尋 Go 源碼中的安全缺陷。gosec 通過掃描 Go 的 AST( 抽象語法樹(abstract syntax tree))來檢查源碼中的安全問題。

開始使用 gosec

在開始學習和使用 gosec 之前,你需要準備一個 Go 語言寫的項目。有這么多開源軟件,我相信這不是問題。你可以在 GitHub 的 熱門 Golang 倉庫 中找一個。

本文中,我隨機選了 Docker CE 項目,但你可以選擇任意的 Go 項目。

安裝 Go 和 gosec

如果你還沒安裝 Go,你可以先從倉庫中拉取下來。如果你用的是 Fedora 或其他基于 RPM 的 Linux 發行版本:

  1. $ dnf install golang.x86_64 

如果你用的是其他操作系統,請參照 Golang 安裝 頁面。

使用 version 參數來驗證 Go 是否安裝成功:

  1. $ go version 
  2. go version go1.14.6 linux/amd64 

運行 go get 命令就可以輕松地安裝 gosec:

  1. $ go get github.com/securego/gosec/cmd/gosec 

上面這行命令會從 GitHub 下載 gosec 的源碼,編譯并安裝到指定位置。在倉庫的 README 中你還可以看到 安裝該工具的其他方法

gosec 的源碼會被下載到 $GOPATH 的位置,編譯出的二進制文件會被安裝到你系統上設置的 bin 目錄下。你可以運行下面的命令來查看 $GOPATH 和 $GOBIN 目錄:

  1. $ go env | grep GOBIN 
  2. GOBIN="/root/go/gobin" 
  3. $ go env | grep GOPATH 
  4. GOPATH="/root/go" 

如果 go get 命令執行成功,那么 gosec 二進制應該就可以使用了:

  1. $ ls -l ~/go/bin/ 
  2. total 9260 
  3. -rwxr-xr-x. 1 root root 9482175 Aug 20 04:17 gosec 

你可以把 $GOPATH 下的 bin 目錄添加到 $PATH 中。這樣你就可以像使用系統上的其他命令一樣來使用 gosec 命令行工具(CLI)了。

  1. $ which gosec 
  2. /root/go/bin/gosec 

使用 gosec 命令行工具的 -help 選項來看看運行是否符合預期:

  1. $ gosec -help 
  2. gosec - Golang security checker 
  3. gosec analyzes Go source code to look for common programming mistakes that 
  4. can lead to security problems. 
  5. VERSION: dev 
  6. GIT TAG: 
  7. BUILD DATE: 
  8. USAGE: 

之后,創建一個目錄,把源碼下載到這個目錄作為實例項目(本例中,我用的是 Docker CE):

  1. $ mkdir gosec-demo 
  2. $ cd gosec-demo/ 
  3. $ pwd 
  4. /root/gosec-demo 
  5. $ git clone https://github.com/docker/docker-ce.git 
  6. Cloning into 'docker-ce'... 
  7. remote: Enumerating objects: 1271, done. 
  8. remote: Counting objects: 100% (1271/1271), done. 
  9. remote: Compressing objects: 100% (722/722), done. 
  10. remote: Total 431003 (delta 384), reused 981 (delta 318), pack-reused 429732 
  11. Receiving objects: 100% (431003/431003), 166.84 MiB | 28.94 MiB/s, done. 
  12. Resolving deltas: 100% (221338/221338), done. 
  13. Updating files: 100% (10861/10861), done. 

代碼統計工具(本例中用的是 cloc)顯示這個項目大部分是用 Go 寫的,恰好迎合了 gosec 的功能。

  1. $ ./cloc /root/gosec-demo/docker-ce/ 
  2.    10771 text files. 
  3.     8724 unique files.                                           
  4.     2560 files ignored. 
  5. ----------------------------------------------------------------------------------- 
  6. Language                         files          blank        comment           code 
  7. ----------------------------------------------------------------------------------- 
  8. Go                                7222         190785         230478        1574580 
  9. YAML                                37           4831            817         156762 
  10. Markdown                           529          21422              0          67893 
  11. Protocol Buffers                   149           5014          16562          10071 

使用默認選項運行 gosec

在 Docker CE 項目中使用默認選項運行 gosec,執行 gosec ./... 命令。屏幕上會有很多輸出內容。在末尾你會看到一個簡短的 “Summary”,列出了瀏覽的文件數、所有文件的總行數,以及源碼中發現的問題數。

  1. $ pwd 
  2. /root/gosec-demo/docker-ce 
  3. $ time gosec ./... 
  4. [gosec] 2020/08/20 04:44:15 Including rules: default 
  5. [gosec] 2020/08/20 04:44:15 Excluding rules: default 
  6. [gosec] 2020/08/20 04:44:15 Import directory: /root/gosec-demo/docker-ce/components/engine/opts 
  7. [gosec] 2020/08/20 04:44:17 Checking package: opts 
  8. [gosec] 2020/08/20 04:44:17 Checking file: /root/gosec-demo/docker-ce/components/engine/opts/address_pools.go 
  9. [gosec] 2020/08/20 04:44:17 Checking file: /root/gosec-demo/docker-ce/components/engine/opts/env.go 
  10. [gosec] 2020/08/20 04:44:17 Checking file: /root/gosec-demo/docker-ce/components/engine/opts/hosts.go 
  11. # End of gosec run 
  12. Summary: 
  13.    Files: 1278 
  14.    Lines: 173979 
  15.    Nosec: 4 
  16.   Issues: 644 
  17. real    0m52.019s 
  18. user    0m37.284s 
  19. sys     0m12.734s 

滾動屏幕你會看到不同顏色高亮的行:紅色表示需要盡快查看的高優先級問題,黃色表示中優先級的問題。

關于誤判

在開始檢查代碼之前,我想先分享幾條基本原則。默認情況下,靜態檢查工具會基于一系列的規則對測試代碼進行分析,并報告出它們發現的所有問題。這是否意味著工具報出來的每一個問題都需要修復?非也。這個問題最好的解答者是設計和開發這個軟件的人。他們最熟悉代碼,更重要的是,他們了解軟件會在什么環境下部署以及會被怎樣使用。

這個知識點對于判定工具標記出來的某段代碼到底是不是安全缺陷至關重要。隨著工作時間和經驗的積累,你會慢慢學會怎樣讓靜態分析工具忽略非安全缺陷,使報告內容的可執行性更高。因此,要判定 gosec 報出來的某個問題是否需要修復,讓一名有經驗的開發者對源碼做人工審計會是比較好的辦法。

高優先級問題

從輸出內容看,gosec 發現了 Docker CE 的一個高優先級問題,它使用的是低版本的 TLS( 傳輸層安全(Transport Layer Security)())。無論什么時候,使用軟件和庫的最新版本都是確保它更新及時、沒有安全問題的最好的方法。

  1. [/root/gosec-demo/docker-ce/components/engine/daemon/logger/splunk/splunk.go:173] - G402 (CWE-295): TLS MinVersion too low. (Confidence: HIGH, Severity: HIGH) 
  2.     172: 
  3.   > 173:        tlsConfig := &tls.Config{} 
  4.     174: 

它還發現了一個弱隨機數生成器。它是不是一個安全缺陷,取決于生成的隨機數的使用方式。

  1. [/root/gosec-demo/docker-ce/components/engine/pkg/namesgenerator/names-generator.go:843] - G404 (CWE-338): Use of weak random number generator (math/rand instead of crypto/rand) (Confidence: MEDIUM, Severity: HIGH) 
  2.     842: begin: 
  3.   > 843:        name :fmt.Sprintf("%s_%s", left[rand.Intn(len(left))], right[rand.Intn(len(right))]) 
  4.     844:        if name == "boring_wozniak" /* Steve Wozniak is not boring */ { 

中優先級問題

這個工具還發現了一些中優先級問題。它標記了一個通過與 tar 相關的解壓炸彈這種方式實現的潛在的 DoS 威脅,這種方式可能會被惡意的攻擊者利用。

  1. [/root/gosec-demo/docker-ce/components/engine/pkg/archive/copy.go:357] - G110 (CWE-409): Potential DoS vulnerability via decompression bomb (Confidence: MEDIUM, Severity: MEDIUM) 
  2.     356: 
  3.   > 357:                        if _, err = io.Copy(rebasedTar, srcTar); err != nil { 
  4.     358:                                w.CloseWithError(err) 

它還發現了一個通過變量訪問文件的問題。如果惡意使用者能訪問這個變量,那么他們就可以改變變量的值去讀其他文件。

  1. [/root/gosec-demo/docker-ce/components/cli/cli/context/tlsdata.go:80] - G304 (CWE-22): Potential file inclusion via variable (Confidence: HIGH, Severity: MEDIUM) 
  2.     79:         if caPath != "" { 
  3.   > 80:                 if ca, err = ioutil.ReadFile(caPath); err != nil { 
  4.     81:                         return nil, err 

文件和目錄通常是操作系統安全的最基礎的元素。這里,gosec 報出了一個可能需要你檢查目錄的權限是否安全的問題。

  1. [/root/gosec-demo/docker-ce/components/engine/contrib/apparmor/main.go:41] - G301 (CWE-276): Expect directory permissions to be 0750 or less (Confidence: HIGH, Severity: MEDIUM) 
  2.     40:         // make sure /etc/apparmor.d exists 
  3.   > 41:         if err :os.MkdirAll(path.Dir(apparmorProfilePath), 0755); err != nil { 
  4.     42:                 log.Fatal(err) 

你經常需要在源碼中啟動命令行工具。Go 使用內建的 exec 庫來實現。仔細地分析用來調用這些工具的變量,就能發現安全缺陷。

  1. [/root/gosec-demo/docker-ce/components/engine/testutil/fakestorage/fixtures.go:59] - G204 (CWE-78): Subprocess launched with variable (Confidence: HIGH, Severity: MEDIUM) 
  2.     58: 
  3.   > 59:              cmd :exec.Command(goCmd, "build", "-o", filepath.Join(tmp, "httpserver"), "github.com/docker/docker/contrib/httpserver") 
  4.     60:                 cmd.Env = append(os.Environ(), []string{ 

低優先級問題

在這個輸出中,gosec 報出了一個 unsafe 調用相關的低優先級問題,這個調用會繞開 Go 提供的內存保護。再仔細分析下你調用 unsafe 的方式,看看是否有被別人利用的可能性。

  1. [/root/gosec-demo/docker-ce/components/engine/pkg/archive/changes_linux.go:264] - G103 (CWE-242): Use of unsafe calls should be audited (Confidence: HIGH, Severity: LOW) 
  2.     263:        for len(buf) > 0 { 
  3.   > 264:                dirent := (*unix.Dirent)(unsafe.Pointer(&buf[0])) 
  4.     265:                bufbuf = buf[dirent.Reclen:] 
  5. [/root/gosec-demo/docker-ce/components/engine/pkg/devicemapper/devmapper_wrapper.go:88] - G103 (CWE-242): Use of unsafe calls should be audited (Confidence: HIGH, Severity: LOW) 
  6.     87: func free(p *C.char) { 
  7.   > 88:         C.free(unsafe.Pointer(p)) 
  8.     89: } 

它還標記了源碼中未處理的錯誤。源碼中出現的錯誤你都應該處理。

  1. [/root/gosec-demo/docker-ce/components/cli/cli/command/image/build/context.go:172] - G104 (CWE-703): Errors unhandled. (Confidence: HIGH, Severity: LOW) 
  2.     171:                err :tar.Close() 
  3.   > 172:                os.RemoveAll(dockerfileDir) 
  4.     173:                return err 

自定義 gosec 掃描

使用 gosec 的默認選項會帶來很多的問題。然而,經過人工審計,隨著時間推移你會掌握哪些問題是不需要標記的。你可以自己指定排除和包含哪些測試。

我上面提到過,gosec 是基于一系列的規則從 Go 源碼中查找問題的。下面是它使用的完整的 規則 列表:

  • G101:查找硬編碼憑證
  • G102:綁定到所有接口
  • G103:審計 unsafe 塊的使用
  • G104:審計未檢查的錯誤
  • G106:審計 ssh.InsecureIgnoreHostKey 的使用
  • G107: 提供給 HTTP 請求的 url 作為污點輸入
  • G108: /debug/pprof 上自動暴露的剖析端點
  • G109: strconv.Atoi 轉換到 int16 或 int32 時潛在的整數溢出
  • G110: 潛在的通過解壓炸彈實現的 DoS
  • G201:SQL 查詢構造使用格式字符串
  • G202:SQL 查詢構造使用字符串連接
  • G203:在 HTML 模板中使用未轉義的數據
  • G204:審計命令執行情況
  • G301:創建目錄時文件權限分配不合理
  • G302:使用 chmod 時文件權限分配不合理
  • G303:使用可預測的路徑創建臨時文件
  • G304:通過污點輸入提供的文件路徑
  • G305:提取 zip/tar 文檔時遍歷文件
  • G306: 寫到新文件時文件權限分配不合理
  • G307: 把返回錯誤的函數放到 defer 內
  • G401:檢測 DES、RC4、MD5 或 SHA1 的使用
  • G402:查找錯誤的 TLS 連接設置
  • G403:確保最小 RSA 密鑰長度為 2048 位
  • G404:不安全的隨機數源(rand)
  • G501:導入黑名單列表:crypto/md5
  • G502:導入黑名單列表:crypto/des
  • G503:導入黑名單列表:crypto/rc4
  • G504:導入黑名單列表:net/http/cgi
  • G505:導入黑名單列表:crypto/sha1
  • G601: 在 range 語句中使用隱式的元素別名

排除指定的測試

你可以自定義 gosec 來避免對已知為安全的問題進行掃描和報告。你可以使用 -exclude 選項和上面的規則編號來忽略指定的問題。

例如,如果你不想讓 gosec 檢查源碼中硬編碼憑證相關的未處理的錯誤,那么你可以運行下面的命令來忽略這些錯誤:

  1. $ gosec -exclude=G104 ./... 
  2. $ gosec -exclude=G104,G101 ./... 

有時候你知道某段代碼是安全的,但是 gosec 還是會報出問題。然而,你又不想完全排除掉整個檢查,因為你想讓 gosec 檢查新增的代碼。通過在你已知為安全的代碼塊添加 #nosec 標記可以避免 gosec 掃描。這樣 gosec 會繼續掃描新增代碼,而忽略掉 #nosec 標記的代碼塊。

運行指定的檢查

另一方面,如果你只想檢查指定的問題,你可以通過 -include 選項和規則編號來告訴 gosec 運行哪些檢查:

  1. $ gosec -include=G201,G202 ./... 

掃描測試文件

Go 語言自帶對測試的支持,通過單元測試來檢驗一個元素是否符合預期。在默認模式下,gosec 會忽略測試文件,你可以使用 -tests 選項把它們包含進來:

  1. gosec -tests ./... 

修改輸出的格式

找出問題只是它的一半功能;另一半功能是把它檢查到的問題以用戶友好同時又方便工具處理的方式報告出來。幸運的是,gosec 可以用不同的方式輸出。例如,如果你想看 JSON 格式的報告,那么就使用 -fmt 選項指定 JSON 格式并把結果保存到 results.json 文件中:

  1. $ gosec -fmt=json -out=results.json ./... 
  2. $ ls -l results.json 
  3. -rw-r--r--. 1 root root 748098 Aug 20 05:06 results.json 
  4.          { 
  5.              "severity": "LOW", 
  6.              "confidence": "HIGH", 
  7.              "cwe": { 
  8.                  "ID": "242", 
  9.                  "URL": "https://cwe.mitre.org/data/definitions/242.html" 
  10.              }, 
  11.              "rule_id": "G103", 
  12.              "details": "Use of unsafe calls should be audited", 
  13.              "file": "/root/gosec-demo/docker-ce/components/engine/daemon/graphdriver/graphtest/graphtest_unix.go", 
  14.              "code": "304: \t// Cast to []byte\n305: \theader := *(*reflect.SliceHeader)(unsafe.Pointer(\u0026buf))\n306: \theader.      Len *= 8\n", 
  15.              "line": "305", 
  16.              "column": "36" 
  17.          }, 

用 gosec 檢查容易被發現的問題

靜態檢查工具不能完全代替人工代碼審計。然而,當代碼量變大、有眾多開發者時,這樣的工具往往有助于以可重復的方式找出容易被發現的問題。它對于幫助新開發者識別和在編碼時避免引入這些安全缺陷很有用。

 

責任編輯:趙寧寧 來源: Linux中國
相關推薦

2010-05-04 17:43:50

Unix系統

2012-11-20 10:47:16

2023-03-09 12:30:55

2019-04-04 11:55:59

2022-06-08 08:23:18

低代碼無代碼網絡安全

2012-12-04 16:57:49

2012-06-15 11:18:07

云安全云計算

2022-02-18 13:54:56

安全開發漏洞

2009-05-30 09:36:18

2011-04-07 10:47:35

2020-10-30 08:50:25

2010-04-02 13:53:47

2013-01-07 10:34:23

2009-07-07 13:29:33

Servlet和JSP

2012-10-09 16:47:19

2016-03-01 11:44:57

2013-03-12 09:22:32

2021-09-24 10:11:36

Chrome安全漏洞谷歌

2022-03-18 13:10:34

低代碼漏洞

2014-07-28 10:23:38

點贊
收藏

51CTO技術棧公眾號

欧美 亚欧 日韩视频在线| 精品丝袜在线| 国产在线一区观看| 欧美第一黄网免费网站| 好吊色视频一区二区三区| 超碰aⅴ人人做人人爽欧美| 国产精品第一页第二页第三页| 99国产盗摄| 国产成人av免费| 国产精品mm| 最近中文字幕日韩精品 | 亚洲午夜精品久久| 黄色av网址在线| 热久久免费视频| 午夜精品久久久久久99热| 欧美88888| 蜜乳av综合| 亚洲福利在线播放| 成人不卡免费视频| 黑人巨大亚洲一区二区久| 亚洲麻豆国产自偷在线| 特级西西444www大精品视频| 免费观看的毛片| 国产一区二区久久| 国产精品在线看| 亚洲婷婷综合网| 亚洲国内精品| 欧美黑人一级爽快片淫片高清| 久久久久麻豆v国产| 久久成人高清| 亚洲精品一区二区三区婷婷月| 无码人妻一区二区三区一| 另类一区二区三区| 在线精品国精品国产尤物884a| 欧美久久在线观看| 日本孕妇大胆孕交无码| 亚洲色大成网站www久久九九| 日本一区二区不卡高清更新| 亚州男人的天堂| 成人性生交大片免费| 91一区二区三区| 国产精品色综合| 男女性色大片免费观看一区二区 | 日韩成人手机在线| 成人a在线视频免费观看| 国产精品不卡在线| 亚洲精品国产精品久久| eeuss影院在线观看| 国产午夜精品一区二区三区四区| 蜜桃麻豆91| 精品亚洲综合| 26uuuu精品一区二区| 精品一区二区三区免费毛片| www.国产免费| 成人亚洲一区二区一| 国产成人成网站在线播放青青| 精品国产av鲁一鲁一区| 国产在线视频精品一区| 亚洲直播在线一区| 亚洲高清视频在线播放| 成人在线综合网| 国产98在线|日韩| 全部免费毛片在线播放一个| 成人久久久精品乱码一区二区三区| 高清日韩一区| 天天色综合av| 久久蜜桃av一区精品变态类天堂| 欧美亚洲国产免费| 香港伦理在线| 伊人性伊人情综合网| 无码粉嫩虎白一线天在线观看| 第四色日韩影片| 欧美日韩在线影院| 别急慢慢来1978如如2| 四虎地址8848精品| 欧美xxxxx牲另类人与| 亚洲av成人片无码| 国产一区二区三区网| 日日噜噜噜夜夜爽亚洲精品| www.毛片com| 国产美女诱惑一区二区| 国产精品老牛影院在线观看| 99精品视频在线播放免费| 国产不卡视频在线观看| 精品婷婷色一区二区三区蜜桃| 精品成人一区二区三区免费视频| 中文字幕一区二区三区在线观看| 成人av在线不卡| 午夜av不卡| 欧美美女激情18p| 中文字幕在线视频播放| 国产一区二区精品福利地址| 日韩亚洲第一页| 国产精品7777| 蜜桃av噜噜一区二区三区小说| 99在线观看视频| 成年人在线观看视频| 亚洲午夜一区二区| 性欧美极品xxxx欧美一区二区| 精品久久国产一区| 亚洲男人天堂网站| 欧美亚洲日本在线| 久久九九精品| 99国产视频在线| 岛国最新视频免费在线观看| 伊人性伊人情综合网| 黑森林福利视频导航| 9l视频自拍九色9l视频成人| 在线播放国产一区二区三区| 豆国产97在线 | 亚洲| 久久国产日韩欧美精品| 久久精品日产第一区二区三区精品版| 国产不卡在线| 欧美日韩一区二区三区高清| 国内精品久久99人妻无码| 欧美国产三区| 国产日本欧美一区| 国产一级网站视频在线| 亚洲国产精品一区二区尤物区| 91亚洲精品久久久蜜桃借种| 亚洲伊人春色| 91精品国产91| 成 人 免费 黄 色| 亚洲男同1069视频| 一女二男3p波多野结衣| 欧美精品momsxxx| 69精品小视频| 日本国产在线观看| 亚洲久本草在线中文字幕| 伊人网在线综合| 成人一区而且| 国产精品久久久久免费a∨大胸| 蜜臀av中文字幕| 亚洲最新视频在线观看| 免费不卡av网站| 亚洲国产精品成人| 国产一区深夜福利| 欧美jizz18性欧美| 欧美日韩激情在线| 国产不卡在线观看视频| 日本不卡中文字幕| 亚洲春色在线| 四虎影视国产精品| 色99之美女主播在线视频| 国产乡下妇女三片| 国产精品伦一区| 男生操女生视频在线观看| 国产精品99一区二区三| 亚洲一区二区久久久久久久| a级毛片免费观看在线| 欧美一卡2卡3卡4卡| 91porn在线视频| 国产69精品一区二区亚洲孕妇| 国产精品av免费观看| 9国产精品午夜| 国模gogo一区二区大胆私拍| 深夜福利视频网站| 狠狠色狠狠色综合日日小说| 中文字幕国产专区| 日产欧产美韩系列久久99| 日韩欧美精品一区二区| 亚洲青青一区| 久久99久久99精品中文字幕| 手机看片一区二区| 日韩欧美在线视频日韩欧美在线视频 | 国产一级免费观看| 26uuu另类欧美亚洲曰本| 日日摸天天爽天天爽视频| 精品亚洲成人| 3d精品h动漫啪啪一区二区| heyzo中文字幕在线| 亚洲女人被黑人巨大进入| 中国a一片一级一片| 最新不卡av在线| 91超薄肉色丝袜交足高跟凉鞋| 欧美一级网站| 正在播放一区二区三区| 国内精品偷拍| 国产精品第七十二页| huan性巨大欧美| 亚洲精品国产精品乱码不99按摩| 奴色虐av一区二区三区| 亚洲欧洲综合另类在线| 水蜜桃av无码| 九一九一国产精品| 久久久久久免费看| 国产韩日影视精品| 精品乱子伦一区二区三区| 成人免费黄色| 国内精品久久久久久久| 1024免费在线视频| 亚洲成色777777女色窝| 免费在线观看av的网站| 亚洲一本大道在线| 欧美亚洲色综久久精品国产| 成人免费毛片片v| 中文字幕 91| 亚洲一区亚洲| 亚洲色欲久久久综合网东京热| 精品一区二区三区中文字幕老牛| 97久久人人超碰caoprom欧美| 中国字幕a在线看韩国电影| 欧美剧在线观看| av在线电影院| 精品网站999www| www.99视频| 欧美日韩国产不卡| 精品人妻一区二区三区免费看 | 有码中文亚洲精品| 天堂在线观看av| 日韩欧美卡一卡二| 一区二区日韩在线观看| 日韩欧美中文字幕在线播放| 欧美激情精品久久| 国产精品理伦片| 欧美日韩高清丝袜| 99re热视频这里只精品| 欧美日韩久久婷婷| 久久成人久久鬼色| 99久久激情视频| 亚洲乱码久久| 成人午夜视频在线观看免费| 中文字幕一区二区三区乱码图片 | 在线视频你懂得一区二区三区| 国产精品成人aaaa在线| 亚洲黄色片在线观看| 手机av在线看| 国产精品二三区| 免费看的黄色录像| 国产精品午夜在线| 国产在线免费av| 国产调教视频一区| 色欲av无码一区二区三区| av一区二区三区| 欧类av怡春院| 91在线观看免费视频| 久久性爱视频网站| 99综合电影在线视频| 亚洲天堂2024| av在线不卡免费看| 天堂www中文在线资源| 不卡一区二区中文字幕| 国产一级黄色录像| 99国产精品久久久| 粉嫩av蜜桃av蜜臀av| 国产欧美日韩精品一区| 亚洲一二三精品| 国产精品久久久久久久午夜片| 1024手机在线观看你懂的| 国产精品美女久久久久av爽李琼 | 亚洲成va人在线观看| 日韩精品一区三区| 午夜精品影院在线观看| 中文字幕亚洲高清| 色老头久久综合| 中文字幕一区二区三区波野结| 欧美视频一区二| 国产又粗又猛又爽又黄的视频一 | 中文字幕亚洲影院| 国产精品69毛片高清亚洲| 性活交片大全免费看| av一区二区三区四区| 在线国产视频一区| 最新成人av在线| 国产精品16p| 色噜噜狠狠色综合欧洲selulu| 国产精品无码粉嫩小泬| 欧美一级一区二区| 天天综合网在线| 亚洲一级片在线看| av大片在线| 91精品国产色综合久久不卡98| 欧美电影免费观看高清完整| 国产精品美女久久久久久免费| 婷婷激情成人| 国产免费一区| 欧美呦呦网站| 中文精品无码中文字幕无码专区 | 精品国产乱码久久久久久蜜坠欲下| 伊人久久大香线蕉成人综合网| 亚洲国产综合在线看不卡| 另类小说第一页| 丁香一区二区三区| 亚洲v国产v欧美v久久久久久| 日韩美女啊v在线免费观看| 日本三级欧美三级| 在线看不卡av| 国模人体一区二区| 深夜福利亚洲导航| 91黄页在线观看| 成人久久一区二区三区| 婷婷五月色综合香五月| 99中文字幕在线观看| 日韩精品欧美成人高清一区二区| www.桃色.com| 久久久精品中文字幕麻豆发布| 午夜免费激情视频| 欧美色欧美亚洲另类二区| 色欲av伊人久久大香线蕉影院| 中文字幕日韩av综合精品| www视频在线观看| 91在线中文字幕| 欧美午夜精品一区二区三区电影| 国内少妇毛片视频| 久草在线在线精品观看| 超碰97人人干| 午夜欧美一区二区三区在线播放| 国产精品久久欧美久久一区| 亚洲精品视频中文字幕| 日日夜夜天天综合入口| 国产欧亚日韩视频| 夜色77av精品影院| 性一交一乱一伧国产女士spa| 久久精品av麻豆的观看方式| 91精品人妻一区二区| 亚洲曰韩产成在线| 99久久久久成人国产免费| 国产亚洲精品久久久久久牛牛 | 喷水视频在线观看| 夜夜精品视频一区二区| 97超碰人人模人人人爽人人爱| 亚洲视频专区在线| 亚洲第一av| 精品伊人久久大线蕉色首页| 亚洲二区精品| 巨乳女教师的诱惑| 亚洲色图第一区| 国产又粗又猛又爽又黄的视频一| 一区二区三区亚洲| 中文字幕av一区二区三区佐山爱| 国产亚洲福利社区| 在线观看的日韩av| 国模无码视频一区| 亚洲一区二区av电影| 国产激情视频在线播放| 久久久精品国产网站| 在线免费成人| 最新不卡av| 激情图片小说一区| www.xxxx日本| 日韩一区二区在线看片| 成人黄色在线电影| 超碰在线97av| 激情国产一区| 这里只有精品在线观看视频| 亚洲午夜激情网页| 香蕉视频成人在线| 欧美与黑人午夜性猛交久久久| 香蕉久久夜色精品国产更新时间| 日韩欧美一区二| 久久久亚洲高清| 综合网在线观看| 国产亚洲成av人片在线观看桃| 欧美aaa视频| 亚洲欧洲日韩精品| 国模娜娜一区二区三区| 劲爆欧美第一页| 亚洲电影免费观看| 91久久国产综合久久91猫猫| 日韩欧美亚洲在线| 久久精品国产精品青草| 91香蕉视频在线播放| 欧美本精品男人aⅴ天堂| 中文字幕在线官网| 日韩在线第一区| 国产在线看一区| 日韩精品一区二区av| 亚洲新声在线观看| 亚洲网站三级| 国产不卡一区二区视频| 国产亚洲视频系列| 91成人一区二区三区| 久久91精品国产| 日韩美女国产精品| 超碰在线人人爱| 亚洲欧美日韩综合aⅴ视频| 成人黄色免费视频| 日本高清不卡在线| 亚洲香蕉av| jlzzjizz在线播放观看| 欧美日精品一区视频| 美女尤物在线视频| 日韩电影免费观看在| 国产裸体歌舞团一区二区| 97免费在线观看视频| 在线看福利67194| h视频久久久| 一区二区三区国产免费| 亚洲综合激情网| 二人午夜免费观看在线视频| 91久久爱成人| 日韩中文字幕麻豆| 精品99久久久久成人网站免费| 亚洲人成网站999久久久综合| 国产成年精品| 欧美aⅴ在线观看| 一区二区三区四区国产精品| 国产片在线观看| 精品国产乱码久久久久久108| 免费成人在线视频观看|