line CODE JT JF K
=================================
0000: 0x20 0x00 0x00 0x00000004 A = arch
0001: 0x15 0x00 0x10 0xc000003e if (A != ARCH_X86_64) goto 0018
0002: 0x20 0x00 0x00 0x00000000 A = sys_number
0003: 0x35 0x00 0x01 0x40000000 if (A < 0x40000000) goto 0005
0004: 0x15 0x00 0x0d 0xffffffff if (A != 0xffffffff) goto 0018
0005: 0x15 0x0b 0x00 0x0000013e if (A == getrandom) goto 0017
0006: 0x15 0x0a 0x00 0x00000002 if (A == open) goto 0017
0007: 0x15 0x09 0x00 0x00000003 if (A == close) goto 0017
0008: 0x15 0x08 0x00 0x00000009 if (A == mmap) goto 0017
0009: 0x15 0x07 0x00 0x0000000c if (A == brk) goto 0017
0010: 0x15 0x06 0x00 0x000000e7 if (A == exit_group) goto 0017
0011: 0x15 0x00 0x04 0x00000000 if (A != read) goto 0016
0012: 0x20 0x00 0x00 0x00000014 A = fd >> 32 # read(fd, buf, count)
0013: 0x15 0x00 0x04 0x00000000 if (A != 0x0) goto 0018
0014: 0x20 0x00 0x00 0x00000010 A = fd # read(fd, buf, count)
0015: 0x15 0x01 0x02 0x00000000 if (A == 0x0) goto 0017 else goto 0018
0016: 0x15 0x00 0x01 0x00000001 if (A != write) goto 0018
0017: 0x06 0x00 0x00 0x7fff0000 return ALLOW
0018: 0x06 0x00 0x00 0x00000000 return KILL
ptr = &write + 0x20935
是 mp_.tcache_bins
^ 应该是要打这个(吗?) 只有calloc
这样进菜单
sa(io, "mew mew mew~~~~~~\\n", b"LOGIN | r00t QWBQWXF admin")
sa(io, "mew mew mew~~~~~~\\n", b"CAT | r00t QWBQWXF $"+p32(0xFFFFFFFF))
后面是个 largebin 的 2.35 的堆
remove 里明显一个 uaf
两次修改,可进行两次largebin attack
没exit
house of kiwi ← calloc能用么 似乎可以 在_int_malloc里面
看看House of apple里面的几种
[原创] House of apple 一种新的glibc中IO攻击方法 (1)-Pwn-看雪论坛-安全社区|安全招聘|bbs.pediy.com
[原创] House of apple 一种新的glibc中IO攻击方法 (2)-Pwn-看雪论坛-安全社区|安全招聘|bbs.pediy.com
getkeyserv_handle+576, offset: 0x1675b0
house of kiwi只能用stderr,不会执行flush all,一次largebin attack不够
把这个stderr改了有用吗?改成一个伪造的IO_FILE会影响assert里的fflush(stderr)吗?
会 flush的就是这个stderr
来来来,找个办法一次edit触发一下