leakless
- x86 elf | nx
- 漏洞 : 栈溢出
- 利用 :
- 使用 puts leak libc , 并第二次进入漏洞函数
- system("/bin/sh") getshell
casino
- x64 elf | full relro , canary , nx
- 漏洞:
- 格式化字符串
- 使用 time(0) 作为随机数种子 , unix 时间戳 10秒内不变
- 利用过程:
- 使用 格式化字符串 修改全局变量 bet 使其大于 1
- 使用 cdll 导入 libc 的库 , 从而使猜对99 次后,得到的点数 99 * bet 大于 100 ,满足 点数大于 100 , 获取flag
babyheap
- x64 elf | nx
- 功能分析:
- create , edit , delete , show 正常功能 , 分配的 size 固定为0x60 , 输入的 size 固定为 0x40
- 特别的限制 : 每个函数有一个 flag 标志 , 使用之后flag = 1 ,限制不能使用
- delete 函数 会将 create 的函数标志 设置为 false , 使其可再次被使用
- bak_malloc , 输入的数字 为 1337 时, 可使用后备的malloc 函数, 多分配一次
- 漏洞:
- delete函数 uaf
- 利用思路:
- 根据 uaf 使用 fastbin attack 分配 chunk 到 (0x602095 - 8)
- 覆盖 buf 地址 为 got 表地址 , 并重置所有标志为 false
- 使用 show 函数 泄露 libc
-
- 使用 edit 函数劫持 got 表, 从而执行 one_gadget 或者 system("/bin/sh")
- 4.1 system("/bin/sh") , 劫持 atoi
quote_list
- x86 elf | Full Relro , canary , nx , pie
- 漏洞点:
- edit 函数可以多输入一个字符 , off by one
- 利用思路
- 使用 off by one 进行 chunk overlap , 从而造成堆溢出
-
- 利用 unsorted bin attack leak libc 地址
- tip:此处 chunk 需要大于 0x400
- 根据 堆溢出 使用 fastbin attack 进行 __realloc_hook 劫持 (直接劫持 __malloc_hook 不满足使用条件) , 从而使用 one_gadget
- 调用 create 触发