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 + 0x20935mp_.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

Untitled

house of kiwi只能用stderr,不会执行flush all,一次largebin attack不够

Untitled

把这个stderr改了有用吗?改成一个伪造的IO_FILE会影响assert里的fflush(stderr)吗?

会 flush的就是这个stderr

来来来,找个办法一次edit触发一下